Skip to contentSkip to conversation

live image misc fixes

PATCH In review Chen Qi 2 participants 5 messages May 15, 2014

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

cover live image misc fixes

The purpose of this patchset is to make our live image work correctly after the following commit.

commit acfe3014d41de5e87cdbc58d0396349c6b9c3ffd
udev-extraconf: update mount.sh to use /run/media instead of /media

These patches are tested against the core-image-minimal iso image for both booting and installing.

//Chen Qi

The following changes since commit 58417093d7ce83c8a2f683a356fddc23aaee5e8e:

wic: Extend indirect string connection to support image names and rootfs (2014-05-13 19:35:06 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib ChenQi/live-image-misc-fixes
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=ChenQi/live-image-misc-fixes

Chen Qi (3):
udev-extraconf: fix the misuse of /run/media
init-live.sh: list block devices correctly
initrdscripts: fix for /run/media

 .../initrdscripts/files/init-install-efi-testfs.sh |   14 +++++++-------
 .../initrdscripts/files/init-install-efi.sh        |   14 +++++++-------
 .../initrdscripts/files/init-install-testfs.sh     |    4 ++--
 .../initrdscripts/files/init-install.sh            |    4 ++--
 meta/recipes-core/initrdscripts/files/init-live.sh |   20 ++++++++++----------
 meta/recipes-core/udev/udev-extraconf/mount.sh     |    2 +-
 6 files changed, 29 insertions(+), 29 deletions(-)
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 1/3 udev-extraconf: fix the misuse of /run/media

The error was introduced by the following commit.

acfe3014d41de5e87cdbc58d0396349c6b9c3ffd
udev-extraconf: update mount.sh to use /run/media instead of /media

It accidently replaced 'device/media' by 'device/run/media' which causes error for live images to be unable to boot up correctly, complaining "Cannot find rootfs.img in /media/*".

This patch fixes the above problem.

---
 meta/recipes-core/udev/udev-extraconf/mount.sh |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/udev/udev-extraconf/mount.sh +1 -1
index 3e4f21f..7df1b6e 100644
@@ -60,7 +60,7 @@ rm_dir() {
 
 # No ID_FS_TYPE for cdrom device, yet it should be mounted
 name="`basename "$DEVNAME"`"
-[ -e /sys/block/$name/device/run/media ] && media_type=`cat /sys/block/$name/device/run/media`
+[ -e /sys/block/$name/device/media ] && media_type=`cat /sys/block/$name/device/media`
 
 if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ -n "$ID_FS_TYPE" -o "$media_type" = "cdrom" ]; then
 	if [ -x "$PMOUNT" ]; then
Signature · 1 line
1.7.9.5
author
#2 lore raw

PATCH 2/3 init-live.sh: list block devices correctly

In reply to Chen Qi

Instead of using 'ls /dev/sd*' command to list block devices, we should rather use 'cat /proc/partitions'.

---
 meta/recipes-core/initrdscripts/files/init-live.sh |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/initrdscripts/files/init-live.sh +1 -1
index 9e53a25..0bc38b7 100644
@@ -134,7 +134,7 @@ do
 	   echo "Mounted filesystems"
            mount | grep media
            echo "Available block devices"
-           ls /dev/sd*
+           cat /proc/partitions
            fatal "Cannot find $ROOT_IMAGE file in /media/* , dropping to a shell "
       fi
       C=$(( C + 1 ))
Signature · 1 line
1.7.9.5
author
#3 lore raw

PATCH 3/3 initrdscripts: fix for /run/media

In reply to Chen Qi

mount.sh in udev-extraconf was modified to use /run/media instead of /media. Unfortunately, our scripts in initrdscripts have some dependency on the auto-mounting mechanism proviced by udev-extraconf. So these scripts should also be fixed to use /run/media instead /media, otherwise, our live image cannot work correctly.

---
 .../initrdscripts/files/init-install-efi-testfs.sh |   14 +++++++-------
 .../initrdscripts/files/init-install-efi.sh        |   14 +++++++-------
 .../initrdscripts/files/init-install-testfs.sh     |    4 ++--
 .../initrdscripts/files/init-install.sh            |    4 ++--
 meta/recipes-core/initrdscripts/files/init-live.sh |   18 +++++++++---------
 5 files changed, 27 insertions(+), 27 deletions(-)
meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh +7 -7
index 2fea761..7a0b4d4 100644
@@ -128,7 +128,7 @@ mkdir /rootmnt
 mkdir /bootmnt
 
 mount $rootfs /ssd
-mount -o rw,loop,noatime,nodiratime /media/$1/$2 /rootmnt
+mount -o rw,loop,noatime,nodiratime /run/media/$1/$2 /rootmnt
 
 echo "Copying rootfs files..."
 cp -a /rootmnt/* /ssd
@@ -150,13 +150,13 @@ mount $bootfs /ssd
 
 EFIDIR="/ssd/EFI/BOOT"
 mkdir -p $EFIDIR
-cp /media/$1/vmlinuz /ssd
+cp /run/media/$1/vmlinuz /ssd
 # Copy the efi loader
-cp /media/$1/EFI/BOOT/*.efi $EFIDIR
+cp /run/media/$1/EFI/BOOT/*.efi $EFIDIR
 
-if [ -f /media/$1/EFI/BOOT/grub.cfg ]; then
+if [ -f /run/media/$1/EFI/BOOT/grub.cfg ]; then
     GRUBCFG="$EFIDIR/grub.cfg"
-    cp /media/$1/EFI/BOOT/grub.cfg $GRUBCFG
+    cp /run/media/$1/EFI/BOOT/grub.cfg $GRUBCFG
     # Update grub config for the installed image
     # Delete the install entry
     sed -i "/menuentry 'install'/,/^}/d" $GRUBCFG
@@ -170,10 +170,10 @@ if [ -f /media/$1/EFI/BOOT/grub.cfg ]; then
     sed -i "s@linux /vmlinuz *@linux /vmlinuz root=$rootfs rw $rootwait quiet @" $GRUBCFG
 fi
 
-if [ -d /media/$1/loader ]; then
+if [ -d /run/media/$1/loader ]; then
     GUMMIBOOT_CFGS="/ssd/loader/entries/*.conf"
     # copy config files for gummiboot
-    cp -dr /media/$1/loader /ssd
+    cp -dr /run/media/$1/loader /ssd
     # delete the install entry
     rm -f /ssd/loader/entries/install.conf
     # delete the initrd lines
meta/recipes-core/initrdscripts/files/init-install-efi.sh +7 -7
index ed3221b..8bd7025 100644
@@ -128,7 +128,7 @@ mkdir /rootmnt
 mkdir /bootmnt
 
 mount $rootfs /ssd
-mount -o rw,loop,noatime,nodiratime /media/$1/$2 /rootmnt
+mount -o rw,loop,noatime,nodiratime /run/media/$1/$2 /rootmnt
 
 echo "Copying rootfs files..."
 cp -a /rootmnt/* /ssd
@@ -150,13 +150,13 @@ mount $bootfs /ssd
 
 EFIDIR="/ssd/EFI/BOOT"
 mkdir -p $EFIDIR
-cp /media/$1/vmlinuz /ssd
+cp /run/media/$1/vmlinuz /ssd
 # Copy the efi loader
-cp /media/$1/EFI/BOOT/*.efi $EFIDIR
+cp /run/media/$1/EFI/BOOT/*.efi $EFIDIR
 
-if [ -f /media/$1/EFI/BOOT/grub.cfg ]; then
+if [ -f /run/media/$1/EFI/BOOT/grub.cfg ]; then
     GRUBCFG="$EFIDIR/grub.cfg"
-    cp /media/$1/EFI/BOOT/grub.cfg $GRUBCFG
+    cp /run/media/$1/EFI/BOOT/grub.cfg $GRUBCFG
     # Update grub config for the installed image
     # Delete the install entry
     sed -i "/menuentry 'install'/,/^}/d" $GRUBCFG
@@ -170,10 +170,10 @@ if [ -f /media/$1/EFI/BOOT/grub.cfg ]; then
     sed -i "s@linux /vmlinuz *@linux /vmlinuz root=$rootfs rw $rootwait quiet @" $GRUBCFG
 fi
 
-if [ -d /media/$1/loader ]; then
+if [ -d /run/media/$1/loader ]; then
     GUMMIBOOT_CFGS="/ssd/loader/entries/*.conf"
     # copy config files for gummiboot
-    cp -dr /media/$1/loader /ssd
+    cp -dr /run/media/$1/loader /ssd
     # delete the install entry
     rm -f /ssd/loader/entries/install.conf
     # delete the initrd lines
meta/recipes-core/initrdscripts/files/init-install-testfs.sh +2 -2
index d2f2420..26e1fb3 100644
@@ -151,7 +151,7 @@ mkdir -p /boot
 
 # Handling of the target root partition
 mount $rootfs /tgt_root
-mount -o rw,loop,noatime,nodiratime /media/$1/$2 /src_root
+mount -o rw,loop,noatime,nodiratime /run/media/$1/$2 /src_root
 echo "Copying rootfs files..."
 cp -a /src_root/* /tgt_root
 if [ -d /tgt_root/etc/ ] ; then
@@ -197,7 +197,7 @@ if [ ! -f /boot/grub/grub.cfg ] ; then
     echo "kernel /vmlinuz root=$rootfs rw $3 $4 quiet" >> /boot/grub/menu.lst
 fi
 
-cp /media/$1/vmlinuz /boot/
+cp /run/media/$1/vmlinuz /boot/
 
 umount /boot
 
meta/recipes-core/initrdscripts/files/init-install.sh +2 -2
index 8e433d5..b160003 100644
@@ -151,7 +151,7 @@ mkdir -p /boot
 
 # Handling of the target root partition
 mount $rootfs /tgt_root
-mount -o rw,loop,noatime,nodiratime /media/$1/$2 /src_root
+mount -o rw,loop,noatime,nodiratime /run/media/$1/$2 /src_root
 echo "Copying rootfs files..."
 cp -a /src_root/* /tgt_root
 if [ -d /tgt_root/etc/ ] ; then
@@ -194,7 +194,7 @@ if [ ! -f /boot/grub/grub.cfg ] ; then
     echo "kernel /vmlinuz root=$rootfs rw $3 $4 quiet" >> /boot/grub/menu.lst
 fi
 
-cp /media/$1/vmlinuz /boot/
+cp /run/media/$1/vmlinuz /boot/
 
 umount /boot
 
meta/recipes-core/initrdscripts/files/init-live.sh +9 -9
index 0bc38b7..0be9b6f 100644
@@ -82,9 +82,9 @@ boot_live_root() {
 
     # Move the mount points of some filesystems over to
     # the corresponding directories under the real root filesystem.
-    for dir in `awk '/\/dev.* \/media/{print $2}' /proc/mounts`; do
-        mkdir -p  ${ROOT_MOUNT}/$dir
-        mount -n --move $dir ${ROOT_MOUNT}/$dir
+    for dir in `awk '/\/dev.* \/run\/media/{print $2}' /proc/mounts`; do
+        mkdir -p  ${ROOT_MOUNT}/media/${dir##*/}
+        mount -n --move $dir ${ROOT_MOUNT}/media/${dir##*/}
     done
     mount -n --move /proc ${ROOT_MOUNT}/proc
     mount -n --move /sys ${ROOT_MOUNT}/sys
@@ -113,11 +113,11 @@ echo "Waiting for removable media..."
 C=0
 while true
 do
-  for i in `ls /media 2>/dev/null`; do
-      if [ -f /media/$i/$ROOT_IMAGE ] ; then
+  for i in `ls /run/media 2>/dev/null`; do
+      if [ -f /run/media/$i/$ROOT_IMAGE ] ; then
 		found="yes"
 		break
-	  elif [ -f /media/$i/isolinux/$ROOT_IMAGE ]; then
+	  elif [ -f /run/media/$i/isolinux/$ROOT_IMAGE ]; then
 		found="yes"
 		ISOLINUX="isolinux"
 		break	
@@ -135,7 +135,7 @@ do
            mount | grep media
            echo "Available block devices"
            cat /proc/partitions
-           fatal "Cannot find $ROOT_IMAGE file in /media/* , dropping to a shell "
+           fatal "Cannot find $ROOT_IMAGE file in /run/media/* , dropping to a shell "
       fi
       C=$(( C + 1 ))
   fi
@@ -150,7 +150,7 @@ mount_and_boot() {
     mkdir $ROOT_MOUNT
     mknod /dev/loop0 b 7 0 2>/dev/null
 
-    if ! mount -o rw,loop,noatime,nodiratime /media/$i/$ISOLINUX/$ROOT_IMAGE $ROOT_MOUNT ; then
+    if ! mount -o rw,loop,noatime,nodiratime /run/media/$i/$ISOLINUX/$ROOT_IMAGE $ROOT_MOUNT ; then
 	fatal "Could not mount rootfs image"
     fi
 
@@ -211,7 +211,7 @@ case $label in
 	mount_and_boot
 	;;
     install|install-efi)
-	if [ -f /media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then
+	if [ -f /run/media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then
 	    ./$label.sh $i/$ISOLINUX $ROOT_IMAGE $video_mode $vga_mode $console_params
 	else
 	    fatal "Could not find $label script"
Signature · 1 line
1.7.9.5
Acked-by on the v1 series
#4 lore raw
In reply to Chen Qi
Quoted 9 lines · Chen Qi

The purpose of this patchset is to make our live image work correctly after the following commit.

commit acfe3014d41de5e87cdbc58d0396349c6b9c3ffd
udev-extraconf: update mount.sh to use /run/media instead of /media

These patches are tested against the core-image-minimal iso image for both booting and installing.

//Chen Qi

Quoted 23 lines

The following changes since commit 58417093d7ce83c8a2f683a356fddc23aaee5e8e:

wic: Extend indirect string connection to support image names and rootfs (2014-05-13 19:35:06 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib ChenQi/live-image-misc-fixes
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=ChenQi/live-image-misc-fixes

Chen Qi (3):
udev-extraconf: fix the misuse of /run/media
init-live.sh: list block devices correctly
initrdscripts: fix for /run/media

  .../initrdscripts/files/init-install-efi-testfs.sh |   14 +++++++-------
  .../initrdscripts/files/init-install-efi.sh        |   14 +++++++-------
  .../initrdscripts/files/init-install-testfs.sh     |    4 ++--
  .../initrdscripts/files/init-install.sh            |    4 ++--
  meta/recipes-core/initrdscripts/files/init-live.sh |   20 ++++++++++----------
  meta/recipes-core/udev/udev-extraconf/mount.sh     |    2 +-
  6 files changed, 29 insertions(+), 29 deletions(-)