Ubuntu 12.04 自动挂载 ntfs 分区

我已经到处寻找解决这个问题的方法,但似乎无法弄清楚为什么会出现这种情况。我在/etc/fstab中有以下条目来挂载一个ntfs分区,使用ntfs-3g。
UUID=01CD842715EC2180   /media/mediahd02        ntfs    defaults,user,noexec,uid=1000,gid=1000,dmask=007,fmask=117      0       2

这个分区的卷标是"MEDIA02"。
所以我在fstab挂载方面没有遇到任何问题。然而,问题在于它再次使用MEDIA02标签自动挂载。我不确定自动挂载是否是正确的术语,因为它只是一个空目录。删除这个目录并重新启动会导致它再次出现。
所以在/media目录中列出,我看到了MEDIA02和mediahd02两个目录。
htpc@htpc:~$ cat /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/sdf1 during installation
UUID=ec027544-b0e7-4145-99a4-905543a9781a /               ext4    errors=remount-ro,noatime,discard 0       1
# swap was on /dev/sdf5 during installation
UUID=1794409e-723f-41ac-9f31-ae059f377613 none            swap    sw              0       0
# Added all the lines below this
tmpfs       /tmp        tmpfs   defaults,noatime,mode=1777  0   0
UUID=0F70-3B06  /media/mediahd01    vfat    defaults,user,noexec,uid=1000,gid=1000,dmask=007,fmask=117  0       2
UUID=01CD842715EC2180   /media/mediahd02        ntfs    defaults,user,noexec,uid=1000,gid=1000,dmask=007,fmask=117      0       2

htpc@htpc:~$ cat /etc/mtab 
/dev/sdc1 / ext4 rw,noatime,errors=remount-ro,discard 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0
none /sys/fs/fuse/connections fusectl rw 0 0
none /sys/kernel/debug debugfs rw 0 0
none /sys/kernel/security securityfs rw 0 0
udev /dev devtmpfs rw,mode=0755 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0
tmpfs /tmp tmpfs rw,noatime,mode=1777 0 0
tmpfs /run tmpfs rw,noexec,nosuid,size=10%,mode=0755 0 0
none /run/lock tmpfs rw,noexec,nosuid,nodev,size=5242880 0 0
none /run/shm tmpfs rw,nosuid,nodev 0 0
/dev/sdc1 /media/usbhd-sdc1 ext4 rw,relatime 0 0
/dev/sdb1 /media/mediahd02 fuseblk rw,noexec,nosuid,nodev,allow_other,default_permissions,blksize=4096 0 0
/dev/sda5 /media/mediahd01 vfat rw,noexec,nosuid,nodev,uid=1000,gid=1000,dmask=007,fmask=117 0 0
/dev/sdh1 /media/Windows_7 fuseblk rw,nosuid,nodev,allow_other,blksize=4096 0 0

有人能解释一下为什么会这样吗?

如果删除了fstab的行,会发生什么?我猜NTFS分区也会自动挂载,我说得对吗? - January
请发布您的 /etc/fstab 和 /etc/mtab。 - user91632
好的,我已经列出了你要求的那两个文件。 - nixgadget
如果我删除fstab行,它会自动挂载。 - nixgadget
一个小点:在带有 vfatntfs 的两行末尾,你写的是 0 2。对于这些类型的分区,Linux 中的 fsck 命令不可靠,所以你应该将最后的 2 改为 0(就像你已经在 procswap 的行中看到的那样)。 - Paddy Landau
好的观点。这应该会提高性能。 - nixgadget
1个回答

好的,这是一个经典的新手错误。

在设置我的系统时,我创建了这个脚本/etc/udev/rules.d/11-media-by-label-auto-mount.rules,这就是导致这个问题的原因。它应该自动挂载我的htpc上的USB磁盘,同时忽略系统磁盘。

脚本内容:

KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"

# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"

# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# Global mount options
ACTION=="add", ENV{mount_options}="relatime"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"

# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"

# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"

# Exit
LABEL="media_by_label_auto_mount_end"

然而,我遇到问题的磁盘是/dev/sdb1,因此这个脚本接管了它。我已经修改了脚本,将忽略sdb的行改为KERNEL!="sd[c-z][0-9]"

根据新用户戴夫:我们可以看到更正吗?同时,如果可以找出规则脚本中的有问题行,将不胜感激。谢谢! - Seth
1抱歉,伙计。我进行了更改,现在应该很明显了。 - nixgadget