[oe-commits] Jason Wessel : mkefidisk.sh: Allow using a loopback mounted file
git at git.openembedded.org
git at git.openembedded.org
Wed Oct 2 21:40:55 UTC 2013
Module: openembedded-core.git
Branch: dora
Commit: 254899824900f2e8c6a34d2ad1b8cbea91acb4ae
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=254899824900f2e8c6a34d2ad1b8cbea91acb4ae
Author: Jason Wessel <jason.wessel at windriver.com>
Date: Fri Sep 27 01:01:20 2013 +0000
mkefidisk.sh: Allow using a loopback mounted file
It should be possible to generate a disk to a file using a loopback
device with mkefidisk.sh, which is useful for booting simulators. To
make this possible the partitions for the loop back need to work
similarly to the mmc devices. The mkfs.vfat also requires and
additional argument to force it to write to something other then a
real disk.
Example:
qemu-img create -f raw bigdisk 4G
dev=`sudo losetup -f`
sudo losetup $dev bigdisk
mkefidisk.sh $dev tmp-eglibc/deploy/images/qemux86/core-image-minimal-qemux86.hddimg /dev/sda
sudo losetup -d $dev
Note:
Also a bug was fixed in the mkefidisk.sh where if the disk you are
writing to initially has an invalid label the size of the first
partition will be computed incorrectly. For the simulator disk
creation this is generally always the case, but this can happen with
real hardware as well.
Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
scripts/contrib/mkefidisk.sh | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
index af06b4b..c86849d 100755
--- a/scripts/contrib/mkefidisk.sh
+++ b/scripts/contrib/mkefidisk.sh
@@ -134,6 +134,11 @@ fi
# Partition $DEVICE
#
DEVICE_SIZE=$(parted $DEVICE unit mb print | grep ^Disk | cut -d" " -f 3 | sed -e "s/MB//")
+# If the device size is not reported there may not be a valid label
+if [ "$DEVICE_SIZE" = "" ] ; then
+ parted $DEVICE mklabel msdos
+ DEVICE_SIZE=$(parted $DEVICE unit mb print | grep ^Disk | cut -d" " -f 3 | sed -e "s/MB//")
+fi
SWAP_SIZE=$((DEVICE_SIZE*SWAP_RATIO/100))
ROOTFS_SIZE=$((DEVICE_SIZE-BOOT_SIZE-SWAP_SIZE))
ROOTFS_START=$((BOOT_SIZE))
@@ -142,7 +147,7 @@ SWAP_START=$((ROOTFS_END))
# MMC devices use a partition prefix character 'p'
PART_PREFIX=""
-if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ]; then
+if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ] || [ ! "${DEVICE#/dev/loop}" = "${DEVICE}" ]; then
PART_PREFIX="p"
fi
BOOTFS=$DEVICE${PART_PREFIX}1
@@ -197,7 +202,12 @@ unmount_device
#
echo ""
echo "Formatting $BOOTFS as vfat..."
-mkfs.vfat $BOOTFS -n "efi"
+if [ ! "${DEVICE#/dev/loop}" = "${DEVICE}" ]; then
+ mkfs.vfat -I $BOOTFS -n "efi"
+else
+ mkfs.vfat $BOOTFS -n "efi"
+
+fi
echo "Formatting $ROOTFS as ext3..."
mkfs.ext3 $ROOTFS -L "root"
More information about the Openembedded-commits
mailing list