在我的计算机上,我双启动 Windows 和 Linux。几周前它运行良好。现在它甚至无法启动。最初,我的驱动器如下:
/dev/sda5 = EFI
/dev/sda6 = swap
/dev/sda7 = root
然后在某个时候,我的 Windows 操作系统添加了一个驱动器并移动了所有内容,所以现在是这样的
/dev/sda6 = EFI
/dev/sda7 = swap
/dev/sda8 = root
现在,当我尝试使用 arch 分区时,它无法加载,因为它尝试引导到原始根分区,/dev/sda7
但它没有意识到它已被移动到/dev/sda8
。这导致它无法工作,因为它无法识别交换文件系统。我可以使用 arch 安装 usb 并安装驱动器并与我的文件交互,但我希望它在启动时工作。有什么方法可以指定我想指向某个不同的驱动器进行启动?我检查了我的,fstab
驱动器在那里,但它们仍然指向正确的 UUID blkid
。我该怎么做才能解决这个问题?
编辑:解决方案是修改我的/boot/loader/entries/arch.conf
文件并指向正确的驱动器。
答案1
您的根分区不是从 fstab 1发现的– 它是使用参数在内核的命令行中直接指定的root=
。无论您使用哪种 Linux 引导程序,都可以从实时 USB 编辑其配置文件,或直接在引导菜单中进行临时更改(通常该E键允许编辑条目),以使 root= 参数指向正确的分区。
您可能会发现该参数直接通过其编号 (sda7) 指定根分区。最好立即将其替换为基于 UUID 的路径(就像您在 fstab 中所做的那样)。
1可能不适用于 dracut initramfs。