[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    AW: Persistent mountpoint for USB storage
From:       "Franz Leu" <franz.leu () norfolk ! ch>
Date:       2015-11-05 9:03:37
Message-ID: 55C041676CB1C148974AA0360863C893204D7D () server1 ! norfolk ! local
[Download RAW message or body]

> -----Ursprüngliche Nachricht-----
> Von: Isaac Dunham [mailto:ibid.ag@gmail.com]
> Gesendet: Samstag, 31. Oktober 2015 04:50
> An: Franz Leu
> Cc: busybox@busybox.net
> Betreff: Re: Persistent mountpoint for USB storage
> 
> On Fri, Oct 30, 2015 at 02:28:11PM +0100, Franz Leu wrote:
> > Hi
> >
> >
> >
> > I'd like to mount USB storage on persistent mount point depending in
> > the USB port it's plugged in.
> >
> > Plugged in port 0 always mounts to /mnt/usb0
> >
> > Plugged in port 1 always mounts to /mnt/usb1
> >
> > ...
> >
> >
> >
> > How can I achieve this automatically, manually or by a script.
> 
> If you can figure out from sysfs whether a given disk is attached to
> port 0/1/2/..., you can do the following:
> 
> - have /dev/usbdisk<port> in your fstab
> - have a script that looks in the proper sysfs dir
> (/sys/class/block/<disk>)  and follows a bunch of symlinks to figure
> out if it's usb and which port,  then use a symlink.
> 
> 
> However, I'm not sure how you'd do the script.
> Right here, it *seems* that I have three ports (1-1, 1-2, and 1-3), and
> I can tell the difference by this:
> DISKPATH=$(readlink -f /sys/class/block/<disk>)
> USBPATH=${DISKSPOT#*/usb} USBPORT=$(echo $USBPATH | cut -d/ -f2)
> 
> But I'm not sure about all that; it's my best guess of what's going on.
> 
> HTH,
> Isaac Dunham


Thanks for the input.
I found a solution with find and grep. 
If I know I have to find where, for instance, sda is connected on my 4 ports:

find /sys/bus/usb/devices/usb*/ -name dev -path "*usb1*sd*" | grep -E sda
find /sys/bus/usb/devices/usb*/ -name dev -path "*usb2-1.1*sd*" | grep -E sda
find /sys/bus/usb/devices/usb*/ -name dev -path "*usb2-1.2*sd*" | grep -E sda
find /sys/bus/usb/devices/usb*/ -name dev -path "*usb2-1.4*sd*" | grep -E sda

The return value is 1 if there is no entry matching and 0 if there is.
I wrapped this in a function with sd_ as variable and it works as supposed.

Cheers,
Franz
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic