vmware 工作站中的自定义 Linux 内核构建失败

custom Linux kernel build failure in vmware workstation

尝试 compile/build 并在 vmware 工作站内启动自定义内核时,在启动新内核时失败并掉到 shell 并显示错误“无法通过 uuid 找到磁盘”。 我用 ubuntu 和 centos 都试过了。


我尝试过但没有帮助的事情


  1. 检查启动项中 uuid 的映射和目录中的存在。
  2. initramfs-更新
  3. 将 root=uuid=<> 替换为 /dev/disk/sda3

vmware 工作站有问题吗? 怎么改正..??

我自己尝试使用 Centos 在另一个分区上安装 bootstrap Fedora 22 到空白分区时遇到了类似的错误。我从来没有完全解决它,但我确实发现问题出在我的 initrd 而不是内核。

问题是 initrd 没有启动 LVM,因为 dracut 没有告诉 initrd 它需要 LVM。因此,如果您手动启动 LVM,您应该能够引导进入您的系统以修复它。

我相信这是我 运行 从紧急 shell 启动 LVM 的命令序列:

vgscan
vgchange -ay
lvs

this link helped me remember

接着exit恢复正常启动。

您可能必须手动挂载 LVM /etc/fstab 条目,我不记得是否这样做了。

试试这个:

sudo update-grub

然后:

mkinitcpio -p linux

检查您的 fstab 文件不会有什么坏处。在那里,您应该找到驱动器的 UUID。确保在 fstab.

中设置了正确的标志

另外,grub.cfg 中有一个设置 GRUB 使用旧式的十六进制 UUID。也检查一下!

问题是在执行

之后创建 initramfs

make oldconfig

并为新选项选择默认值,确保有足够的磁盘空间可用于要创建的映像。 在我的例子中,创建的图像不正确,因此无法在启动时安装图像。


比较时;图像大小比现有的低版本图像小得多,所以我添加了另一个足够大的磁盘然后

make bzImage

make modules

make modules_install

make install

开始工作起来很有魅力。 我想知道为什么图像创建更早完成并导致图像损坏(尺寸更小)而没有抛出任何错误 [每次]