[oe-commits] [openembedded-core] 04/07: runqemu: explicitly set image format

git at git.openembedded.org git at git.openembedded.org
Wed Sep 28 14:04:42 UTC 2016


rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 5100bb36502ef7c81220a3c4809eb1b3ac83801f
Author: Ed Bartosh <ed.bartosh at linux.intel.com>
AuthorDate: Wed Sep 28 12:16:14 2016 +0300

    runqemu: explicitly set image format
    
    QEMU produces a warning if drive format is not specified:
      WARNING: Image format was not specified for
      'tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic'
       and probing guessed raw.
       Automatically detecting the format is dangerous for raw images,
       write operations on block 0 will be restricted.
       Specify the 'raw' format explicitly to remove the restrictions.
    
    Set image format to 'vmdk', 'qcow2' or 'vdi' for correspondent image
    types. Set it to 'raw' for the rest of image types.
    
    Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/runqemu | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 45bcad7..09b231b 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -817,11 +817,13 @@ class BaseConfig(object):
         else:
             self.setup_tap()
 
+        rootfs_format = self.fstype if self.fstype in ('vmdk', 'qcow2', 'vdi') else 'raw'
+
         qb_rootfs_opt = self.get('QB_ROOTFS_OPT')
         if qb_rootfs_opt:
             self.rootfs_options = qb_rootfs_opt.replace('@ROOTFS@', self.rootfs)
         else:
-            self.rootfs_options = '-drive file=%s,if=virtio,format=raw' % self.rootfs
+            self.rootfs_options = '-drive file=%s,if=virtio,format=%s' % (self.rootfs, rootfs_format)
 
         if self.fstype in ('cpio.gz', 'cpio'):
             self.kernel_cmdline = 'root=/dev/ram0 rw debugshell'
@@ -835,14 +837,15 @@ class BaseConfig(object):
                     cmd2 = "grep -q 'root=/dev/hd' %s" % self.rootfs
                     if subprocess.call(cmd1, shell=True) == 0:
                         logger.info('Using scsi drive')
-                        vm_drive = '-drive if=none,id=hd,file=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' % self.rootfs
+                        vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \
+                                       % (self.rootfs, rootfs_format)
                     elif subprocess.call(cmd2, shell=True) == 0:
                         logger.info('Using scsi drive')
-                        vm_drive = self.rootfs
+                        vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format)
                     else:
                         logger.warn("Can't detect drive type %s" % self.rootfs)
                         logger.warn('Tring to use virtio block drive')
-                        vm_drive = '-drive if=virtio,file=%s' % self.rootfs
+                        vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format)
                 self.rootfs_options = '%s -no-reboot' % vm_drive
             self.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT'))
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list