Arch Linux安装笔记
阅读原文时间:2023年07月10日阅读:1

​ 最近有些厌倦Windows,所以想尝试一下Linux,选择Arch的原因不再赘述,建议以ArchLinux官方安装指南为主,这篇笔记只是方便我自己安装而写的,仅供参考。

1.1 腾出空间

​ 因为我是第一次使用Linux,所以暂时没打算把Arch当作主力系统,我决定采用双系统的方案,所以需要给Arch腾出一个空间。

​ 我使用的工具是DiskGenius,因为Arch简洁,所以40G应该足矣。

1.2 下载安装镜像

​ 访问Arch Linux下载页面,并根据需要的引导方式,获取ISO文件或netboot映像。

1.3 准备安装介质

​ 因为我经常安装系统,所以使用Ventoy来制作启动U盘,然后把Arch Linux的镜像放里面即可。

1.4 启动到Live环境

注意:Arch Linux安装镜像不支持安全启动。要引导安装媒介,需要禁用安全启动,可以在先关闭安全启动,安装完成后再打开。

  • 关机,插上制作好的安装介质
  • 开机,开机的同时按住F12(不同的电脑进入方式可能不同,具体请在搜索引擎里面查找自己品牌的电脑如何进入U盘启动)
  • 等待引导加载程序菜单出现,选择 Arch Linux install medium,回车进入

提示:安装过程中如果想一边安装一边使用Lynx查看ArchLinux官方安装指南,可以使用Alt + 方向键来切换不同的控制台。

等待屏幕上出现Welcome to Arch Linux!后系统会自动登录,然后进行下一步。

1.5 验证引导模式

# ls /sys/firmware/efi/efivars

如果命令结果显示了目录且没有报告错误,则系统以UEFI模式引导。如果目录不存在,则系统可能以BIOS模式(或CSM模式)引导。一般这步都没什么问题,如果真的没有以UEFI模式引导,请在搜索引擎查找相关解决办法。

1.6 联网

注意:Arch Linux必须联网安装

  • 确保系统已经启用了网络接口

    # ip link

    对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被rfkill禁用。

  • 连接网络

    • 有线连接:直接插上网线即可,方便快捷,安装完图形界面可以再换成无线连接。
    • 无线局域网:使用iwctl连接,这里不详细描述,操作方法可以参考6.1 iwctl
  • 配置网络连接

    # dhcpcd
  • ping检查网络连接

    # ping cnblogs.com

    注意:ping不会自动结束,可以使用Ctrl + C中断命令。

注意:默认情况下,安装映像已预配置好并启用了systemd-networkdsystemd-resolvediwdModemManager。但已经安装好了的系统并非如此。

1.7 更新系统时间

​ 在 Live 环境中systemd-timesyncd默认启用,建立互联网连接后,时间将自动同步。

使用timedatectl确保系统时间是准确的:

# timedatectl status

1.8 硬盘分区

提示:这个部分可以使用图形化的工具cfdisk,具体用法请在搜索引擎中查找,笔记以fdisk为主。

系统如果识别到磁盘,就会将其分配为一个块设备,如/dev/sda/dev/nvme0n1/dev/mmcblk0。可以使用fdisk查看:

# fdisk -l

找到需要分区的硬盘,硬盘路径一般为/dev/nvme0n1这样的形式。

使用fdisk修改分区表:

# fdisk [硬盘路径]

创建新分区:

Command (m for help): n

参数默认,直接回车即可。

保存分区表:

Command (m for help): w

查看分区表:

# fdisk -l

找到新建的分区,Type值为Linux filesystem的就是刚才创建的分区,记住这个分区Device的值。找到Type值为EFI System的分区(一般为第一个),记住这个分区Device的值。

将新建的分区格式化:

# mkfs.ext4 [分区路径]

挂载分区:

# mount [分区路径] /mnt
# mkdir /mnt/boot
# mount [EFI分区路径] /mnt/boot

2.1 更换镜像源

国内网络访问Arch官方源速度非常慢,所以需要更换镜像源。

# vim /etc/pacman.d/mirrorlist

I键进入insert模式,在第一行插入国内的镜像源,镜像源可在搜索引擎获取,这里提供清华大学和阿里云的镜像源:

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch

完成后按Esc键退出insert模式,输入:wq,然后回车,保存并退出。

2.2 安装必须的软件包

使用pacstrap脚本,安装base软件包和Linux内核以及常规硬件的固件:

# pacstrap -K /mnt base base-devel linux linux-firmware dhcpcd

3.1 Fstab

用以下命令生成fstab文件(用-U-L选项设置UUID或卷标):

