From mboxrd@z Thu Jan 1 00:00:00 1970 From: jon To: development@lists.ipfire.org Subject: Re: [PATCH] extrahd: use udev rule to mount extrahd partitions Date: Wed, 27 Sep 2023 14:09:38 -0500 Message-ID: <1CC11661-95B0-4BE6-AC7C-38ED92842FC8@ipfire.org> In-Reply-To: <20230917115910.4074-1-arne_f@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4893018073737033218==" List-Id: --===============4893018073737033218== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Arne, Can you double check the `udev 61-extrahd.rules` file? > +ACTION=3D=3D"add", SUBSYSTEM=3D=3D"block", RUN+=3D"/var/ipfire/extrahd/bin= /extrahd.pl udev-event" I think it is missing the argument `mount` RUN+=3D"/var/ipfire/extrahd/bin/extrahd.pl mount udev-event" Best regards, Jon > On Sep 17, 2023, at 6:58 AM, Arne Fitzenreiter wrote: >=20 > the previous patches for > https://bugzilla.ipfire.org/show_bug.cgi?id=3D12863 > introduce a new bug that slow devices are not mounted > at boot. So now udev calls the extrahd script with > the uuid. >=20 > Signed-off-by: Arne Fitzenreiter > --- > config/extrahd/extrahd.pl | 36 ++++++++++++++++++++++++++++-------- > config/rootfiles/common/udev | 1 + > config/udev/61-extrahd.rules | 1 + > lfs/udev | 4 ++++ > 4 files changed, 34 insertions(+), 8 deletions(-) > create mode 100644 config/udev/61-extrahd.rules >=20 > diff --git a/config/extrahd/extrahd.pl b/config/extrahd/extrahd.pl > index 145a2a43a..cc85228d5 100644 > --- a/config/extrahd/extrahd.pl > +++ b/config/extrahd/extrahd.pl > @@ -35,10 +35,20 @@ extrahd_mount() { > local failed=3D0 >=20 > while IFS=3D';' read -r device filesystem mountpoint rest; do > - # Filter by mountpoint if set > - if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" ];= then > - continue > - fi > + # Filter by UUID or mountpoint > + case "${_mountpoint}" in > + UUID=3D*) > + if [ "${device}" !=3D "${_mountpoint}" ]; then > + continue > + fi > + ;; > + > + /*) > + if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" = ]; then > + continue > + fi > + ;; > + esac >=20 > # Check that the mountpoint starts with a slash > if [ "${mountpoint:0:1}" !=3D "/" ]; then > @@ -75,10 +85,20 @@ extrahd_umount() { > local failed=3D0 >=20 > while IFS=3D';' read -r device filesystem mountpoint rest; do > - # Filter by mountpoint if set > - if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" ];= then > - continue > - fi > + # Filter by UUID or mountpoint > + case "${_mountpoint}" in > + UUID=3D*) > + if [ "${device}" !=3D "${_mountpoint}" ]; then > + continue > + fi > + ;; > + > + /*) > + if [ -n "${_mountpoint}" ] && [ "${mountpoint}" !=3D "${_mountpoint}" = ]; then > + continue > + fi > + ;; > + esac >=20 > # Do not try to umount if nothing is mounted > if ! mountpoint "${mountpoint}" &>/dev/null; then > diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev > index e5c9bd01f..876ae0c5a 100644 > --- a/config/rootfiles/common/udev > +++ b/config/rootfiles/common/udev > @@ -70,6 +70,7 @@ lib/udev/rules.d/60-persistent-storage.rules > lib/udev/rules.d/60-persistent-v4l.rules > lib/udev/rules.d/60-sensor.rules > lib/udev/rules.d/60-serial.rules > +lib/udev/rules.d/61-extrahd.rules > lib/udev/rules.d/64-btrfs.rules > lib/udev/rules.d/70-camera.rules > lib/udev/rules.d/70-joystick.rules > diff --git a/config/udev/61-extrahd.rules b/config/udev/61-extrahd.rules > new file mode 100644 > index 000000000..114f2d665 > --- /dev/null > +++ b/config/udev/61-extrahd.rules > @@ -0,0 +1 @@ > +ACTION=3D=3D"add", SUBSYSTEM=3D=3D"block", RUN+=3D"/var/ipfire/extrahd/bin= /extrahd.pl udev-event" > diff --git a/lfs/udev b/lfs/udev > index eb01ae848..703d98b86 100644 > --- a/lfs/udev > +++ b/lfs/udev > @@ -122,6 +122,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) > install -v -m 644 $(DIR_SRC)/config/udev/60-net.rules \ > /lib/udev/rules.d >=20 > + # Install ExtraHD rules > + install -v -m 644 $(DIR_SRC)/config/udev/61-extrahd.rules \ > + /lib/udev/rules.d > + > # Install AQM rules > install -v -m 644 $(DIR_SRC)/config/udev/99-aqm.rules \ > /lib/udev/rules.d > --=20 > 2.42.0 >=20 --===============4893018073737033218==--