如何自动挂载NTFS分区?

我有两个NTFS分区,我不想每次启动Ubuntu时都手动挂载它们。
- 我应该如何做到这一点? - 有没有工具或代码可以使用? - 如果有的话,自动挂载是否安全?特别是当它们正在被另一个操作系统使用时?

2好的,看起来ntfs-config仍然依赖于hal。在natty中不再使用hal。无论如何,将每个分区添加到/etc/fstab中并没有什么神奇的地方。另外,我还编辑了我的gigolo帖子。 - con-f-use
@Con-f-use:我明白了,我现在正在尝试编辑/etc/fstab文件,在下面添加内容。 - Binarylife
自动挂载所有分区 - 这个 回答建议使用一个非常简单的应用程序,名为 AriOS Automount。 - user47206
12个回答

最直接的方法是将它们添加到您的fstab中,这在大多数Linux系统上都有效。但也有其他方法。每种方法在本答案中都有自己的标题。
注意:
如果出现关于“root”或“权限”的错误消息,那是因为大多数挂载选项需要root权限。在Unity中,您可以通过在通常的命令前加上gksudo(图形应用程序)或sudo来实现,并输入密码。例如,在ntfs-config的情况下,您按下Alt+F2,然后键入gksudo ntfs-config

男妓

男妓 安装男妓

男妓与Nautilus的远程文件系统和挂载功能紧密配合。您需要将分区添加到Nautilus的书签中(Nautilus是Ubuntu的默认文件管理器)。之后,您将在男妓中找到它们。其他细节请参考我的另一个回答


Fstab

编辑:根据您的评论猜测,您对Linux不太熟悉,我将更详细地解释该过程:

与GUI工具或Gigolo相比,fstab方法更清洁和基础。它也适用于其他仅限文本模式的系统。原则上,您不需要安装任何东西。对于每个ntfs分区,您需要在名为/etc/fstab的文件中添加一行。对我来说,我添加的行如下:

#Windows-Partition
UUID=<xxxxx> /media/win ntfs rw,auto,users,exec,nls=utf8,umask=003,gid=46,uid=1000    0   0

这部分写着UUID=<xxxxx>的内容告诉你的系统要挂载哪个分区。如果按照这个步骤操作后出现重复设备,将UUID=<xxxx>替换为/dev/disk/by-uuid/<xxxxx>。每个分区都有自己独特的UUID。空格很重要,最好复制粘贴整行代码。将auto替换为noauto以手动挂载。用户应该属于plugdev组。

请注意,如果这行代码位于文件末尾,它后面应该有一个换行符。如果没有,挂载会报错。

查找UUID:

Disk Utility and blkid

打开“磁盘工具”并通过它们的大小(例如120 GB)、文件系统(例如ntfs)和名称来识别正确的分区。注意它们的“设备:”文件(例如/dev/sdb1)。或者,您可以在终端中运行以下命令,如gnome-terminal
sudo fdisk -l

你可以在shell中运行sudo blkid来查找分区的UUID。输出结果大致如下:
confus@confusion:~$ sudo blkid
[sudo] password for confus: 
/dev/sda1: LABEL="boot" UUID="cc425c68-704f-4836-9123-bbb3aea64471" TYPE="ext2" 
/dev/sda2: UUID="1c8b1489-e111-481c-89f2-743203c3ee7d" TYPE="crypto_LUKS" 
/dev/sda3: UUID="7258CB9858CB598D" TYPE="ntfs" 
/dev/sda4: LABEL="HP_TOOLS" UUID="1405-0A4C" TYPE="vfat" 
/dev/mapper/lukslvm: UUID="xZSNtR-MocS-dLMk-vOWa-Ay65-wS9b-GqaNhV" TYPE="LVM2_member" 
/dev/mapper/vgubuntu-swap: UUID="f415f3b9-4e4d-48b1-99c2-605e16532f9e" TYPE="swap" 
/dev/mapper/vgubuntu-root: UUID="62a862b4-e6c8-4efd-90b5-55eab8e83e39" TYPE="ext4"

正确的UUID前面将有适当的设备文件,并在后面加上TYPE="ntfs"。所以对于我来说,UUID是"7258CB9858CB598D"。对于您来说,这个数字会有所不同。另外,我只有一个NTFS分区。在您添加到fstab中的行中,用您找到的UUID替代我的UUID。

设置挂载点

现在是挂载点。对于每个分区,这将是不同的。我选择了/media/win。您可以选择任何您喜欢的名称。它只需要是一个已存在的空目录。您也可以创建目录/home/yourusername/windows1,然后将其放入您的fstab中。

我行中的其他参数

ntfs告诉fstab这是一个ntfs类型的分区。

rw,auto,user,exec,nls=utf8,umask=003,gid=46,uid=1000 0 0 超出了这个回答的范围。只需使用这些值即可,它们应该没问题。如果您感兴趣,您可以在之前提供的链接中阅读有关这些参数的解释。

当您添加了这些行并完成了我描述的所有步骤后,请保存文件并在shell中运行sudo mount -a命令。如果您可以通过挂载点访问到您的分区且没有显示任何错误信息,那么一切都进行得很顺利。如果有错误,请检查是否有拼写错误和明显的错误。如果sudo mount -a显示错误,请不要重新启动!有错误的情况下,重新启动可能会失败。

查找您的用户和组ID

您可以使用id命令来查找您的用户和组ID。

confus@confusion:~$ id
uid=1000(confus) gid=1000(confus) groups=1000(confus),4(adm),7(lp),20(dialout),24(cdrom),46(plugdev),112(lpadmin),120(admin),122(sambashare)

注意:Windows双系统可能会导致您挂载的驱动器仅具有只读访问权限,除非您禁用Windows功能——快速启动。

ntfs-config

还有一个图形化工具ntfs-config 安装ntfs-config可用,但不是必需的(而且它在Natty Narwhal中的当前版本无法使用 - 我们假设这个问题很快会被修复)。此外,使用该工具可能会导致您在fstab中丢失旧的设置(例如将缓存挂载到内存中),因为它会覆盖/etc/fstab文件而不是追加内容。


2非常感谢。它有效了。我按照你说的编辑了/etc/fstab/文件。 - Binarylife
1太棒了。你看,你根本不用害怕略微修改文本。继续努力吧!会越来越容易的。 - con-f-use
1是的,我同意你的观点。并不是说我害怕编辑,只是我想要一个简单的工具来实现“自动挂载”,而且当我想要轻松移除这个选项时也很方便。但是现在我可以直接在/etc/fstab/中删除编辑过的那一行,对吗? - Binarylife
没错,就删掉吧。我并不是想要看不起你或者什么的。只是有一种(也许是错误的)印象,认为你对Linux相对较新。 - con-f-use
没问题,一点都不麻烦。确实,我有点新手,但我正在努力提高自己,学到更多知识。非常感谢你的精彩回答!:) - Binarylife
这是一个很棒的回答。非常感谢你提供详细信息,@con-f-use!我要补充一下,我使用 ro 而不是 rw,以便在我的Windows分区处于休眠状态时进行挂载。 - jbaums
@con-f-use 那应该是ntfs-3g吧? - Caltor
我还需要dmask=027,fmask=137才能正确打开文件夹、从Nautilus卸载等。 - metakermit
在fstab中,选项应该是user而不是users吧?这是一个错误吗,还是两种方式都可以使用? - Alaa Ali
如何打开“磁盘工具”? - Dims
在重新启动之前,执行sudo mount -a命令。 - LongLT
为什么gid应该是46? - Aditya Kashi
Ubuntu 20.04+ 的用户们,节省时间并查看下一个答案:https://askubuntu.com/a/1235221/139249 - mike stewart

Ubuntu 20.04及更高版本

  • 打开文件管理器(nautilus)并创建一个新文件夹,我建议在主文件夹中。

  • 打开磁盘应用程序(Disks)。

  • 选择要自动挂载的分区,然后点击该分区的“附加分区选项” -> “编辑挂载选项”。

  • 选择“系统启动时挂载”复选框,并取消选择其他两个选项。

  • 在“挂载点”中设置您创建的文件夹的路径,例如我的是Shared。

    enter image description here

  • 点击“确定”按钮并重新启动计算机。


1这简直太容易了,太直接了,这个答案需要更多的赞! - The Godfather
+1 这太棒了。谢谢。 - timekeeper

ntfs-config

这个程序允许您通过友好的图形界面轻松配置所有的NTFS设备以支持写入。为此,它将配置它们使用开源的ntfs-3g驱动程序。您还可以轻松地禁用此功能。

项目主页:http://flomertens.free.fr/ntfs-config/

要求

在Ubuntu中安装NTFS-config

sudo apt-get install ntfs-config

这将安装所有ntfs-config所需的软件包,包括ntfs-3g。
使用Ntfs-Config
如果您想打开此应用程序,请尝试找到--> NTFS配置工具。
现在它会提示输入root密码,输入root密码并点击确定。
它将显示可用的NTFS分区。
您需要选择要配置的分区,添加挂载点的名称,然后点击应用。
选择适合您的NTFS写支持,即内部或外部。
如果您想卸载,您应该以root身份卸载,然后右键单击挂载点选择卸载卷。
结论
正如您所见,在Linux中挂载NTFS分区可以轻而易举。如果您不喜欢或害怕命令行,只需几个鼠标点击就可以实现很多功能。说实话,这比在Windows中挂载陌生、新的、未知的分区要简单得多。
好了,就这样。祝您在Linux上愉快!

