[poky] [PATCH 1/1] initrdscripts/init-live.sh: fix mounts w/ spaces fail to move to real rootfs

Awan, Arsalan Arsalan_Awan at mentor.com
Thu Jun 28 07:18:21 PDT 2018


My appologies...
I've sent it there now.

Thanks

-
Arsalan
________________________________________
From: Alexander Kanavin <alex.kanavin at gmail.com>
Sent: Thursday, June 28, 2018 4:23 PM
To: Awan, Arsalan
Cc: poky at yoctoproject.org
Subject: Re: [poky] [PATCH 1/1] initrdscripts/init-live.sh: fix mounts w/ spaces fail to move to real rootfs

This should go to oe-core mailing list.

Alex

2018-06-28 11:26 GMT+02:00 Arsalan Awan <Arsalan_Awan at mentor.com>:
> From: "Arsalan H. Awan" <Arsalan_Awan at mentor.com>
>
> When there are spaces in the mount points of devices e.g.:
>
>  a partition mounted at "/run/media/My Root Partition-sda1",
>
> the initrd fails to move such mount points over to the
> corresponding directories at /media under the real root filesystem,
> and the mount points would appear at the same location as they were
> mounted on when detected by initrd, for example:
>  here: "/run/media/My Root Partition-sda1"
>  instead of here: "/media/My Root Partition-sda1"
>
> This causes issues such as:
>
>   * The disks/partitions cannot be formated with any filesystem
>     using e.g. mkfs.ext4 or mke2fs in general. When tried to do so
>     by making sure the device is not mounted, it failed with
>     errors such as:
>
>     > /dev/sda1 is apparently in use by the system; will not make a
>       filesystem here!
>     > /dev/sda1: Device or resource busy while setting up superblock
>
>   * The read/write operations become extremely slow. e.g. Under testing,
>     it took approx. 2 hours just to copy 700 MB of data to the partition,
>     and it took more than 40 minutes to delete that data from it.
>     Same operations took under 5 minutes on a partition that had no
>     spaces in its mount point (or that was successfully moved to real
>     root by initrd and appeared under /media instead of /run/media).
>
> This commit fixes such issues by quoting the arguments of failing mount
> move commands and by parsing OCT or HEX encoded special characters
> such as spaces to ASCII charecters in the mount points as kernel
> populates the procfs like so.
>
> Signed-off-by: Arsalan H. Awan <Arsalan_Awan at mentor.com>
> ---
>  meta/recipes-core/initrdscripts/files/init-live.sh | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh
> index 441b41c..e58df12 100644
> --- a/meta/recipes-core/initrdscripts/files/init-live.sh
> +++ b/meta/recipes-core/initrdscripts/files/init-live.sh
> @@ -91,8 +91,11 @@ 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.* \/run\/media/{print $2}' /proc/mounts`; do
> -        mkdir -p  ${ROOT_MOUNT}/media/${dir##*/}
> -        mount -n --move $dir ${ROOT_MOUNT}/media/${dir##*/}
> +        # Parse any OCT or HEX encoded chars such as spaces
> +        # in the mount points to actual ASCII chars
> +        dir=`printf $dir`
> +        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
> --
> 2.7.4
>
> --
> _______________________________________________
> poky mailing list
> poky at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/poky


More information about the poky mailing list