我的 CentOS 7 无法再启动

我的 CentOS 7 无法再启动

我的 CentOS 7 无法再启动。我在启动后返回:

假设驱动器缓存:直写

我发现了一些可以通过启动菜单删除 rhgb 的东西,但这不起作用。我删除它,并使用 ctrl+x 保存它,但仍然无法启动。

可能有一些分区表丢失了。我不知道发生了什么,因为我重新启动机器已经很长时间了。我现在用谷歌调试了一下午,但仍然没有解决方案。有人可以帮忙吗?

控制台输出

答案1

红色错误是转移注意力的错误(无论如何它们都会发生)。您有一个可用的 /boot,但无法激活 LVM 分区(可能是 sda2)。

未知的分区表...我承认它很可疑。但您可能将 /boot 和 LVM 安装在同一个磁盘 sda 上。在这种情况下,你已经遇到了 sda 问题......

file -s /dev/sda1

file -s /dev/sda2

将描述分区,例如

/dev/sda3: LVM2 PV (Linux Logical Volume Manager), UUID: 8OtrnK-xreK-CyDK-Jdcq-VayD-tbUG-tycS0L, size: 119645667328

编辑:除了 initramfs 可能没有文件!blkid不过请尝试一下,因为我认为这就是 udev 所使用的。

/dev/sda3: UUID="8OtrnK-xreK-CyDK-Jdcq-VayD-tbUG-tycS0L" TYPE="LVM2_member" PARTUUID="82bcd2d1-39af-436f-9b58-4ec8434483a2"

您可以手动触发激活并查找错误

pvscan -v -a ay /dev/sda1 /dev/sda2

我想你也应该尝试同样的事情/dev/sdb

不过,您似乎没有遗漏任何错误消息。这意味着没有尝试激活 LVM 分区...(可能它没有被识别为这样,因为有人擦除了标头...)。如果日志发现了 LVM 的任何内容,那么它确实应该包含一些详细信息,例如(在 Fedora 上,即较新的软件):

Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: Scanning devices sda3  for LVM logical volumes vg_fossil/root_2
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: File descriptor 98 (socket:[10072]) leaked on lvm invocation. Parent PID 448: /
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: File descriptor 99 (socket:[10073]) leaked on lvm invocation. Parent PID 448: /
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: inactive '/dev/vg_fossil/root' [10.00 GiB] inherit
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: inactive '/dev/vg_fossil/root_2' [92.00 GiB] inherit
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: inactive '/dev/vg_fossil/docker-pool' [5.34 GiB] inherit
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: File descriptor 98 (socket:[10072]) leaked on lvm invocation. Parent PID 448: /
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: File descriptor 99 (socket:[10073]) leaked on lvm invocation. Parent PID 448: /
Apr 15 15:59:52 localhost.localdomain dracut-initqueue[374]: /etc/lvm/profile/vg_fossil--docker-pool-extend.profile: stat failed: No such fi
Apr 15 15:59:52 localhost.localdomain systemd[1]: Found device /dev/mapper/vg_fossil-root_2.

您需要查看传递给内核和 dracut initramfs 的命令行。

cat /proc/cmdline

因为可以将选项传递给 dracut,告诉它不要扫描 LVM。


第二个技巧是扫描文件系统。如果您的 LVM LV 是连续的 - 例如,如果您从未扩大它们 - 那么 testdisk 将使您能够访问所有数据。如果您启动到一个不错的救援系统,您可以安装并运行 testdisk。例如,这可以让您调查 sda2 中的文件系统,即使有人擦除了 LVM PV 标头。

相关内容