图片来源 / Image Source: r/linuxmasterrace
序言
我去年买了个 A2000 512G 装 Ventoy,ISO 放了不少——什么 Arch, BlackArch, WinPE, Win11… 不过好像也就当安装盘用。
那不是白费了我这 NVMe 固态?这可不行,于是就有了这篇文章。
准备
安装 Ventoy
首先往硬盘里装 Ventoy,这是什么之类的废话我也就不多说了。
在 配置选项 - 分区设置
里勾选 在磁盘最后保留一段空间
,大小按个人喜好,这里我选择 128G。
Distro Grub Themes
Ventoy 自带的 GRUB 主题我就评价一个字——丑,换一个漂亮又简洁的 Distro Theme 吧。
Files 往下翻找到 arch.tar,下载解压到 /ventoy/themes/arch
里,进 VentoyPlugson 修改配置。
下载 ArchISO
Arch Linux - Downloads 往下翻找到合适的镜像下载。
命名格式是 archlinux-yyyy.mm.dd-x86_64.iso
,下载完塞进 Ventoy 的分区里。
BIOS 设置
开机按 DEL 进 BIOS,关闭 Secure Boot。
在启动顺序里将 UEFI USB Device 切换到首位,重启电脑进入 Ventoy > Arch ISO。
ArchISO 在 UEFI 下是纯黑背景:如果在启动时看到 Arch LOGO,那就代表没有正确设置。
安装
进入 ArchISO 后基本按 Installation guide 进行操作,但一些细节不同。
网络 & 更新时间
bash
ip a # 查看网卡和已分配的 IP 地址ping archlinux.org -c 4 # 检查网络连接timedatectl set-ntp true # 更新系统时间
分区 & 格式化 & 挂载
作为体验过 EXT4+LVM 和 BtrFS 的小白鼠我本来是想用 ZFS 的,但翻了翻感觉作为移动硬盘确实用不到那些高级功能,所以选择了 F2FS。
lsblk 找到自己的硬盘是 /dev/sdc
,cfdisk 用最后那块 128G 的 Free Space 创建一个分区 /dev/sdc3
,格式化为 F2FS。
我并不想在这里拥有额外的复杂度,所以不会为 swap 和 home 单独分区;把 /dev/sdc3
挂载到 /mnt
。
bash
lsblk # 列出块设备cfdisk # 分区mkfs.f2fs /dev/sdc3 # 格式化分区mount /dev/sdc3 /mnt # 挂载分区
安装 & Fstab & Chroot
使用 pacstrap 安装基础包:
bash
pacstrap /mnt base base-devel linux-zen linux-firmware nano dhcpcd neofetch
linux 在这里替换为 linux-zen,有一些性能优化。虽然也可以用 xanmod,不过它在 AUR 里就很折腾。
根据我的需要往后面加了 nano, dhcpcd 和 neofetch,其他软件包也可以一起写在后面。
生成 Fstab 文件:
bash
genfstab -U /mnt >> /mnt/etc/fstabcat /mnt/etc/fstab
记下这个分区的 UUID,Ventoy 自定义配置需要用到。
Chroot 到新安装的系统:
bash
arch-chroot /mnt
基本设置
先简单设置一下。详细说明我就跳过了,毕竟 Installation guide 都有。
bash
systemctl enable --now dhcpcd # 开机启动 dhcpcdln -sf /usr/share/zoneinfo/Region/Asia/Taipei /etc/localtime # 修改时区hwclock --systohc # 生成 /etc/adjtimenano /etc/locale.conf # 设定 LANG 变量nano /etc/locale.gen # 编辑 locale.genlocale-gen # 生成 locale 信息echo localhost > /etc/hostname # 修改主机名passwd # 设置 root 密码
然后重启。
bash
exitumount -R /mntreboot
Ventoy 自定义菜单
这里参考了 Plugin.grub_menu . Ventoy 和 在已安装 Ventoy 的移动设备上安装 Linux 与配置引导。
回到主系统后在 ventoy
目录下创建一个 ventoy_grub.cfg
,如下填写(替换成 fstab 中的 UUID):
text
menuentry "Arch Linux" --class=custom {set root=($vtoydev,gpt3)linux /boot/vmlinuz-linux root=UUID=ddd7c6b2-d457-45cb-8cd9-ec2c8211c393initrd /boot/initramfs-linux.imgboot}menuentry '<-- Return to previous menu [Esc]' --class=vtoyret VTOY_RET {echo 'Return ...'}
重启进入 Ventoy,按 F6 就会显示自定义菜单,到这里已经可以正常引导了。