Message ID | 20220620122640.239381-1-muhammad_hamza@mentor.com |
---|---|
State | Accepted, archived |
Commit | a9a0a0967832445f1bcc65d58f95343d1b562e1b |
Headers | show |
Series | udev-extraconf/mount.sh: add LABELs to mountpoints | expand |
Hi Muhammad, On Mon, 20 Jun 2022 17:26:40 +0500 "Muhammad Hamza" <Muhammad_Hamza@mentor.com> wrote: > This alters the mountpoints such that if a device has a LABEL or > a PARTLABEL, it will be mounted at e.g.: > > /run/media/$LABEL-<device-node> > /run/media/$PARTLABEL-<device-node> > /run/media/rootfs-sda2 > > otherwise the device will be mounted at e.g.: > > /run/media/<device-node> > /run/media/sda1 > > The <device-node> appended with LABEL or PARTLABEL makes sure that > the mountpoint is unique, therefore, avoids overlapping mounts. > > Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com> > Signed-off-by: Muhammad Hamza <muhammad_hamza@mentor.com> > --- > .../recipes-core/udev/udev-extraconf/mount.sh | 20 +++++++++++++++++++ > meta/recipes-core/udev/udev-extraconf_1.1.bb | 2 +- > 2 files changed, 21 insertions(+), 1 deletion(-) > > diff --git a/meta/recipes-core/udev/udev-extraconf/mount.sh b/meta/recipes-core/udev/udev-extraconf/mount.sh > index c8b773bc07..12c6a5af22 100644 > --- a/meta/recipes-core/udev/udev-extraconf/mount.sh > +++ b/meta/recipes-core/udev/udev-extraconf/mount.sh > @@ -54,6 +54,16 @@ automount_systemd() { > grep "^[[:space:]]*$tmp" /etc/fstab && return > done > > + # Get the LABEL or PARTLABEL > + LABEL=`/sbin/blkid | grep "${DEVNAME}:" | grep -o 'LABEL=".*"' | cut -d '"' -f2` > + # If the $DEVNAME has a LABEL or a PARTLABEL > + if [ -n "$LABEL" ]; then > + # Set the mount location dir name to LABEL appended > + # with $name e.g. label-sda. That would avoid overlapping > + # mounts in case two devices have same LABEL > + name="${LABEL}-${name}" > + fi > + > [ -d "$MOUNT_BASE/$name" ] || mkdir -p "$MOUNT_BASE/$name" > > MOUNT="$MOUNT -o silent" > @@ -94,6 +104,16 @@ automount() { > # configured in fstab > grep -q "^$DEVNAME " /proc/mounts && return > > + # Get the LABEL or PARTLABEL > + LABEL=`/sbin/blkid | grep "${DEVNAME}:" | grep -o 'LABEL=".*"' | cut -d '"' -f2` > + # If the $DEVNAME has a LABEL or a PARTLABEL > + if [ -n "$LABEL" ]; then > + # Set the mount location dir name to LABEL appended > + # with $name e.g. label-sda. That would avoid overlapping > + # mounts in case two devices have same LABEL > + name="${LABEL}-${name}" > + fi This is exactly as above. Can you move the common code to a function?
Hi Luca, I have sent updated patch v2 at mailing list. Regards, Hamza -----Original Message----- From: Luca Ceresoli <luca.ceresoli@bootlin.com> Sent: Tuesday, June 21, 2022 1:21 PM To: Hamza, Muhammad <Muhammad_Hamza@mentor.com> Cc: openembedded-core@lists.openembedded.org; Awan, Arsalan <Arsalan_Awan@mentor.com> Subject: Re: [OE-core] [PATCH] udev-extraconf/mount.sh: add LABELs to mountpoints Hi Muhammad, On Mon, 20 Jun 2022 17:26:40 +0500 "Muhammad Hamza" <Muhammad_Hamza@mentor.com> wrote: > This alters the mountpoints such that if a device has a LABEL or a > PARTLABEL, it will be mounted at e.g.: > > /run/media/$LABEL-<device-node> > /run/media/$PARTLABEL-<device-node> > /run/media/rootfs-sda2 > > otherwise the device will be mounted at e.g.: > > /run/media/<device-node> > /run/media/sda1 > > The <device-node> appended with LABEL or PARTLABEL makes sure that the > mountpoint is unique, therefore, avoids overlapping mounts. > > Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com> > Signed-off-by: Muhammad Hamza <muhammad_hamza@mentor.com> > --- > .../recipes-core/udev/udev-extraconf/mount.sh | 20 > +++++++++++++++++++ meta/recipes-core/udev/udev-extraconf_1.1.bb | > 2 +- > 2 files changed, 21 insertions(+), 1 deletion(-) > > diff --git a/meta/recipes-core/udev/udev-extraconf/mount.sh > b/meta/recipes-core/udev/udev-extraconf/mount.sh > index c8b773bc07..12c6a5af22 100644 > --- a/meta/recipes-core/udev/udev-extraconf/mount.sh > +++ b/meta/recipes-core/udev/udev-extraconf/mount.sh > @@ -54,6 +54,16 @@ automount_systemd() { > grep "^[[:space:]]*$tmp" /etc/fstab && return > done > > + # Get the LABEL or PARTLABEL > + LABEL=`/sbin/blkid | grep "${DEVNAME}:" | grep -o 'LABEL=".*"' | cut -d '"' -f2` > + # If the $DEVNAME has a LABEL or a PARTLABEL > + if [ -n "$LABEL" ]; then > + # Set the mount location dir name to LABEL appended > + # with $name e.g. label-sda. That would avoid overlapping > + # mounts in case two devices have same LABEL > + name="${LABEL}-${name}" > + fi > + > [ -d "$MOUNT_BASE/$name" ] || mkdir -p "$MOUNT_BASE/$name" > > MOUNT="$MOUNT -o silent" > @@ -94,6 +104,16 @@ automount() { > # configured in fstab > grep -q "^$DEVNAME " /proc/mounts && return > > + # Get the LABEL or PARTLABEL > + LABEL=`/sbin/blkid | grep "${DEVNAME}:" | grep -o 'LABEL=".*"' | cut -d '"' -f2` > + # If the $DEVNAME has a LABEL or a PARTLABEL > + if [ -n "$LABEL" ]; then > + # Set the mount location dir name to LABEL appended > + # with $name e.g. label-sda. That would avoid overlapping > + # mounts in case two devices have same LABEL > + name="${LABEL}-${name}" > + fi This is exactly as above. Can you move the common code to a function? -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
diff --git a/meta/recipes-core/udev/udev-extraconf/mount.sh b/meta/recipes-core/udev/udev-extraconf/mount.sh index c8b773bc07..12c6a5af22 100644 --- a/meta/recipes-core/udev/udev-extraconf/mount.sh +++ b/meta/recipes-core/udev/udev-extraconf/mount.sh @@ -54,6 +54,16 @@ automount_systemd() { grep "^[[:space:]]*$tmp" /etc/fstab && return done + # Get the LABEL or PARTLABEL + LABEL=`/sbin/blkid | grep "${DEVNAME}:" | grep -o 'LABEL=".*"' | cut -d '"' -f2` + # If the $DEVNAME has a LABEL or a PARTLABEL + if [ -n "$LABEL" ]; then + # Set the mount location dir name to LABEL appended + # with $name e.g. label-sda. That would avoid overlapping + # mounts in case two devices have same LABEL + name="${LABEL}-${name}" + fi + [ -d "$MOUNT_BASE/$name" ] || mkdir -p "$MOUNT_BASE/$name" MOUNT="$MOUNT -o silent" @@ -94,6 +104,16 @@ automount() { # configured in fstab grep -q "^$DEVNAME " /proc/mounts && return + # Get the LABEL or PARTLABEL + LABEL=`/sbin/blkid | grep "${DEVNAME}:" | grep -o 'LABEL=".*"' | cut -d '"' -f2` + # If the $DEVNAME has a LABEL or a PARTLABEL + if [ -n "$LABEL" ]; then + # Set the mount location dir name to LABEL appended + # with $name e.g. label-sda. That would avoid overlapping + # mounts in case two devices have same LABEL + name="${LABEL}-${name}" + fi + ! test -d "$MOUNT_BASE/$name" && mkdir -p "$MOUNT_BASE/$name" # Silent util-linux's version of mounting auto if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ; diff --git a/meta/recipes-core/udev/udev-extraconf_1.1.bb b/meta/recipes-core/udev/udev-extraconf_1.1.bb index 2b908ac05b..8213c1a930 100644 --- a/meta/recipes-core/udev/udev-extraconf_1.1.bb +++ b/meta/recipes-core/udev/udev-extraconf_1.1.bb @@ -38,7 +38,7 @@ do_install() { } FILES:${PN} = "${sysconfdir}/udev" -RDEPENDS:${PN} = "udev" +RDEPENDS:${PN} = "udev util-linux-blkid" CONFFILES:${PN} = "${sysconfdir}/udev/mount.ignorelist" # to replace udev-extra-rules from meta-oe