# genfstab -U /mnt >> /mnt/etc/fstab

检查生成的/mnt/etc/fstab文件是否正确:

# cat /mnt/etc/fstab

3.2 Chroot

chroot 到新安装的系统:

# arch-chroot /mnt

3.3 时区

以上海为例:

# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

运行hwclock以生成/etc/adjtime

# hwclock --systohc

3.4 安装软件

这些软件在后续的配置过程需要用到。

# pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager netctl

参数默认,回车即可。

3.5 本地化

# vim /etc/locale.gen

可以用:/内容来查找。

激活(找到要激活的语言,按X删除行首的#)以下语言:

zh_CN.UTF-8
zh_HK.UTF-8
zh_TW.UTF-8
en_US.UTF-8

保存退出。

执行 locale-gen 以生成locale信息:

# locale-gen

设置语言为English(此步不建议设置为中文,可以在进入桌面环境后更换为中文):

# vim /etc/locale.conf

添加:

LANG=en_US.UTF-8

保存退出。

3.6 网络配置

创建hostname文件:

# vim /etc/hostname

输入主机名字,保存退出。

配置网络:

# vim /etc/hosts

在最后一行插入:

127.0.0.1 localhost
::1 localhost
127.0.0.1 [主机名字].localdomain [主机名字]

保存退出。

3.7 Root密码

设置Root密码:

# passwd

提示:Linux命令行下输入密码不会显示。

3.8 安装引导程序

安装所需软件

根据处理器选择处理器微码,amd安装amd-ucode

# pacman -S intel-ucode


# pacman -S os-prober ntfs-3g
# pacman -S grub efibootmgr

配置grub

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
# grub-mkconfig -o /boot/grub/grub.cfg

检查生成的文件:

# vim /boot/grub/grub.cfg

若文件里面没有Windows的入口,解决办法参考6.2 grub添加Windows

# exit
# reboot

​ 到此Arch的安装和基本配置就已经结束了,Arch已经可以使用了,但是此时Arch只有命令行界面,各种操作都不是很方便,所以要进行后续的配置。

5.1 网络配置

​ 之前配置的网络是Live环境的,现在配置的是安装好的Arch的。此处我配置的是Wi-Fi,但是方法与Live环境的不通用。

# systemctl enable NetworkManager
# systemctl start NetworkManager
# nmcli dev wifi
# nmcli dev wifi list
# nmcli dev wifi connect "Wi-Fi名(SSID)" password "密码"

5.2 交换空间

swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。

使用 swap 交换分区,显著的优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将远远超过系统的物理内存。由于硬盘空间的价格远比 RAM 要低,因此这种方式无疑是经济实惠的。当然,频繁地读写硬盘,会显著降低操作系统的运行速率,这也是使用 swap 交换分区最大的限制。

swap分区可以简单的理解为虚拟内存,在RAM够用的情况下可以不用申请交换空间。没有特别需求(电脑较老等)不建议进行此步操作。

# dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
# vim /etc/fstab

在系统盘下面一行添加:

/swapfile none swap defaults 0 0

保存退出。

5.3 用户

创建用户

​ 新安装的系统只有一个超级用户,即root。使用root进行日常操作是不安全的。应当创建普通用户进行日常操作,仅在管理系统时使用root

# useradd -m -G wheel 用户名
# passwd 用户名

权限提升

权限提升推荐使用sudo

安装sudo

# pacman -S sudo

配置sudo

# ln -s /usr/bin/vim /usr/bin/vi
# visudo

查找并激活:

%wheel ALL=(ALL)ALL

保存退出。

5.4 pacman源

切换用户:

# su 用户名

配置pacman源:

$ sudo vim /etc/pacman.conf

查找激活:

[multilib]
Include = /etc/pacman.d/mirrorlist

添加:

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://repo.archlinuxcn.org/$arch

更多ArchlinuxCN镜像源请在搜索引擎中查找。

保存退出。

$ sudo pacman -Syy
$ sudo pacman -S archlinuxcn-keyring

5.5 显卡驱动

以下操作基于我的实际情况(KDE桌面环境+N卡),其他情况请参照Arch官方文档

KDE桌面环境查表按需安装:

厂商

类型

驱动

OpenGL

OpenGL(multilib)

文档

AMD/ATI

Open source

xf86-video-amdgpu

mesa

lib32-mesa

AMDGPU

xf86-video-ati

ATI

Intel

Open source

xf86-video-intel

mesa

lib32-mesa

Intel graphics

NVIDIA

Open source

xf86-video-nouveau

mesa

lib32-mesa

Nouveau

Proprietary

nvidia

nvidia-utils

lib32-nvidia-utils

NVIDIA

nvidia-390xx-dkms

nvidia-390xx-utils

lib32-nvidia-390xx-utils

$ sudo pacman -S 驱动名 OpenGL OpenGL(multilib)

注意:NVIDIA闭源驱动安装后很有可能会出现无法进入图形界面的问题,建议直接参考6.5 NVIDIA闭源驱动问题进行安装。

5.6 图形界面

安装KDE:

$ sudo pacman -S xorg plasma kde-applications sddm network-manager-applet

启动服务:

$ sudo systemctl enable sddm
$ sudo systemctl disable netctl
$ sudo systemctl enable NetworkManager

安装中文字体:

$ sudo pacman -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai ttf-arphic-uming adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts noto-fonts-cjk

5.7 yay

安装git:

$ sudo pacman -S git

安装yay:

$ cd
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

如果因为网络问题无法克隆,请参考6.3 GO语言软件安装源问题

$ exit
# reboot

6.1 iwctl

如要使用无线局域网,可以使用iwctl进行连接。

$ iwctl

首先,如果不知道你的网络设备名称,请列出所有 WiFi 设备:

[iwd]# device list

然后,要开始扫描网络(注意:这个命令不会输出任何内容),执行:

[iwd]# station 设备名 scan

再然后,就可以列出所有可用的网络:

[iwd]# station 设备名 get-networks

最后,要连接到一个网络:

[iwd]# station 设备名 connect Wi-Fi名(SSID)

以上代码可以直接使用下面这一行代码替代:

$ iwctl --passphrase passphrase station 设备名 connect Wi-Fi名(SSID)

6.2 grub添加Windows

$ sudo vim /boot/grub/grub.cfg

添加:

menuentry 'Microsoft Windows 10' {
    insmod part_gpt
    insmod fat
    insmod chain
    search --no-floppy --fs-uuid --set=root XXXX-XXXX ## 这里填ESP分区的UUID,一般与Arch Linux的一致
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

6.3 GO语言软件安装源问题

GO语言软件安装源被屏蔽问题可通过换源解决。

  • 临时生效

    $ export GO111MODULE=on
    $ export GOPROXY=https://goproxy.cn
  • 永久生效

    $ echo "export GO111MODULE=on" >> ~/.profile
    $ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
    $ source ~/.profile

6.4 声音问题

  • 安装ALSA后参考官方文档解除各声道的静音。

  • 若提示未找到目录或未找到声卡,执行以下命令后参照上步。

    $ sudo pacman -S alsa-firmware sof-firmware alsa-ucm-conf
    $ sudo reboot

6.5 NVIDIA闭源驱动问题

NVIDIA闭源驱动安装后遇到无法进入图形界面的问题时,请用安装盘卸载驱动,然后按照以下方法安装后重启。

$ sudo pacman -S nvidia-utils lib32-nvidia-utils nvidia-settings
# 配置xorg, 会生成 /etc/X11/xorg.conf
$ sudo nvidia-xconfig
# 安装驱动,此步会让kernel正确加载nvidia驱动
$ sudo pacman -S nvidia-dkms

6.6 搜狗拼音输入法

$ sudo pacman -S fcitx
$ sudo pacman -S fcitx-configtool
$ sudo pacman -S fcitx-gtk2 fcitx-gtk3 fcitx-qt5
$ yay -S fcitx-qt4
$ yay -S fcitx-sogoupinyin

6.7 其他问题

启动时打开数字锁定

Arch启动时默认不打开数字锁定,可以参考启动时打开数字键锁定

蓝牙

可以通过以下命令启动蓝牙:

sudo systemctl enable --now bluetooth

若连接蓝牙时提示br-connection-profile-unavailable,请安装pulseaudio-bluetooth包,在/etc/bluetooth/main.conf 中设置ControllerMode = bredr,重启。

6.8 软件推荐

办公软件

推荐WPS或者Office Online

中文输入法

推荐fcitx5或者Ibus

在线音乐

参考在线音乐

网络

参考代理

即时通讯

Telegram

腾讯QQ

微信

校园网

中国大陆众多高校采用各种客户端拨号上网,如城市热点Drcom,锐捷。一些学校提供有网页登录或者linux版客户端,可参照相关说明文档安装使用。对于未提供网页登录以及客户端者:

  • Drcom用户可参考Drcom,锐捷用户可参照 MentoHUST 指导您通过借助 MentoHUST 进行锐捷拨号。
  • 借助wine尝试安装使用。
  • 使用虚拟机运行,可在虚拟机中登录客户端上网,虚拟机开启桥接,安装SSH服务端,在Linux下SSH登录虚拟机上网。