如何在 Linux 上以 root 以外的所有权挂载 vfat 驱动器?

Nor*_*sey 5 linux mount debian-squeeze

我在新升级的 Debian Squeeze 上安装 iPod 时遇到问题。我怀疑要么是协议发生了变化,要么是我发现了一个错误,我不知道该向哪里报告。

我正在尝试安装 iPod,以便我有权读取和写入它。但我的努力落空了:

$ sudo mount -v -t vfat -o uid=32074,gid=6202 /dev/sde2 /mnt
/dev/sde2 on /mnt type vfat (rw,uid=32074,gid=6202)
$ ls -l /mnt
total 80
drwxr-xr-x 2 root root 16384 Jan  1  2000 Calendars
drwxr-xr-x 2 root root 16384 Jan  1  2000 Contacts
drwxr-xr-x 2 root root 16384 Jan  1  2000 Notes
drwxr-xr-x 3 root root 16384 Jun 23  2007 Photos
drwxr-xr-x 6 root root 16384 Jun 19  2007 iPod_Control
$ sudo umount /mnt
$ sudo mount -v -t vfat -o uid=nr,gid=nr /dev/sde2 /mnt     
/dev/sde2 on /mnt type vfat (rw,uid=32074,gid=6202)
$ ls -l /mnt
total 80
drwxr-xr-x 2 root root 16384 Jan  1  2000 Calendars
drwxr-xr-x 2 root root 16384 Jan  1  2000 Contacts
drwxr-xr-x 2 root root 16384 Jan  1  2000 Notes
drwxr-xr-x 3 root root 16384 Jun 23  2007 Photos
drwxr-xr-x 6 root root 16384 Jun 19  2007 iPod_Control
Run Code Online (Sandbox Code Playgroud)

如您所见,我尝试了符号 ID 和数字 ID,但文件仍然由 root 拥有(并且只能由 root 写入)。

这些 ID 真的是我的;我从 1993 年就拥有 UID。

$ id
uid=32074(nr) gid=6202(nr) groups=6202(nr),0(root),2(bin),4(adm),...
Run Code Online (Sandbox Code Playgroud)

我在http://pastebin.com/Xue2u9FZ 上放了一个 strace ,mount(2) 调用看起来不错:

mount("/dev/sde2", "/mnt", "vfat", MS_MGC_VAL, "uid=32074,gid=6202") = 0
Run Code Online (Sandbox Code Playgroud)

最后,这是我的内核版本uname -a

Linux homedog 2.6.32-5-686 #1 SMP Mon Jun 13 04:13:06 UTC 2011 i686 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

有谁知道如果

  • 我应该做一些不同的事情,或者
  • 如果有解决方法,或者
  • 如果这是一个错误,应该在哪里报告?

Nor*_*sey 0

重新启动机器使问题消失。

我想我会留下这个问题,因为它似乎确实展示了如何在 Linux 上以 root 以外的所有权挂载 vfat 驱动器。但如果有人认为我应该删除这个问题,请告诉我。