Arch Linux To Go by Ventoy
bili_7321077
编辑于 2022年11月15日 04:43

安装Ventoy到U盘

这个就不多解释了,下载Ventoy的安装工具,选择U盘安装就可以了。这里说的是Windows版,至于用Linux版的朋友,我相信这种简单的命令行工具你们可以驾驭,实在驾驭不了也有GUI版。

制作Arch Linux虚拟磁盘

首先准备好Virtual Box或者其他虚拟机。

新建虚拟机,CPU、内存随意,位置选U盘,格式选择VDI、VHD或VHDX,大小只能选择固定大小,Ventoy不支持动态扩展,所以提前想好你需要多大磁盘空间。点击确定后就是漫长的等待分配硬盘时间,速度取决于你的U盘速度。

开始前点虚拟机设置,选择启用EFI支持,挂载上安装镜像,启动进archiso。安装过程看Arch Wiki,下面只提一些需要注意的点。因为是事后写的,记忆不是很清楚,如果有问题可以留言或者私信。

EFI

一开始我想,Ventoy是引导软件,那我岂不是可以不分配EFI分区?事实证明我错了,EFI分区是必要的,于是我付出了重装一次系统的代价。

fdisk

如果新建分区分配主分区号的时候显示(1-4),那么当前是MBR分区表,按来转换为GPT模式。

新建完分区之后按转换EFI分区类型为EFI,类型编号1。

initramfs

安装到这一步的时候停下,这里开始和官方教程有出入。

参考Ventoy官方的文档,我们需要下载vtoyboot脚本。官方给的托管平台是GitHub,不太便于访问,在这里我推荐一个传文件的网站:transfer.sh,支持curl或wget下载,在安装Arch这种纯命令行环境下非常方便。

因为Arch本身是最小安装,缺少很多最基本的包,这个脚本没法直接运行。缺少的包包括但不限于:which、lvm2。除了缺的这些之外再装个你喜欢的文本编辑器,默认是不带的,然后修改,把hooks一行的autodetect删掉,保证最大兼容性。

我在搜解决方案的时候,有一个方法说装mdadm这个包,然后在hooks里边加mdadm_udev这个模组。因为重启太多次,我忘了到底需不需要它了,希望读者替我验证一下。

grub

安装grub、efibootmgr两个包,运行以下命令。

grub-install --target=x86_64-efi --efi-directory=/boot/efi  --bootloader-id=grub --removable grub-mkconfig -o /boot/grub/grub.cfg

vtoyboot

最后运行vtoyboot.sh。应该可以成功结束。出现错误可以评论或者私信……有点后悔,当时就应该记上笔记。

提醒

别忘了装iw之类的网络工具,用U盘启动就不像虚拟机有桥接的网络了。或者把DE装好再关机也可以。

最后

关闭虚拟机,把虚拟硬盘文件的后缀改为.vtoy。重启进入Ventoy就可以看见启动项。

grub shell抢救

如果非常不幸地进入了grub shell,也就是只有个的界面,可以按照下面的步骤来抢救:

  • ls来查看硬盘,(hd0)这样的是硬盘,(hd0,msdos1)这样的是分区

  • ls (hd0,msdos1)/(注意有斜杠)来查看分区里的内容,找到那个里面有vmlinuz-linux文件的,它是启动分区

  • set root=(hd0,msdos1)(hd0,msdos1)改成你的启动分区

  • linux /vmlinuz-linux root=/dev/sda1sda1改成你的根目录分区

  • initrd /initramfs-linux.img

  • boot

就可以进系统了,再想想引导怎么配吧。