Ubuntu将外部NTFS驱动器挂载为只读?

我是一个偶尔使用Ubuntu / Linux的用户,只在发生重大灾难时才会使用它(比如勒索软件核战,不过那是另外一回事)。

所以我用一个USB驱动器启动了另一台笔记本电脑上的Ubuntu;插入我的外部ntfs驱动器,它会自动识别,但是如果我尝试在任何地方创建新的文件夹/驱动器,"文件管理器"界面就会关闭,我不得不再次启动它(再试一次,反复如此)。

这让我猜想我的外部驱动器可能默认挂载为只读模式。

问题1:我可以在哪里验证它是否以只读模式挂载?

问题2:如何使其以读写模式挂载?


3似乎文件系统需要修复,对于NTFS来说,应该在Windows中进行修复。 - user692175
@MichaelBay,我非常尊重地不同意你的观点,“应该在Windows上完成”听起来好像你也是一个随意使用Linux的用户 :-) - joedotnot
不,这是因为在Ubuntu或其他系统中没有好的工具来纠正NTFS。实际上,我多年来99%的时间都在使用Ubuntu。也许这就是为什么我从未遇到过灾难,甚至是小问题而已。最多只是一些小不便。 - user692175
2@joedotnot 他是正确的。NTFS的问题应该从Windows中修复。虽然Linux中有一些工具,但是使用它们永远不能百分之百保证修复成功。而且从Ubuntu中修复意味着你会删除休眠文件,基本上就是删除了Windows尚未保存到磁盘的任何内容。这是一个非常非常糟糕的主意。 - Rinzwind
@Rinzwind。我中了勒索软件的招,我最关心的是不用担心休眠文件,它很可能已经损坏了,包括整个Windows操作系统。我的首要任务是将尚未被勒索软件加密的文件保存到外部硬盘驱动器上。这是一个非常好的主意。然后重新安装全新的Windows系统。 - joedotnot
4个回答

这是一个常见的问题,在AskUbuntu上已经回答了很多次(例如,here)。
简而言之,你可能在Windows中开启了“快速启动”,这就是为什么Linux只能以只读模式挂载它。
你还应该安装了ntfs-3g,因为它通常在Ubuntu上默认安装。
Q1. 只需挂载你的Windows分区,然后尝试在那里创建或编辑文件。
Q2. 要可靠地以读写模式挂载它,你需要在Windows中禁用“快速启动”。然后在文件管理器中双击Windows分区即可。或者,你也可以通过终端来完成:
找出哪个分区是你的Windows分区:
[van@z97:mnt]$ lsblk -f
NAME           FSTYPE   LABEL    UUID                                 MOUNTPOINT
loop0          squashfs                                               /snap/ohmygiraffe/3
loop1          squashfs                                               /snap/core/2844
loop2          squashfs                                               /snap/core/2774
loop3          squashfs                                               /snap/core/2898
sda                                                                   
├─sda1         ntfs     Recovery E6A60CE2A60CB559                     
├─sda2         vfat              A80E-CD6E                            /boot/efi
├─sda3                                                                
├─sda4         ntfs              3C5E17DD5E178F30                     
├─sda5         swap              e0f12aa3-2b9f-4e04-a91d-806a9eccb688 
│ └─cryptswap1 swap              c738647d-8719-4f4e-b454-14802635d295 [SWAP]
└─sda6         ext4              4295796e-0535-4fbf-843d-7c9970c9155e /
sdb                                                                   
├─sdb1         ext4              4c9ee94a-d2b3-46a0-99a7-7f434814bda5 /home
└─sdb2         ext4              cc902d7c-591b-4a44-8b68-51a7ca7c4e7f /opt

在我上面的例子中,它是 sda4
现在将其挂载到挂载点 /mnt/windows
sudo mount -t ntfs /dev/sda4 /mnt/windows
ls /mnt/windows

