被朋友安利了一波Arch Linux,正好自己的黑群晖需要个Linux当server玩,开始折腾…
1.群晖Vitrual Machine Manager创建虚拟机
1.1 下载Arch镜像
选择163镜像地址进行下载,目前最新版本为2022.04.05
1.2 创建虚拟机, 选择Linux系统
1.3 选择虚拟机配置
注意,这里视频卡选择vga或者cirrus,选择默认的vmvga会出现问题
1.4 其它设置
磁盘配置略过,网络配置选择默认的就行。
如图所示,其它设置里面,启动ISO文件选择1.1下载好的Arch镜像,固件选择UEFI模式启动,其它设置保持默认即可
至此,虚拟机创建完成,开机进入Arch的安装界面
2.磁盘分区
执行 lsblk
磁盘信息如下
可以看到,其中loop0为镜像挂载的分区,sr0和sr1为黑群晖的光驱设备,sda为创建虚拟机的时候创建的磁盘
执行 cgdisk /dev/sda
使用cgdisk工具对sda硬盘进行分区
上下键选中空闲空间进行分区,New回车创建新分区
2.1 新建EFI分区
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写入分区表,再退出
2.4 格式化分区
使用lsblk
查看分区信息
其中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
查看一下
3.3 进入系统分区
目前的shell环境处于安装镜像文件中,需要进入已经安装基础软件的/dev/sda3分区进行操作,可以使用镜像自带的arch-chroot进入
arch-chroot /mnt
可以看到,切换成功后,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
如上图所示,出现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
3.10 延长ssd使用寿命
systemctl enable fstrim.timer
<未完待续…>