我有一个备份系统文件,我想缩小系统文件内的 ntfs 分区以便将其复制到新的较小的磁盘中。
我使用 losetup 安装 ntfs 分区并用ntfsresize
它来缩小文件系统。
但是,通过卸载并用 观察磁盘gdisk
,分区仍然是相同的大小。
我在某处读到过,我也需要缩小分区。我以为是一样的... 那么我想知道如何获取文件系统的最后一个扇区,以便将分区调整为相同的大小。
对我来说这有点奇怪,因为我们缩小了 ntfs 文件系统,然后删除分区并创建一个较小的新分区,我不明白如何才能不丢失数据。
答案1
我以为是一样的...
这不太对。分区的大小由 MBR 中的分区表决定。文件系统的大小由分区引导扇区。它们是不同的。但是 fs 的大小不应超过分区的大小。
然后我想知道如何获取文件系统的最后一个扇区以便将分区调整为相同的大小。
就我而言,通常我会将 fs 缩小一点,然后将其扩展以适应分区的新大小。例如,我们想将 fs 从 200GB 缩小到 100GB,我会将 fs 缩小到 90GB,然后将分区缩小到 100GB。之后,我将 fs 扩展到所有可用空间,以便 fs 将使用所有未分配的空间。
对我来说这有点奇怪,因为我们缩小了 ntfs 文件系统,然后删除分区并创建一个较小的新分区,我不明白如何才能不丢失数据。
这也不正确。缩减过程不会删除现有分区。实际上,它会执行以下步骤:
- 将分区尾部的数据移到前面的未分配空间。这样就会在分区尾部留下一组连续的空间。
- 收缩FS。这样分区尾部的空间就被FS释放了。
之后,我们就可以修改现有分区的大小。
答案2
缩小分区后,会剩下一些未分配的空间。使用此方法创建一个新分区,然后将所有数据传输到其中。这是一种解决方法,因为某些硬盘在尝试处理分区时可能会出现错误。