我正在尝试按照此帖子在 linode 上的 stock arch linux 实例上使用 pv-grub:-
http://forum.linode.com/viewtopic.php?p=49387
不幸的是,我无法启动启用了 pv-grub 的实例。
这是我能够通过logview
linode检索到的错误日志lish
。
Xen Minimal OS!
start_info: 0xa8d000
nr_pages: 131072 shared_inf: bf26c000
pt_base: 0xa90000 mod_start: 0x0
Booting 'Arch Linux [/boot/vmlinuz-linux]'
root (hd0)
Filesystem type is ext2fs, using whole disk
kernel /boot/vmlinuz-linux root=/dev/xvda ro
close blk: backend at /local/domain/0/backend/vbd/3391/51712
close blk: backend at /local/domain/0/backend/vbd/3391/51728
[21800338.956906] i8042: No controller found
[21800338.998630] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[21800338.998818] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
我应该如何解释这个错误以及如何修复它,以便我的启用 pv-grub 的 arch linux 实例现在可以正常启动?
更新
我还注意到它声称文件系统类型是ext2fs
。也许这就是问题所在,因为我创建的磁盘linode.com
实际上使用的是ext3
?
答案1
原装的 arch linux 对我来说不起作用,我的解决方案是定制自己的内核。
参考 -https://unix.stackexchange.com/questions/37407/learning-how-to-build-my-own-linux-kernel
答案2
如果有人不想编译自己的内核,Arch Linux 中的现有内核完全支持 Xen、半虚拟化等,并且非常适合使用 pv-grub 进行启动。以下是设置方法(保证可以使用linux-lts 3.10.40-1
):
- 在您的 Linode 上,使用 pacman 安装您选择的 Linux 内核包。我建议您选择一个核心包,例如
linux
或linux-lts
。任何更奇特的包可能无法正常工作。 - 重要的!跑步
sudo mkinitcpio -p linux
。 - 使用 pacman 删除您可能已安装的所有引导加载程序包(例如 或
grub
)syslinux
。 创建包含以下内容的文件
/boot/grub/menu.lst
。您可能需要稍微调整一下以匹配您选择的内核包和 Linode 磁盘布局:# general configuration: timeout 0 default 0 hiddenmenu # (0) Arch Linux title Arch Linux LTS root (hd0) kernel /boot/vmlinuz-linux-lts root=/dev/xvda rw initrd /boot/initramfs-linux-lts.img # (1) Arch Linux Fallback title Arch Linux LTS - Fallback root (hd0) kernel /boot/vmlinuz-linux-lts root=/dev/xvda rw initrd /boot/initramfs-linux-lts-fallback.img
- 在 Linode 的仪表板下,单击编辑更改您选择的 Linode 的配置。
- 从启动设置→核心, 选择光伏-grub-x86_64。
- 重新启动您的 Linode,它将启动到您的新内核!