Arch Linux 安装折腾日记

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

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

1.1 下载Arch镜像

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

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

image.png

1.3 选择虚拟机配置

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

1.4 其它设置

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

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

image.png

2.磁盘分区

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

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

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

2.1 新建EFI分区

image.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写入分区表,再退出
image.png

2.4 格式化分区

使用lsblk查看分区信息
image.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查看一下
image.png

3.3 进入系统分区

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

arch-chroot /mnt

image.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

image.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

image.png

3.10 延长ssd使用寿命

systemctl enable fstrim.timer

<未完待续...>