我从 arch linux evolution-image 安装了 Arch Linux 到虚拟设备。我使用 GRUB MBR 和 GRUB efi 测试了安装。
在 virtualbox 中,我可以看到 grub 菜单,但是当我选择 Arch Linux 时,它给了我一个
内核恐慌 - 不同步:VFS:无法在未知块(0,0)上安装根文件系统
出了什么问题?
答案1
我有一个错误fstab
(genfstab
正如指出的那样)这里)。所以内核(如果这是错误的,请纠正我)没有找到我的根分区。
我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
...
对每个菜单项重复此操作。