只有root才能在/ media / sdb1上挂载/ dev / sdb1-贡献给外部USB驱动器


14

我不明白为什么,当我在Ubuntu 12.04中尝试插入外部USB驱动程序时,看到下一条消息:

Error mounting: mount exited with exit code 1: helper failed with:
mount: only root can mount /dev/sdb1 on /media/sdb1

这是内容/etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc                                       /proc           proc  nodev,noexec,nosuid       0  0  
# / was on /dev/sda1 during installation
UUID=5f5d330f-d5f2-4157-9496-94f1dce2f181  /               ext4  errors=remount-ro         0  1  
# swap was on /dev/sda5 during installation
UUID=84747ef4-6f50-49bc-9df1-fcba364ba299  none            swap  sw                        0  0  

/dev/fd0                                   /media/floppy0  auto  rw,user,noauto,exec,utf8  0  0  
/dev/sdc1                                  /media/sdc1     vfat  uid=1000,noauto           0  0  
/dev/sdd1                                  /media/sdd1     vfat  uid=1000,noauto           0  0  
/dev/sdb1                                  /media/sdb1     vfat  uid=1000,noauto           0  0

这是我目前的情况sudo fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e28b8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   310484991   155241472   83  Linux
/dev/sda2       310487038   312580095     1046529    5  Extended
/dev/sda5       310487040   312580095     1046528   82  Linux swap / Solaris

Disk /dev/sdb: 993 MB, 993001472 bytes
2 heads, 1 sectors/track, 969728 cylinders, total 1939456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1             133     1939455      969661+   6  FAT16

Disk /dev/sdc: 4009 MB, 4009754624 bytes
16 heads, 32 sectors/track, 15296 cylinders, total 7831552 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd8e1f237

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *          32     7831551     3915760    b  W95 FAT32

sdcsdb-有外部USB驱动器。

我可以解决此问题并自动安装所有外部USB驱动器吗?


检查您的权限。发表结果:ls -l / | grep medials -l /media | grep sd
2013年

@ dan08全部,因为drwxr-xr-x 2 root root 4096 Jun 14 11:04 bin; drwxr-xr-x 3 root root 4096 Aug 21 18:47 boot; drwxr-xr-x 2 root root 4096 Jun 9 14:17 cdrom;我不知道如何将这一行分成几部分
nazar_art 2013年

@ dan08当然都存在drwxr-xr-x 2 root root 4096 Aug 20 22:00 sdc1/
nazar_art 2013年

Answers:


22

您需要将该user选项添加到您的fstab

/dev/sdc1    /media/sdc1     vfat  uid=1000,noauto,user           0  0  
/dev/sdd1    /media/sdd1     vfat  uid=1000,noauto,user           0  0  
/dev/sdb1    /media/sdb1     vfat  uid=1000,noauto,user           0  0

user选项允许任何用户安装设备,如man中所述:

通常,只有超级用户才能挂载文件系统。但是,当fstab user在一行中包含该选项时,任何人都可以挂载相应的系统。

或者,如果您希望任何用户安装/卸载驱动器,请users改用:

/dev/sdc1    /media/sdc1     vfat  uid=1000,noauto,users           0  0  
/dev/sdd1    /media/sdd1     vfat  uid=1000,noauto,users           0  0  
/dev/sdb1    /media/sdb1     vfat  uid=1000,noauto,users           0  0

手册页:

只有安装了文件系统的用户才能再次卸载它。如果应该卸载任何用户,请使用用户而不是fstab行中的user。

注意:user选项还暗含noexecnosuidnodev,因此,如果需要这些选项,则需要添加它们的对应项。例如,如果您需要从驱动器执行二进制文件,则应添加option exec,因此您的选项将为uid=1000,noauto,user,exec,其他两个选项也是如此。

进一步阅读:Fstab-Ubuntu文档


根据您的回答,“用户”和“用户”之间的区别是否也可以通过“用户”来卸载,而“用户”则不能?
JoseGómez'16

1
否,用户允许任何用户卸下驱动器
Braiam

2

如果在/ etc / fstab中有一个设备条目,它将阻止Ubuntu自动挂载程序在插入时挂载该设备。

我刚刚在系统上对其进行了测试,该系统在插入时会自动安装拇指驱动器:

// insert thumb-drive
$ grep gvfsd /proc/mount
gvfsd-fuse on /run/user/msw/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=msw)

当我添加线

/dev/sdb1   /mnt    vfat    noexec 0 0

到/ etc / fstab并插入拇指驱动器,该过程gvfsd-udisks2-volume-monitor引起了一连串的活动,包括打开和读取/ etc / fstab(如所示strace)。拇指驱动器未安装。

当我通过添加一个字符以注释掉条目来更改/ etc / fstab时:

#/dev/sdb1   /mnt    vfat    noexec 0 0

gvfsd-udisks2-volume-monitor再次变得繁忙,并安装了拇指驱动器。我不必取出拇指驱动器并将其重新插入,也不必向gvfsd发送信号,因此自动挂载守护程序似乎正在监视/ etc / fstab中的更改。

我不知道为什么会这样,但是测试是简单且可重复的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.