调整根分区大小后,Fedora 29 启动到 dracut 紧急 shell

调整根分区大小后,Fedora 29 启动到 dracut 紧急 shell

我在 VirtualBox 中将 Fedora 29 上的根文件系统从 15GB 调整为 20GB,但无法再启动。它总是进入 dracut 紧急 shell。在 VirtualBox 中首先调整 VDI 和快照的大小后,我按照步骤 1.1 到 1.11 扩大了磁盘,并按照此主题。当我遇到问题时,我正在执行步骤 2(重新启动)。

运行后blkid我看到/dev/sda1/dev/sda2。我已经/dev/sda1在 Fedora Live 中挂载了 并且可以看到它是启动分区,因此如果我想的话可以编辑 grub 配置,但我找不到挂载 的方法/dev/sda2。LVM 报告没有设备。

blkid两个设备的输出有所不同。虽然/dev/sda1报告了UUIDTYPEPARTUUID我只PARTUUID在 上看到/dev/sda2。当我使用 删除并重新创建分区时fdisk,它是否抹去了 LVM 所需的一些元数据?有没有什么办法可以让这个系统再次启动?

答案1

我将回答我自己的问题,以防将来其他人遇到同样的问题。我遇到这个问题的主要原因是因为fdisk邮报我正在跟进,所以被问了一个我没有想到的问题(即我所遵循的说明中没有提到的问题)并且我也回答得很差。

fdisk现在将提醒您存在签名LVM2_member并询问您是否要删除它:

Partition #2 contains a LVM2_member signature.

Do you want to remove the signature? [Y]es/[N]o:

不幸的是,由于我现在不想深入讨论的原因,但您可以阅读我的完整博客文章(我将在下面提供链接),我Y对此做出了回答。不出所料,这将磁盘上的 64 位lvm_type字段清零LABEL_HEADER,导致我的系统无法启动,而是毫不客气地将我扔进 dracut 紧急 shell 中。

解决方案是将 64 位标头写回到磁盘。我找不到可以帮我完成此操作的工具,因此我使用ddFedora Live 中的将磁盘中的前几个块读入文件,使用 编辑文件vi -b,然后使用 将其再次写回到磁盘dd。我确切地知道要编辑哪些字节,因为我将 的输出od -Ax -tx1z -v <filename>与我可用的早期快照的副本进行了比较。请注意,我正在使用的 Fedora Live 映像不可用xxd。重新添加缺失的签名后,LVM 立即识别出磁盘,我能够再次挂载我的卷。

由于完整的解释和过程相当长,我写了一篇博客。如果你也遇到过类似的困境,你可能会发现我的笔记很有用,你可以查看这里

相关内容