更改系统磁盘分区后,系统无法启动,进入“Dracut Emergency Shell”;我该如何让它启动?

更改系统磁盘分区后,系统无法启动,进入“Dracut Emergency Shell”;我该如何让它启动?

背景

我有一个新系统,我花了很多时间配置软件来执行各种服务,然后发现驱动器可能存在问题。所以我决定更换磁盘,保留新磁盘的内容。

系统磁盘也存在无法正确启动的问题kernel,我似乎无法修复(我按照所有grub说明操作,但默认情况下无法正确启动,除非您手动选择正确的启动)。所以,我认为最好的方法是简单地在新磁盘上kernel进行全新安装,这样就可以解决启动问题。Fedora Server

发生了什么

新磁盘大得多,因此我在安装过程中对其进行了稍微不同的分区。然后,我移除了驱动器,并将新旧系统磁盘都放入我附近的另一台服务器中。出于谨慎考虑,我保留了fstab新系统磁盘中的,因为我知道它有分区UUIDs

移动文件的方法有很多,我决定在新系统磁盘上创建一个干净的根分区。我想dd也许可以这样做,但我习惯于在分区大小相同的情况下使用它,而且有点不确定,所以我只是用 重新格式化了根分区(“/”)gparted。然后我使用普通操作系统工具移动文件。然后我从新安装中剪切并粘贴内容,UUID并将其插入到我正在修复的服务器上非常非库存的文件中fstab

一切顺利。

然后我尝试启动系统。它发布,然后进入grub引导加载程序,它自动选择正确的内核,然后它就开始运行了!...直到它没有运行!

它显示“显示 Plymouth 启动屏幕”或类似内容,然后暂停,然后发出大量超时警告,警告来自某个自称的程序dracut。从这里,我用手机截取了一张屏幕截图。它显示:

Warning: Could not boot.
Starting Dracut Emergency Shell...
Warning: /dev/disk/by-uuid/<a uuid> does not exist
Generating "/run/initramfs/rdsosreport.txt"

然后建议使用journalctl并可能保存rdsosreport.txt以用于错误报告。

确认!该怎么办?我到处寻找这个Warning [...] does not existdracut emergency shell上面提到的内容。什么也没有!

答案1

更新 fstab

需要/etc/fstab使用分区的正确 UUID 来更新文件

更新 crypttab

如果你之前的分区被加密,你需要从中删除条目/etc/crypttab

如果你的新分区已加密,则需要在/etc/crypttab

重新生成 initramfs

更新/etc/fstab/etc/crypttab文件后,您需要使用 dracut 更新 initramfs 映像。

您可以通过运行 dracut 紧急 shell 来更新 dracut 映像

# dracut --hostonly --regenerate-all --force
参考

答案2

信息:

Warning: /dev/disk/by-uuid/<uuid> does not exist

是一个重要线索。

事实证明,根分区UUID存储在grub2现代 Fedora Server 分区的两个位置/boot。但在这种情况下,实际上存在三个UUID问题。

根分区(“/”)的重新格式化实际上改变了UUID因此,UUID必须先发现新内容,然后将其放入正确的位置。有很多方法可以找到新内容UUIDs,但有一个命令行工具可以做到这一点blkid- 如下例所示:

# blkid
/dev/sda1: UUID="64bbac09-1a12-4bea-8873-212ffb56f2a8" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="8a09913a-fdb2-42a0-98e3-6b89e16374d2"

请注意,对于每个分区,UUIDs此工具会显示两个分区;您需要其中的第一个。还请注意,非特权用户无法运行blkid

以下是根分区UUID需要放在的三个位置:

  1. /etc/fstab描述根分区挂载的行中;
  2. /boot/grub2.cfg设置内核选项的行上。找到它的快速方法是查找前者(UUID如果您还有的话)。或者查找"set kernelopts="root=UUID="、 和;
  3. /boot/grub2/grubenv与文件中引用的行类似的行中/boot/grub2.cfg查找:kernelopts=root=UUID=

请记住只更改一个新的 UUID,其他内容保持不变。也许在编辑之前备份文件,以防万一!

相关内容