求助:U盘上安装的Xen无法找到本地硬盘

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
Edelweisszf
帖子: 38
注册时间: 2009-02-25 15:56
送出感谢: 0
接收感谢: 0

求助:U盘上安装的Xen无法找到本地硬盘

#1

帖子 Edelweisszf » 2010-05-06 13:27

我用的是 SanDisk Cruzer Contour 16GB的U盘(内含U3 System,不过应该没什么影响)
已经安装了Ubuntu 8.10和Xen 3.4.2, kernel 2.6.18.8-xen,是从Xen官网上下载的tarball文件,通过make world和make install方式安装的

现在的问题是:
启动Xen的内核后,在Ubuntu中无法找到本地的硬盘,即/dev/sdax中没有代表本地硬盘的设备文件,但是启动一般的Ubuntu 8.10的内核就没有这个问题
我想用U盘上的Xen把本地的操作系统当作虚拟机启起来,可是找不到/dev下的设备文件就无法写虚拟机的配置文件

请问该如何解决这个问题?
Edelweisszf
帖子: 38
注册时间: 2009-02-25 15:56
送出感谢: 0
接收感谢: 0

Re: 求助:U盘上安装的Xen无法找到本地硬盘

#2

帖子 Edelweisszf » 2010-05-09 16:44

解决了,原来是用 update-initramfs 命令生成的 initrd.img-2.6.18.8-xen (以后简写为 initrd.img) 文件还需要修改。先附上修改 initrd.img 文件的方法吧,希望对不了解的人有所帮助:

首先切换到 root 身份,然后输入以下命令:
mkdir /initrd # 创建一个临时目录 initrd 用来对 initrd.img 作处理
cd /initrd
cp /boot/initrd.img . # 将要修改的 initrd.img 文件拷贝到此处
mv initrd.img initrd.img.gz # 添加 .gz 后缀
gunzip initrd.img.gz # 解压成 cpio 文档
cpio -i < initrd.img # 继续解包
ls # 此时会多出许多文件,这就是原 initrd.img 文件中包含的内容
vi etc/modprobe.d/options # 修改这个文件,将最后一行注释掉,保存退出
rm initrd.img # 删掉原来没用的 initrd.img
find . | cpio -o -H newc | gzip -9 > /boot/initrd.img # 重新打包

再次启动 Xen 就能看到所有的本地硬盘了。

不过不知道为什么去掉 etc/modprobe.d/options 文件的最后一行就可以了呢?附上最后一行的内容:
options libata ignore_hpa=1

网上也有人遇到类似的问题,但是我没找到出问题的原因,还望大牛指教!
回复

回到 “虚拟机和虚拟化”