参考文章:2022.5 archlinux详细安装过程 - 知乎
参考文章:Arch Linux 才是永远的神!安装图文详解,高级 Linux 用户的选择_分区_sda_dev
安装PE建议使用Ventoy
下载地址:
Ventoy 官网https://links.jianshu.com/go?to=https%3A%2F%2Fwww.ventoy.net%2Fcn%2Findex.html
正确启动到 Arch ISO 后,您应该会看到类似于下图所示的内容。
选择 Arch Linux install medium (x86_64, UEFI) 选项并点击 Enter 。
timedatectl set-ntp true
列出磁盘:
fdisk -l
/dev/sda1 : EFI 系统分区,大小为 1024 MB,FAT32 格式。这为存储引导加载程序和引导所需的其他文件提供了空间。
/dev/sda2 : 交换分区,4GB 大小。交换空间用于将虚拟内存扩展到已安装的物理内存 (RAM) 之外,或用于挂起磁盘支持。
/dev/sda3 : Linux分区,剩余可用磁盘空间大小,EXT4格式。这是存储我们的 Arch Linux 操作系统、文件和其他信息的根 ( / ) 分区。
创建 EFI 系统分区
cfdisk /dev/sda
选择 GPT 标签类型并点击 Enter 。
然后 从底部菜单中选择 Free Space 并点击 New 。您可以使用 Tab 或 箭头键浏览菜单选项。
以 MB ( 1024M ) 为单位键入分区大小,然后按 Enter 键。
在 /dev/sda1 分区仍然被选中的情况下,从底部菜单中选择 Type 并选择 EFI System 分区类型。
现在,您已完成 EFI 系统分区的配置。
创建交换分区
现在让我们使用相同的过程创建 Swap 分区。再次选择剩余的 Free space 和 并点击 New 。
以 GB ( 4G ) 为单位键入分区大小,然后按 Enter 键。
在 /dev/sda2 分区仍然被选中的情况下,从底部菜单中选择 Type 并选择 Linux swap 分区类型。
现在,您已经完成了 Swap 分区的配置。
5.3 创建根分区
最后,您需要创建根 ( / ) 分区。再次选择剩余的 Free space 并点击 New 。
对于 ( / ) 大小,保留默认大小值。这意味着,所有剩余的可用空间。按 Enter 键。
在 /dev/sda3 分区仍然被选中的情况下,从底部菜单中选择 Type 并选择 Linux filesystem 分区类型。
现在,您已经完成了根分区的配置。
5.3 将更改写入磁盘
接下来,您需要保存所做的更改。选择 Write 从底部菜单和命中 Enter 。
键入 yes 并按下 Enter 键。
我们到此结束。选择 Quit 并按下 Enter 即可。
6. 创建文件系统
现在您已准备好磁盘分区,是时候在其上创建文件系统了。但是让我们首先通过运行来查看分区表摘要:
fdisk -l
输出如下:
该 /dev/sda 磁盘应该有三个分区( /dev/sda1 , dev/sda2 ,和 /dev/sda3 )类似于上面所示的那些。
EFI分区格式化
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda3
创建swap分区:
mkswap /dev/sda2
swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
查看磁盘分区情况
lsblk -f
reflector --country China --age 72 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
将最新的镜像源更新为国内的,保存在/etc/pacman.d/mirrorlist目录下
也可以手动替换到“/etc/pacman.d/mirrorlistg”中
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.dgut.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch
Server = https://mirror.redrock.team/archlinux/$repo/os/$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
安装基本系统(包括linux内核以及基础软件包),这里相比参考文章多给了几个软件包,因为这些对用户来说还是比较重要的 ,有几种内核可以安装:
按自己的需求安装就可以
这里需要提前说一下,linux-zen 内核不支持 nvidia 显卡,有这个需求的就别装了,如果是原版 linux 内核的话,就要做好随时滚挂的准备,最近的 5.18 内核更新就会导致 nvidia-5.15 版本驱动失效无法开机,如果你希望稳定使用,就选择 linux-lts 内核和linux-lts-headers,并安装相应的 nvidia-lts 驱动(后面会有详细说明),不过不用太担心,即便是系统安装完成,你也可以随时切换自己想要的内核版本。
pacstrap /mnt base linux linux-headers linux-firmware base-devel (普通内核)
pacstrap /mnt base linux-lts linux-lts-headers linux-firmware base-devel (LTS内核)
如安装报错 ERROR: Failed to install packages to new root
尝试以下命令再继续安装:
pacman -Sy archlinux-keyring
写入分区表:
genfstab -U /mnt >> /mnt/etc/fstab
使用如下命令进入新系统,进入后会显示[root@archiso /]#
arch-chroot /mnt
我解释一下这都是干嘛的。
pacman -S neovim iwd ttf-dejavu sudo bluez usbmuxd networkmanager dhcpcd wqy-zenhei
neovim和vim的启动命令是不一样的,neovim为“nvim”,vim是“vim”我一般会通过软链接
ln -s /bin/nvim /bin/vim
ln -s /bin/nvim /bin/vi
将他们链接起来看,这样的话,通过“vim”“vi”命令也可以启动neovim了。
设置时区和时间
依次输入下面的命令:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
设置语言
输入“vim /etc/locale.gen”,删除前面的“#”,保存。
输入
locale-gen
echo LANG=zh_CN.UTF-8 >> /etc/locale.conf
设置root用户的密码
输入“passwd”,再输入密码,密码不会显示。
设置主机名
主机名的开头和结尾字符不允许是连字符。 主机名强烈建议不要用数字开头,尽管这一条不是强制的。 用小写字母而不用大写字母。
echo 主机名 >> /etc/hostname
设置网络
编辑 “vim /etc/hosts”
127.0.0.1 localhost
::1 localhost
127.0.1.1 主机名.localdomain 主机名
pacman -S grub efibootmgr (安装grub)
grub-install /dev/sda (注意:选择的是整个硬盘)
创建grub配置文件
grub-mkconfig -o /boot/grub/grub.cfg
重启系统
exit (退出新系统,回到live系统)
umount -R /mnt (递归卸载 /mnt 中的磁盘)
reboot (重启)
重启后登录root,密码是刚才设置的
打开联网服务和蓝牙
1. 首先激活服务
systemctl start iwd.service
systemctl enable iwd.service
systemctl start systemd-resolved.service
systemctl enable systemd-resolved.service
systemctl enable bluetooth.service
systemctl enable NetworkManager
systemctl enable dhcpcd
2. 配置网络连接和DNS
输入“vim /etc/iwd/main.conf”,把下面的文字打进去,保存。
[General]
EnableNetworkConfiguration=true
NameResolvingService=systemd
3. 安装了netwokmanager的配置
如果安装了networkmanager,则需要将backend服务修改为iwd,总体上iwd比wpa好用很多。
输入“vim /etc/NetworkManager/NetworkManager.conf”,把下面的文字打进去,保存。(vim的光标移动、删除和保存退出等命令请另行百度。)
[device]
wifi.backend=iwd
如果只安装networkmanager而不安装iwd的话,是不需要这一步的,nm会使用默认的wpa。(猜测)
pacman -S intel-ucode (intel的cpu装这个)
pacman -S amd-ucode (amd的cpu装这个)
注意是 CPU 编码,不是显卡
2. 显卡驱动
pacman -S xf86-video-intel(Intel核心显卡驱动,用Intel核显就装,否则不用装)
pacman -S mesa nvidia(-lts) nvidia-settings nvidia-dkms nvidia-utils nvidia-prime(nvidia显卡驱动,用nvidia显卡就装,否则不用装)
pacman -S xf86-video-amdgpu (AMD显卡驱动,用amd显卡的就装)
这里举两个例子,我的笔记本,i7-11代,搭配intel核显以及3050显卡,所以安装前两个。我的台式机,e3-1230垃圾CPU,搭配HD6950显卡,所以装第三个。nvidia-dkms 与 nvidia-lts 不兼容,如果装lts驱动的话无需安装dkms 。
注意:nvidia驱动的安装与前面选择的内核有关,如果你安装的是linux-lts内核,那么需要将nvidia更换为nvidia-lts,linux-zen不支持nvidia显卡(务必对号入座)
useradd -m -G wheel -s /bin/bash 用户名 (添加进入wheel用户组,并将bash作为启动命令)
passwd 用户名
然后输入
visudo
如果报错的话(应该不会),就改为
vim /etc/sudoers
找到如下内容,取消掉“# %wheel ALL=(ALL:ALL) ALL”前面的“# ”
## User privilege specification
##
root ALL=(ALL:ALL) ALL
## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL:ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL:ALL) NOPASSWD: ALL
这里说一下,取消“# %wheel ALL=(ALL:ALL) NOPASSWD: ALL”前的“# ”也是可以的,区别就在于,取消这一行后,wheel组的用户使用 sudo 就不用输密码了,如果你是新手,不建议这么做,如果你是老鸟,可以考虑取消NOPASSWD 所在的这一行。(我取消的是NOPASWD这行,图方便)
reboot
此时的系统已经基本可以使用了,但是还没有配置图形界面,如果你不需要图形界面,就只需登陆用户名就可以使用了。
!!!注意:从这里开始,如果登陆的是普通用户,则所有的pacman和systemctl都需要 sudo , 如果嫌麻烦,可以先在 ~/.bashrc 中添加 “alias pacman='sudo pacman'和alias systemctl='sudo systemctl'”,我这里就不多写sudo了。如果提示需要权限,同样加sudo即可。所以这部分安装建议登陆root用户。
pacman -S xorg
这个是必须安装的,后面的DE和WM都是基于x服务。
特点:美观,比较稳定,自定义功能强大,配置方便(最推荐)
pacman -S plasma sddm konsole dolphin kate ark okular spectacle yay
plasma:桌面环境
sddm:登录管理器,KDE配套的
konsole:kde下的终端,功能多但是比较慢,也可以使用其他终端
(alacritty,kitty)
kate:文本编辑器,很强大,但是资料比较少,需要自己配置。我感觉比vscode好用很多,但是没火起来,很可惜。
(vim,neovim,gvim,nano,gedit,sublime,vscode,atom)(sublime,vscode需要在AUR源或者Clansty源中安装)
ark:解压与压缩
okular:PDF查看器
(wps,edge,chrome,zotero……)
spectacle:截图工具,这三件套配合KDE很方便
安装完成之后,需要启用sddm
systemctl enable sddm
重启即可
特点:自定义功能丰富(但是被阻隔了),
pacman -S gnome
systemctl enable gdm
重启即可,部分软件仍然可以用上述软件替代
pacman -S xorg-xinit xorg-server (窗口管理器一般不会使用登陆管理器(dm),所以xorg-xinit是必要的)
pacman -S i3 (安装i3,或者i3-gaps)
由于窗口管理器配置比较复杂,所以这里只讲最基本的安装。
KDE,gnome,i3 等桌面环境的配置,就不在这里赘述了,每个人的需求不一样。
推荐使用 fcitx5
sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-gtk fcitx5-qt fcitx5-configtool
然后添加环境变量
sudo vim /etc/environment
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
INPUT_METHOD=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
然后设置开机启动即可(桌面环境不同,方法也不同),这里提供一个简单的思路。
tty 下面是不需要中文输入法的(也用不了),所以修改 ~/.xinitrc ,添加代码
fcitx5 -d & (后台运行fcitx5,且开机自启)
wiki上的描述
注意:
如果您使用的桌面环境是兼容 XDG 的(例如 KDE、GNOME、Xfce、LXDE等),则 无需 此步骤(添加自启)。
如果使用i3、awesome等窗口管理器,需要在其脚本中添加 Fcitx5 以实现自启动。例如,如果您使用 i3 或 sway ,可以在配置文件中添加exec --no-startup-id fcitx5 -d
如果使用dwm,则需要添加 autostart 补丁。在 ~/.dwm/autostart.sh 中添加fcitx5 -d
根据需求自取即可。
pacman -S ntfs-3g
pacman -S gvfs #可自动挂载u盘
pacman -S gvfs-mtp #可自动挂载mtp设备
在装系统时我们已经将 /etc/pacman.d/mirrorlist 换为了国内源(有时候会玄学变回国外源,需要自己查看一下),所以只需要添加archlinuxcn即可。
使用方法:在 /etc/pacman.conf 文件末尾添加以下两行:
[archlinuxcn]
SigLevel = Optional TrustAll
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
如果SigLevel 那一行不加,后面安装 archlinuxcn-keyring 时不会报错的话,可以不加,但是我报错了所以加上了。
这里有一个坑,要取消这两行前面的注释,不然有一部分32位包无法安装。
84 # [muiltilib]
85 # Include = /etc/pacman.d/mirrorlist
之后安装 archlinuxcn-keyring 包导入 GPG key。
sudo pacman -Syyu
sudo pacman -S archlinuxcn-keyring
$ git clone https://aur.archlinux.org/yay
$ cd yay
$ makepkg -si
通常情况执行完上面所示命令即可安装成功,但是经常会遇到网络错误的情况,主要原因有如下两点
所以解决思路要么采取科学上网软件,或者采取我以下所说的方法。
本文采用Goproxy.cn源,官网有换源方法,这里也贴出来
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
完成以上步骤以后,可以再次尝试
$ makepkg -si
若还存在网络问题可以继续往下看,修改hosts
本文采用的gitee找到的github hosts
github hosts如下:
# GitHub Host Start
185.199.108.154 github.githubassets.com
140.82.112.22 central.github.com
185.199.108.133 desktop.githubusercontent.com
185.199.108.153 assets-cdn.github.com
185.199.108.133 camo.githubusercontent.com
185.199.108.133 github.map.fastly.net
199.232.69.194 github.global.ssl.fastly.net
140.82.114.3 gist.github.com
185.199.108.153 github.io
140.82.113.3 github.com
140.82.112.5 api.github.com
185.199.108.133 raw.githubusercontent.com
185.199.108.133 user-images.githubusercontent.com
185.199.108.133 favicons.githubusercontent.com
185.199.108.133 avatars5.githubusercontent.com
185.199.108.133 avatars4.githubusercontent.com
185.199.108.133 avatars3.githubusercontent.com
185.199.108.133 avatars2.githubusercontent.com
185.199.108.133 avatars1.githubusercontent.com
185.199.108.133 avatars0.githubusercontent.com
185.199.108.133 avatars.githubusercontent.com
140.82.112.10 codeload.github.com
52.217.207.1 github-cloud.s3.amazonaws.com
52.216.78.4 github-com.s3.amazonaws.com
52.217.194.169 github-production-release-asset-2e65be.s3.amazonaws.com
52.216.131.131 github-production-user-asset-6210df.s3.amazonaws.com
52.216.28.204 github-production-repository-file-5c1aeb.s3.amazonaws.com
185.199.108.153 githubstatus.com
64.71.144.202 github.community
185.199.108.133 media.githubusercontent.com
# Please Star : https://github.com/ineo6/hosts
# Mirror Repo : https://gitee.com/ineo6/hosts
# Update at: 2021-12-01 08:39:41
# GitHub Host End
$ sudo vim /etc/hosts
$ sudo systemctl restart nscd
创建目录
sudo mkdir /media
sudo mkdir /media/home
3.把/dev/sdb1挂载到/media/home
sudo mount /dev/sdb1 /media/home
4.同步/home到/media/home,同步时间根据数据量大小决定,建议在系统空闲时操作
sudo rsync -aXS /home/. /media/home/.
5.同步完成后重命名/home
sudo mv /home /home_old
6.新建/home
sudo mkdir /home
7.取消/dev/sdb1挂载
sudo umount /dev/sdb1
8.重新挂载/dev/sdb1到home
sudo mount /dev/sdb1 /home
9.查看/dev/sdb1的UUID
blkid
10.把UUID复制下来,修改/etc/fstab文件,实现开机自动挂载
sudo gedit /etc/fstab
在文件最后添加如下内容:
# home
UUID=8da46012-ab9c-434f-a855-2484112fd1a7 /home ext4 nodev,nosuid 0 2
11.保存之后重启系统,查看分区的挂载情况
df –h
12.确认一切正常后删除/home_old
sudo rm -rf /home_old
至此,给/home增加空间的工作就完成了。
补充:
稍微补充一下我按照教程安装的时候遇到的坑和解决方法
安装基本软件包报错 ERROR: Failed to install packages to new root 时,尝试 pacman -Sy archlinux-keyring
如果装双系统要注意:
Grub 2.06 之后不再自动添加其他系统启动项
已经装完 Grub 的情况下
先安装 os-prober
然后在 /etc/default/grub 中把 GRUB_DISABLE_OS_PROBER=false 这一项前边的注释去掉,如果没有这一项自己写上
最后 grub-mkconfig -o /boot/grub/grub.cfg 重新生成一下配置