P.D : Natty用户的更新

如果您升级到Ubuntu Natty,您会注意到NTFS配置工具无法正常工作,即使它提示您输入root权限。

问题在于当您打开该工具时,什么都不会发生。这是因为缺少一个文件夹,为了解决这个问题,您应该输入以下命令:

sudo mkdir -p /etc/hal/fdi/policy

现在你已经有了工具,只需选择你想要在启动时自动挂载的分区,如果你想要写入权限,只需勾选相应的复选框。

非常简单 :P


由于某种原因,Ntfs-config无法打开。它只是要求输入密码,然后没有任何反应。 - Binarylife
尝试在终端中运行(使用gksudo),并查看是否有任何错误打印出来。如我在之前的帖子中提到的,您并不需要任何图形工具。只需编辑/etc/fstab文件。 - con-f-use
1重大警告:请备份/etc/fstab,以防覆盖它!!! - Jürgen Paul

你可以使用以下命令添加一个启动项:
gvfs-mount -d /dev/sda3

在这种情况下,/dev/sda3 是你的NTFS分区。 编辑:gvfs-mount正在过时,并被gio取代。
gio mount -d /dev/sda3

Arios-Automount

你可以使用这个简单而小巧的软件:

  • 通过以下命令添加此PPA:

      sudo apt-add-repository ppa:trebelnik-stefina/multisystem 
    
  • 更新索引文件:

      sudo apt-get update
    
  • 安装arios-automount软件包:

      sudo apt-get install arios-automount
    
这个小软件会挂载你的所有ntfs分区。而且它会在你登录之前完成这个操作。
希望这能帮到你。

更新

在Ubuntu 16.04 Xenial中,PPA无法正常工作。


工作得非常好,而且似乎它并没有触及到 fstab 文件。 - user47206
1Failed to fetch http://ppa.launchpad.net/trebelnik-stefina/multisystem/ubuntu/dists/yakkety/main/binary-amd64/Packages 404 Not Found - Gabor
1@Gabor 你必须知道,PPA 可能会失效。这个答案是在2012年写的,是一个很好的回答。那不是一个有效的降低评分的理由。 - Anwar
添加任意PPA可能会引入安全风险。 - antikbd

视频解释

你只需在/etc/fstab中添加一条条目。非常简单。首先使用sudo blkid命令查找分区的UUID。然后按照fstab的格式进行配置:

<file system> <mount point>   <type>  <options>       <dump>  <pass>

对于文件系统,添加您的分区UUID。例如:UID=07446dab-913a-4cf3-8e62-62ecdd26e927 对于挂载点,您可以指定任何目录。按照惯例,Ubuntu会挂载在/media/YourUsernameHere/PartitionNameHere 对于类型,在您的情况下是ntfs 对于其余部分,您可以使用defaults 0 2

请查看fstab的社区文档。 还可以尝试在Ubuntu软件中心搜索NTFS配置工具。


你可以尝试在启动时挂载硬盘来解决这个问题,而可能最简单的方法之一是使用pysdm。
sudo apt-get install pysdm

安装完成后,您可以按照此帖子中包含的步骤进行操作。

关于这件事情有一点很重要。我必须将挂载点的名称设置为之前使用过的确切名称,因为默认情况下它会挂载到/media/sdb3,而我已经将所有设置都与/media/ACER配合使用了。 - George Mauer
链接已损坏。 - Changer

开启或禁用自动挂载,请打开终端并输入dconf-editor,然后按[Enter]键。
浏览至

org.gnome.desktop.media-handling

自动挂载键控制是否自动挂载媒体。如果设置为true,则Nautilus将在启动和插入媒体时自动挂载用户可见的硬盘和可移动媒体。
还有另一个键

org.gnome.desktop.media-handling.automount-open

这控制是否自动打开一个文件夹来挂载媒体。
如果设置为true,那么当媒体被自动挂载时,Nautilus将自动打开一个文件夹。这仅适用于未检测到已知的x-content/*类型的媒体;对于检测到已知的x-content类型的媒体,将采取用户可配置的操作。

dconf-editor disabling automount

来源:Ubuntu文档

我认为最简单的方法是使用Ubuntu默认自带的磁盘工具(gnome-disk-utility)。
只需启动磁盘工具,进入您想要在启动时自动挂载的分区,点击齿轮按钮并选择“编辑挂载选项”。然后,取消勾选“自动挂载选项”,勾选“在启动时挂载”。我认为您可以将其他所有设置保持默认,点击确定,输入密码并重新启动。