![我的 CentOS 7 无法再启动](https://linux22.com/image/87698/%E6%88%91%E7%9A%84%20CentOS%207%20%E6%97%A0%E6%B3%95%E5%86%8D%E5%90%AF%E5%8A%A8.png)
答案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 标头。