Arch Linux 安装折腾日记
suhang
2023年09月21日

被朋友安利了一波Arch Linux,正好自己的黑群晖需要个Linux当server玩,开始折腾…

1.群晖Vitrual Machine Manager创建虚拟机

1.1 下载Arch镜像

选择163镜像地址进行下载,目前最新版本为2022.04.05

1.2 创建虚拟机, 选择Linux系统

archlinux-install_1.png

1.3 选择虚拟机配置

archlinux-install_2.png
注意,这里视频卡选择vga或者cirrus,选择默认的vmvga会出现问题

1.4 其它设置

磁盘配置略过,网络配置选择默认的就行。
archlinux-install_3.png
如图所示,其它设置里面,启动ISO文件选择1.1下载好的Arch镜像,固件选择UEFI模式启动,其它设置保持默认即可

至此,虚拟机创建完成,开机进入Arch的安装界面
archlinux-install_4.png

archlinux-install_5.png

2.磁盘分区

执行 lsblk 磁盘信息如下
archlinux-install_6.png
可以看到,其中loop0为镜像挂载的分区,sr0和sr1为黑群晖的光驱设备,sda为创建虚拟机的时候创建的磁盘

执行 cgdisk /dev/sda 使用cgdisk工具对sda硬盘进行分区

上下键选中空闲空间进行分区,New回车创建新分区
archlinux-install_7.png

2.1 新建EFI分区

archlinux-install_8.png
First Sector回车默认即可
Size填写efi分区大小,建议200mb即可
Hex Code 填写ef00(如不清楚代码,也可以根据提示按l查询)
Partition Name 分区名称,随意填写,我个人填boot

2.2 新建swap交换分区

First Sector回车默认即可
Size 根据自己的内存配置来,我这里创建1g的的swap分区
Hex Code 填写8200

2.3 新建主分区

First Sector回车默认即可
Size默认分配剩余空间
Hex Code 默认即为linux分区格式ext4
Partiction Name 略

好了,得到如下分区表,分区完成,记得点击下方的Write写入分区表,再退出
archlinux-install_9.png

2.4 格式化分区

使用lsblk查看分区信息
archlinux-install_10.png
其中sda1为efi分区,sda2为swap分区,sda3为主分区
使用以下命令分别对分区进行格式化

mkfs.fat -F 32 /dev/sda1
mkswap /dev/sda2
mkfs.ext4 /dev/sda3

2.5 挂载分区

对格式化完毕的分区进行挂载,注意swap分区的挂载命令为swapon

swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir /mnt/boot # 创建efi分区的挂载点
mount /dev/sda1 /mnt/boot

3.安装系统

3.1 安装必要软件

使用自带的脚本pacstrap安装必要的系统程序到挂载好的/mnt目录下

pacstrap -i /mnt base base-devel linux linux-firmware linux-headers vim intel-ucode iwd bash-completion

注意,其中intel-ucode为intel cpu所使用的微码固件,amd cpu需要安装amd-ucode

两次回车默认即可,等待安装完成…

3.2 生成fstab文件

/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。

前面步骤挂载了分区,但是重启会丢失挂载信息,genfstab命令可以根据当前的磁盘挂载信息,生成对应的fstab文件

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

生成完毕后,使用cat /mnt/etc/fstab查看一下
archlinux-install_11.png

3.3 进入系统分区

目前的shell环境处于安装镜像文件中,需要进入已经安装基础软件的/dev/sda3分区进行操作,可以使用镜像自带的arch-chroot进入

arch-chroot /mnt

archlinux-install_12.png
可以看到,切换成功后,shell界面有明显的颜色变化,表明已经切换成功

3.4 设置时区和语言

首先执行以下命令

ls -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 设置时区
hwclock --systohc # 同步硬件时间

设置系统语言,使用vim /etc/locale.gen 删除en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8前面的#,修改完毕后执行locale-gen

执行vim /etc/locale.conf创建配置文件并写入

LANG=en_US.UTF-8

写入完成使用export LANG=en_US.UTF-8应用一次

系统语言建议配置为英文,避免出现乱码问题

3.5 配置主机名

echo "suhang-arch" >> /etc/hostname # 设置主机名为suhang-arch

3.6 配置hosts

使用vim /etc/hosts 输入以下内容

127.0.0.1	localhost
::1	localhost
127.0.1.1	suhang-arch.localdomain suhang-arch

3.7 修改root密码

使用passwd命令修改即可

3.8 创建用户

useradd -m -g users -G wheel,storage,power -s /bin/bash suhang # 创建名叫suhang的用户
passwd suhang # 修改密码

创建完用户后,该用户默认是不能使用sudo命令提权的,执行EDITOR=vim visudo编辑sudoer文件,因为我们创建用户的时候,把suhang用户添加到了wheel用户组,所以删除%wheel ALL=(ALL) ALL前面的#保存即可

建议在sudoer文件最后一行添加Defaults rootpw, 这样sudo命令询问的密码就是root密码,保证安全性

3.9 创建systemD启动器

创建之前,先检查一下,efi分区是否被正确挂载

mount -t efivarfs efivarfs /sys/firmware/efi/efivars

archlinux-install_13.png
如上图所示,出现already mounted表明成功挂载,执行bootctl install进行systemD的安装,安装完成后,执行vim /boot/loader/entries/arch.conf,创建并编辑启动配置文件,添加如下内容

title=Arch Linux 2022.04
linux /vmlinuz-linux
initrd /intel-ucode.img # 使用amd的cpu,改成initrd /amd-ucode.img
initrd /initramfs-linux.img

配置文件里面需要填入启动分区的UUID,告诉systemD从哪个分区启动系统,使用如下命令获取PARTUUID并追加到配置文件最后一行

echo "option root=PARTUUID=$(blkid -s PARTUUID -o value /dev/sda3) rw" >> /boot/loader/entries/arch.conf

archlinux-install_14.png

3.10 延长ssd使用寿命

systemctl enable fstrim.timer

<未完待续…>