您的位置:首页 > 其它

ARM SERVER 虚拟机挂载多块磁盘问题的解决方法

2015-09-28 09:56 465 查看
今天在ARM-SERVER上启动虚拟机发现总是mount不上根目录,报告错误为
Begin: Loading essential drivers ... done.Begin: Running /scripts/init-premount ... done.Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.Begin: Loading essential drivers ... done.Begin: Running /scripts/init-premount ... done.Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.Begin: Running /scripts/local-premount ... done.mount: mounting /dev/vda on /root failed: Invalid argumentBegin: Running /scripts/local-bottom ... done.done.Begin: Running /scripts/init-bottom ... mount: mounting /dev on /root/dev failed: No such file or directorydone.mount: mounting /sys on /root/sys failed: No such file or directorymount: mounting /proc on /root/proc failed: No such file or directoryTarget filesystem doesn't have requested /sbin/init.No init found. Try passing init= bootarg.
虚拟机配置如下....    <disk type='file' device='disk'>      <driver name='qemu' type='raw' cache='none'/>      <source file='/home/liufeng/vm/disk/ubuntu-core-14.04.1-core-arm64.img'/>      <target dev='vda' bus='virtio'/>      <alias name='virtio-disk0'/>      <address type='virtio-mmio'/>    </disk>    <disk type='file' device='disk'>      <driver name='qemu' type='qcow2'  cache='none'/>      <source file='/mnt/data.qcow2'/>      <target dev='vdb' bus='virtio'/>      <alias name='virtio-disk1'/>      <address type='virtio-mmio'/>    </disk>....

其实是虚拟机的一个问题,将加入的空闲磁盘识别为vda了,本来应该将ubuntu-core-14.04.1-core-arm64.img识别为vda,结果被识别为vdb了(可以在(initramfs)下面mount /dev/vdb 看到)
解决问题思路如下

1. 找到vdb的UUID
(initramfs) blkid /dev/vdb/dev/vdb: UUID="004802c8-b09c-4bf6-b2d9-6722bfcd851b" TYPE="ext4" 

2. 修改虚拟机启动参数,用UUID就和识别的盘符没有关系了,使用UUID永远是唯一的,vda也好,vdb也罢,都没有关系  <os>    <type arch='aarch64' machine='virt'>hvm</type>    <kernel>/home/liufeng/vm/disk/vmlinuz-3.13.0-57-generic</kernel>    <initrd>/home/liufeng/vm/disk/initrd.img-3.13.0-57-generic</initrd>    <cmdline>console=ttyAMA0 root=UUID=004802c8-b09c-4bf6-b2d9-6722bfcd851b</cmdline>    <boot dev='hd'/>  </os>

3. 启动虚拟机,OK,注意这里新的磁盘变成了/dev/vda,后面别mount错了
虚拟机里面执行:root@localhost:~# mkfs.ext2 /dev/vdaroot@localhost:~# mount /dev/vda /mnt/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: