Public bug reported:
In the latest janunty, /etc/rcS.d/S11mountdevsubfs.sh tries to mount
usbfs with:
domount usbfs "" /dev/bus/usb/.usbfs
-obusmode=0700,devmode=0600,listmode=0644
which is clearly incorrect according to domounts() API:
# $1: file system type
# $2: alternative file system type (or empty string if none)
# $3: mount point
# $4: mount device name
# $5... : extra mount program options
and we can see this if we enable xtrace:
+ domount usbfs '' /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
+ MTPT=/dev/bus/usb/.usbfs
++ uname -s
+ KERNEL=Linux
+ FSTYPE=
+ '[' usbfs = proc ']'
+ '[' usbfs = tmpfs ']'
+ '[' usbfs = spufs ']'
+ grep -E -qs 'usbfs$' /proc/filesystems
+ FSTYPE=usbfs
+ '[' '!' usbfs ']'
+ '[' -obusmode=0700,devmode=0600,listmode=0644 ']'
+ DEVNAME=-obusmode=0700,devmode=0600,listmode=0644
+ OPTS=
+ '[' -f /etc/fstab ']'
+ exec
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /proc ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /proc/bus/usb ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = / ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /boot ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /usr ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /var ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /var/cache/apt/archives ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /media/cdrom0 ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /media/floppy0 ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /home ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /vms ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = swap ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /home/brian/wuala/direct ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ case "$TAB_DEV" in
+ '[' /dev/bus/usb/.usbfs = /.snapshots ']'
+ continue
+ read TAB_DEV TAB_MTPT TAB_FSTYPE TAB_OPTS TAB_REST
+ exec
+ '[' '!' -d /dev/bus/usb/.usbfs ']'
+ mountpoint -q /dev/bus/usb/.usbfs
+ '[' '' '!=' no ']'
+ is_empty_dir /dev/bus/usb/.usbfs
+ mount -n -t usbfs -obusmode=0700,devmode=0600,listmode=0644
/dev/bus/usb/.usbfs
Obviously one cannot mount the *device*
"-obusmode=0700,devmode=0600,listmode=0644" on "/dev/bus/usb/.usbfs"
Yes. the "-obusmode ..." is being interpreted as the device which
becomes obvious if one quotes the arguments to mount such as:
mount -n -t "$FSTYPE" "$5" "$OPTS" "$DEVNAME" "$MTPT"
and the resulting xtrace:
+ mount -n -t usbfs '' '' -obusmode=0700,devmode=0600,listmode=0644
/dev/bus/usb/.usbfs
Depending on your font it might not be clear that that's two pairs of empty
single quotes up there, not a single pair of double quotes.
Is it actually argument $4 that is missing from the domount() call?
It's not clear to me.
** Affects: ubuntu
Importance: Undecided
Status: New
--
/etc/rcS.d/S11mountdevsubfs.sh calls domount incorrectly
https://bugs.launchpad.net/bugs/339244
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs