【51CTO.com快译】如果你双引导Windows和Linux,可能已注意到从Linux挂载NTFS分区时,有时无法写入该分区。你可以读取其中的任何内容,却无法删除文件、对文件改名、修改文件或编写新的文件和目录。
为什么无法从Linux写入到Windows分区?
之所以出现这种情况,是由于分区以只读模式挂载。挂载Windows分区时,一些文件管理器会显示通知对话框,对此发出警告。另一些文件管理器只字未提,你根本无法在NTFS文件系统上执行任何写入操作。
你可能会问:“但为什么分区以只读模式挂载?”这是由于一项名为“快速启动”(Fast Startup)的功能。长话短说,关闭计算机时,Windows将一部分随机存取存储器(RAM)保存到磁盘。下次启动时,它将该部分内容重新加载到内存中。
这样快得多,因为它几乎是简单的复制操作,从磁盘复制到内存。相反,在正常引导时,必须从磁盘读取文件,然后CPU必须处理大量数据以完成初始化工作。如果听起来很抽象,不妨这么想:“正常引导”时,就像从头开始准备食物,然后将其放入烤箱。“快速引导”时,就像从冰箱取出已经准备好的食物、重新加热。
这是一项安全功能
回顾一下,Windows关闭时,它使核心操作系统数据休眠进入到磁盘。系统在休眠后引导时,它恢复、启动得更快。由于休眠冻结了一些内存数据和操作系统状态,并将其保存到磁盘,因此改动该磁盘上的任何数据都是有风险的。
设想一个程序正在执行某操作。它有几个打开的文件,部分内容写入到这些文件。系统关闭时,程序代码保存到磁盘,以便以后可以恢复。如果你修改程序的文件,应用程序恢复运行时,它找不到正在处理的数据,因此它会崩溃,或完全丧失所有进度,这种情况可能很难恢复。
如何使NTFS分区可以从Linux写入?
有两种解决方法,各有其缺点。如果你很少需要从Linux写入到Windows分区上,尝试下一节中提到的内容。
引导进入到Windows,并重启而不是关机
是的,这有点不方便,但这也是解决你问题的最快方法,不需要像其他解决方法那样长期更改任何内容。
1.如果你目前在使用Linux,请重启。
2.引导进入到Windows。
3.点击开始菜单,选择重启而不是关闭。
4.最后,重新引导进入到Linux,你应该能够以读取/写入模式挂载Windows NTFS分区。
Windows重启时,不会在下次启动时使用“快速启动”功能。这意味着它不会进入休眠状态、获取系统运行状态的快照或将任何内存数据保存到磁盘。分区上没有休眠数据,这意味着可以安全地写入到分区上,Linux会识别出这一点。
万一出现混淆,你不必每次都完成所有四个步骤。只要上次你引导进入的是重启而不是关闭的Windows,Linux就能写入到NTFS分区上。
禁用快速启动
如果你常常需要从Linux写入到Windows分区上,这很有用。缺点是微软的操作系统需要更长的引导时间。
要禁用快速启动,鼠标右击开始菜单,然后鼠标左击“电源选项”。
查找“额外的电源设置”,然后点击文本。如果窗口太小,你可以在窗口右侧找到它,或者向下滚动才能找到它。
接下来,点击“选择电源按钮的功能”。
然后点击“更改当前不可用的设置”。
不要选择“开启快速启动”,然后点击窗口右下方的“保存更改”按钮。
结论
这些是安全的方法。如果你愿意冒险,这个Linux命令在过去适用。(不过它在现代Windows版本中不适用。)将“/dev/sda4”换成你NTFS分区的正确的设备名称。如果你不知道设备名称,可以按照本教程(https://www.maketecheasier.com/lsblk-list-storage-information-linux/)来查找。
- sudo mount -o remove_hiberfile /dev/sda4 /mnt
记住,你可能会搞砸Windows的下一次引导过程,因此只有在你搞得定可能要修复Windows问题这种风险的前提下尝试。如果这对你管用,你会在“/mnt”目录中找到Windows分区的内容。
原文标题:How to Write to Windows Partition In Linux,作者:Alexandru Andrei
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】