在 Linux 中调整 NTFS 分区大小不起作用

在 Linux 中调整 NTFS 分区大小不起作用

我最近从 Windows 10 切换到 Arch Linux,因为我不想丢失数据,所以在安装过程中我没有动 2TB 的 HDD,只格式化了 SSD。安装很顺利,现在我大约一个星期都使用 Linux 作为我唯一的操作系统。由于现在一切正常,我决定将用于存储图片和类似内容的 HDD 从 NTFS 转换为 ext4,因为它速度更快,而且无论如何都是 Linux 的默认格式。但尝试这个方法时遇到了问题。首先,我没有外部磁盘来备份我的数据。为了解决这个问题,我决定缩小 NTFS 分区,创建一个 ext4 分区,并将数据从 NTFS 移动到 ext4 分区。由于我首先尝试在 gparted 的帮助下做到这一点,但它不适用于 ntfsresize(也不起作用),所以我现在陷入困境,需要帮助。

以下信息可能会有帮助:

$ sudo ntfsresize -fs 953864 /dev/sdb1

(953864 应该可以工作,因为只使用了大约 80GB 的驱动器)

输出:

Device name        : /dev/sdb1
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 1895538184704 bytes (1895539 MB)
Current device size: 1895538188288 bytes (1895539 MB)
New volume size    : 950784 bytes (1 MB)
Checking filesystem consistency ...
Cluster 249604 is referenced multiple times!
Cluster 249605 is referenced multiple times!
Cluster 249606 is referenced multiple times!
Cluster 249607 is referenced multiple times!
Cluster 249608 is referenced multiple times!
Cluster 249609 is referenced multiple times!
Cluster 249610 is referenced multiple times!
Cluster 249611 is referenced multiple times!
Cluster 249612 is referenced multiple times!
Cluster 249613 is referenced multiple times!
100.00 percent completed
ERROR: Filesystem check failed!
ERROR: 32 clusters are referenced multiple times.
NTFS is inconsistent. Run chkdsk /f on Windows then reboot it TWICE!
The usage of the /f parameter is very IMPORTANT! No modification was
and will be made to NTFS by this software until it gets repaired.

由于我没有安装 Windows,因此我无法按照输出的建议进行操作。

$ sudo ntfsfix -db /dev/sdb1

输出:

Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
Going to un-mark the bad clusters ($BadClus)... No bad clusters...OK
NTFS partition /dev/sdb1 was processed successfully.

$ sudo fdisk -l /dev/sdb

输出:

Disk model: ST2000DM008-2FR1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x715b873b

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdb1        2048 3702225071 3702223024  1.7T  7 HPFS/NTFS/exFAT

我真的不知道该怎么办。chkdsk /f即使ntfsfix没有发现任何错误,并且据我测试我可以读写磁盘,我是否需要再次启动 Windows 才能运行?

提前致谢!

答案1

回想起来,这可能是一个愚蠢的问题,我刚刚制作了一个 Windows 10 启动驱动器并chkdsk /F [myPartition]按照 ntfsresize 的建议执行。现在一切正常。仍然感谢 @user10489 的回复

答案2

ntfsresize 会调整文件系统的大小,但不会调整分区的大小。您必须单独调整分区的大小。

正确计算以调整分区大小有点棘手,因此,当我使用命令行工具执行此操作时,我会调整文件系统的大小,然后将分区缩小到稍大一些,然后再次调整文件系统的大小(不指定大小)并让它扩展到新大小的分区中,而不是冒着使分区太小并损坏文件系统的风险。

图形工具可以同时完成这两项操作,而且更加安全。

或者您可以使用 Windows 磁盘管理器来缩小分区和文件系统,这也是我现在经常做的事情。让 Windows 处理自己的文件系统,这样更安全。

相关内容