将lenny domU 32bit迁移到Squeeze Dom0 64bit

时间:2012-11-09 10:29:24

标签: debian xen

我是xen的新手(我曾经使用过kvm和完全虚拟化的vm)

我有一个全新的安装:挤压amd64和xen 4。 新创建的domU和进口挤压domU工作正常。

现在我要导入旧的lenny 32bit domU:

vm.cfg是:

kernel  = "/boot/vmlinuz-2.6.26-2-xen-686"
ramdisk = "/boot/initrd.img-2.6.26-2-xen-686"
disk = [ 'phy:vxen/vm,sda1,w' ]
root = "/dev/sda1 ro"

我评论了内核和ramdisk行并添加了pygrub:

bootloader = '/usr/lib/xen-default/bin/pygrub'
#kernel  = "/boot/vmlinuz-2.6.26-2-xen-686"
#ramdisk = "/boot/initrd.img-2.6.26-2-xen-686"

vm无法启动,我在grub屏幕后收到此消息:

Error: (2, 'Invalid kernel', 'elf_xen_note_check: ERROR: Will only load images built for the generic loader or Linux images')

在这个虚拟机内(我可以在旧服务器上启动它) Grub已安装

vm:~# dpkg --list | grep grub
ii  grub                              0.97-47lenny2              GRand Unified Bootloader (Legacy version)
ii  grub-common                       1.96+20080724-16           GRand Unified Bootloader, version 2 (common files)

在/ boot我有这些文件: 的initrd.img-2.6.26-2-的xen-686 的initrd.img-2.6.26-2-686 的vmlinuz-2.6.26-2-686 的vmlinuz-2.6.26-2-的xen-686

cat /boot/grub/menu.lst

## ## End Default Options ##

title           Debian GNU/Linux, kernel 2.6.26-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet
initrd          /boot/initrd.img-2.6.26-2-686

title           Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro single
initrd          /boot/initrd.img-2.6.26-2-686

### END DEBIAN AUTOMAGIC KERNELS LIST

cat /boot/grub/device.map

(hd0)   /dev/sda
(hd1)   /dev/sdb

我想安装grub2并更新,以便能够在我的新dom0中启动, 但是update-grub失败

Searching for GRUB installation directory ... found: /boot/grub
warning: grub-probe can't find drive for /dev/sda1.
grub-probe: error: Cannot find a GRUB drive for /dev/sda1.  Check your device.map.

我尝试了这些步骤,因为我使用lvm:

nano /boot/grub/device.map
(hd0)   /dev/xvda
cd /dev
mknod xvda b 202 0
dpkg --configure -a
update-grub

升级 - grub仍然失败。

无论如何,有人知道在我的新挤压dom0上运行这个旧vm的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我想通了: 在虚拟机内部修改fstab

用/ dev / xvda1

替换/ dev / sda1

复制新xen serveur上的内核文件

/boot/vmlinuz-2.6.26-2-xen-686

/boot/initrd.img-2.6.26-2-xen-686

修改新的vm.cfg:

   #bootloader = '/usr/lib/xen-default/bin/pygrub'
    kernel  = "/boot/vmlinuz-2.6.26-2-xen-686"
    ramdisk = "/boot/initrd.img-2.6.26-2-xen-686"

    root        = '/dev/xvda1 ro'
    disk        = [
              'phy:vxen/vm,xvda1,w',
          ]

并且新的vm将开始。