Virutalbox 中的 Arch Linux:内核恐慌 - 不同步:VFS:无法在未知块(0,0)上挂载 root fs

Virutalbox 中的 Arch Linux:内核恐慌 - 不同步:VFS:无法在未知块(0,0)上挂载 root fs

我从 arch linux evolution-image 安装了 Arch Linux 到虚拟设备。我使用 GRUB MBR 和 GRUB efi 测试了安装。

在 virtualbox 中,我可以看到 grub 菜单,但是当我选择 Arch Linux 时,它给了我一个

内核恐慌 - 不同步:VFS:无法在未知块(0,0)上安装根文件系统

出了什么问题?

答案1

我有一个错误fstabgenfstab正如指出的那样)这里)。所以内核(如果这是错误的,请纠正我)没有找到我的根分区。

fstab用标签生成并有一个带有空格的分区。在 fstab 中,必须使用\040.genfstab为空间写了垃圾。

其他答案建议运行update-initramfs -u -k version,但是该命令已替换为mkinitcpio.

为了让系统运行,我这样做了:

  • 我跑了grub-mkcofnig -o /boot/grub/grub.cfg(在这种情况下可能不重要)
  • 之后我启动进入 grub-menu 并按下C对于 grub-shell,我通过输入以下命令手动启动 Arch Linux:

    insmod linux insmod ext2 (this works for ext3 and ext4, too or enter your filesystem-driver) set root=(hd0, 2) (enter your partiton-number starting from 1) linux /boot/vmlinuz-linux root=/dev/sda2 (again select your partition) initrd /boot/initramfs-linux.img boot

  • 正确/etc/fstab(确保空格表示为\040

完成的!

答案2

你能告诉我你正在使用哪个CPU吗?

在 Arch OS 中,Intel CPU 需要 intel-cpu.img,而 AMD CPU 则需要 initramfs-linux.img。

因此,如果您使用 Intel CPU,您应该安装 intell-cpu 和 linux 映像。

sduo pacman -S intell-cpu

对于其他AMD CPU,有时Grub将intell-cpu保留为微码,这也会导致相同的情况,因此您必须手动更新grub.cfg文件。打开 Grub 文件gksu gedit /boot/grub/grub.cfg,然后编辑 arch 菜单项。

# /boot/grub/grub.cfg
...
echo 'Loading initial ramdisk'
initrd  /intel-ucode.img /initramfs-linux.img
...

对每个菜单项重复此操作。

相关内容