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

来源:互联网 发布:迅龙数据恢复软件安卓 编辑:程序博客网 时间:2024/06/05 02:20
今天在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 argument
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... mount: mounting /dev on /root/dev failed: No such file or directory
done.
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
Target 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/vda
root@localhost:~# mount /dev/vda /mnt/




0 0
原创粉丝点击