被朋友安利了一波Arch Linux,正好自己的黑群晖需要个Linux当server玩,开始折腾...
选择163镜像地址进行下载,目前最新版本为2022.04.05
注意,这里视频卡选择vga或者cirrus,选择默认的vmvga会出现问题
磁盘配置略过,网络配置选择默认的就行。
如图所示,其它设置里面,启动ISO文件选择1.1下载好的Arch镜像,固件选择UEFI模式启动,其它设置保持默认即可
至此,虚拟机创建完成,开机进入Arch的安装界面
执行 lsblk
磁盘信息如下
可以看到,其中loop0为镜像挂载的分区,sr0和sr1为黑群晖的光驱设备,sda为创建虚拟机的时候创建的磁盘
执行 cgdisk /dev/sda
使用cgdisk工具对sda硬盘进行分区
上下键选中空闲空间进行分区,New回车创建新分区
First Sector回车默认即可
Size填写efi分区大小,建议200mb即可
Hex Code 填写ef00(如不清楚代码,也可以根据提示按l查询)
Partition Name 分区名称,随意填写,我个人填boot
First Sector回车默认即可
Size 根据自己的内存配置来,我这里创建1g的的swap分区
Hex Code 填写8200
First Sector回车默认即可
Size默认分配剩余空间
Hex Code 默认即为linux分区格式ext4
Partiction Name 略
好了,得到如下分区表,分区完成,记得点击下方的Write写入分区表,再退出
使用lsblk
查看分区信息
其中sda1为efi分区,sda2为swap分区,sda3为主分区
使用以下命令分别对分区进行格式化
mkfs.fat -F 32 /dev/sda1
mkswap /dev/sda2
mkfs.ext4 /dev/sda3
对格式化完毕的分区进行挂载,注意swap分区的挂载命令为swapon
swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir /mnt/boot # 创建efi分区的挂载点
mount /dev/sda1 /mnt/boot
使用自带的脚本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
两次回车默认即可,等待安装完成...
/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
前面步骤挂载了分区,但是重启会丢失挂载信息,genfstab命令可以根据当前的磁盘挂载信息,生成对应的fstab文件
genfstab -U -p /mnt >> /mnt/etc/fstab
生成完毕后,使用cat /mnt/etc/fstab
查看一下
目前的shell环境处于安装镜像文件中,需要进入已经安装基础软件的/dev/sda3分区进行操作,可以使用镜像自带的arch-chroot进入
arch-chroot /mnt
可以看到,切换成功后,shell界面有明显的颜色变化,表明已经切换成功
首先执行以下命令
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
应用一次
系统语言建议配置为英文,避免出现乱码问题
echo "suhang-arch" >> /etc/hostname # 设置主机名为suhang-arch
使用vim /etc/hosts
输入以下内容
127.0.0.1 localhost
::1 localhost
127.0.1.1 suhang-arch.localdomain suhang-arch
使用passwd
命令修改即可
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密码,保证安全性
创建之前,先检查一下,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
systemctl enable fstrim.timer
<未完待续...>