然后只需在文件管理器中导航到/mnt/windows,创建一个测试文本文件,并确保您可以保存它。
您可以使用以下命令卸载挂载点:
sudo umount /mnt/windows

谢谢。对我来说,问题是“快速启动”。 - محمد جعفر نعمة

如果数据很有价值,请在克隆副本上进行修复工作

  • 如果您要恢复的数据很有价值,建议将驱动器克隆到至少相同大小的另一个驱动器,并在克隆副本上进行修复工作。这样,您可以尝试潜在风险的方法。如果出现问题,您可以再次克隆,并尝试其他方法,而不会丢失数据。请参考此链接,

导致无法挂载NTFS文件系统的不同原因

导致您无法挂载NTFS文件系统的原因可能有所不同。

  • 文件系统需要修复,对于NTFS文件系统来说,建议在Windows中进行修复,正如@MichaelBay所建议的那样。如果您当前的系统中的Windows无法工作,您可以将驱动器连接到另一台带有Windows的计算机上进行修复。但我可以理解,由于疑似勒索软件的存在,您可能会犹豫这样做。

  • Windows处于休眠或半休眠状态,这意味着如果被其他操作系统写入,文件系统将会受损。在这种情况下,解决方案是:

    • 如果可能的话,启动Windows并重新启动(而不是关机)
    • 关闭Windows中的快速启动功能,这是一种半休眠状态
  • 自动过程将NTFS分区以只读方式挂载,尽管它可以以读写方式挂载。如果这是问题所在,您可以卸载它,并手动以读写权限重新挂载。

    您可以在文件/etc/mtab中检查分区是否以只读ro或读写rw方式挂载。

    less /etc/mtab
    

    或者使用grep进行特定的检查,例如:

    grep 'ro,' /etc/mtab
    grep '^/dev/' /etc/mtab
    

    请参考以下链接:


您的第三个要点是我的情况。"尽管可以将NTFS分区挂载为读写模式,但自动过程却将其挂载为只读模式。"这就是我在问题中明确提到的,我插入了我的外部NTFS驱动器,它会被自动识别(我可以查看文件,但无法写入)。您的less /etc/mtab命令有助于验证/dev/sdb4被以只读模式挂载。回答已被点赞。 - joedotnot
很高兴这个答案能帮助你解决问题 :-) - sudodus
Windows的快速启动搞砸了我,在这里非常感谢您,否则我永远无法解决这个问题。我不小心使用Windows OS启动了我的驱动器,并在加载之前关闭了它(匆忙地重新插入驱动器),然后遇到了这个错误,因为无论我尝试什么都无法将任何内容写入该驱动器。 - Joe

在我的情况下,问题是我在Windows中激活了磁盘缓存。解决方法很简单:在Windows上禁用驱动器上的磁盘缓存。
在使用Windows禁用便携式USB NTFS格式驱动器上的磁盘缓存后,我可以自动挂载驱动器到我的Linux机器,并且在Linux以及Windows上都可以读写磁盘。
要在Windows中禁用写入缓存,请执行以下步骤:
  1. 在Windows Explorer中右键单击驱动器。
  2. 打开属性。
  3. 转到策略选项卡。
  4. 取消选中“启用写入缓存...”

我在查看了许多人的回答后找到的最简单的解决方案是下载Windows 10 ISO文件,使用ISO制作一个可启动的USB驱动器,然后从USB启动。
一旦进入安装界面,我只需取消安装(不要强制关机),然后返回Ubuntu,发现我的驱动器恢复正常,只读权限被移除,完全访问权限也得以恢复。
这个简单的解决方案花费了我很多小时才找到。希望能对其他人有所帮助。
似乎一旦Windows启动,无论是安装、Live USB(Windows to go)还是其他任何变体,如果没有正确关闭,它都会锁定你的NTFS驱动器,这也会发生在USB驱动器上。
过去我遇到过几次这种情况。虽然以前我有Windows to go,但这次没有,所以找到一个新的解决方案有点麻烦。