因此,我尝试将物理本机 CentOS 4.6 安装移动到 CentOS 5.5 服务器上的 DomU 实例。我已按照可用的教程 @CentOs - 维基百科但是在运行 xm create 时遇到以下问题。
Traceback (most recent call last):
File "/usr/bin/pygrub", line 691, in ?
data = fs.open_file(chosencfg["ramdisk"],).read()
IOError: [Errno 2] No such file or directory
No handlers could be found for logger "xend"
Error: Boot loader didn't return any data!
有趣的是,pygrub 加载正常,但加载 RAM 时似乎遇到了障碍,我认为这可能是将物理 HD 映射到 vm 实例时出现的问题,因此我查看了 fdisk -l(见下文)。并将 domU 配置中的交换映射到 sda2,然后继续将 domU(sdb2)上的 fstab 修改为映射到 sda2 的交换,但它不起作用。如果有人可以帮我,我下面还有一些信息:
Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 16 128488+ 83 Linux
/dev/sdb2 17 1928 15358140 83 Linux
/dev/sdb3 1929 5752 30716280 83 Linux
/dev/sdb4 5753 19435 109908697+ 5 Extended
/dev/sdb5 5753 6013 2096451 82 Linux swap / Solaris
/dev/sdb6 6014 19435 107812183+ 83 Linux
在 /etc/xen/uno 中- Xen 配置文件
name = 'uno'
bootloader = '/usr/bin/pygrub'
maxmemory = 1256
memory = 512
vcpus = 1
cpus = '1-2'
vif = [ '' ]
disk = [ 'phy:sdb2,sda1,w',
'phy:sdb5,sda2,w',
'phy:sdb6,sda3,w',
'phy:sdb3,sda4,w' ]
/etc/fstab
# obsolete /boot ext3 defaults 1 1
/dev/sda1 / ext3 defaults 1 1
/dev/sda2 swap swap defaults 0 0
/dev/sda3 /u ext3 defaults 1 2
/dev/sda4 /backup ext3 defaults 1 2
有人有任何线索吗?
答案1
我认为它想要加载 ramdisk。在我的 xen confs 中,有一行如下内容:
ramdisk = "/boot/initrd-xen-2.6.18-128.4.1.el5xen"
现在,在我的配置文件中,这是因为内核和 ramdisk 位于 VM 文件系统之外。我原本以为这是 pygrub 应该从 VM grub 配置文件/文件系统读取的配置,但您可以尝试简单地将 ramdisk 复制到外部并使用 ramdisk 选项指向它。
答案2
@Bittrance:我的印象是使用 pygrub 时不需要 ramdisk 行。
这里是一个讨论类似问题的帖子。看起来 pygrub 并不总是能找到 MBR。
另外,我想知道如果使用'phy:sdb2,sda1,w'
而不是是否重要'phy:/dev/sdb2,sda1,w'
?