![使用 gparted 移动 msftres 分区](https://linux22.com/image/1628409/%E4%BD%BF%E7%94%A8%20gparted%20%E7%A7%BB%E5%8A%A8%20msftres%20%E5%88%86%E5%8C%BA.png)
我在网上找到了这个问题的各种答案,从“你绝对不能这样做”到“这可以用 gparted 来实现”,所以我希望在这里得到一个直接的答案。我的/boot
电脑上的分区空间不足(双启动 Arch Linux 和 Windows 10),我正在尝试用 GParted 调整它的大小。附件是(相当混乱的)分区的屏幕截图:
分区/boot
为/dev/sda2
。我缩小了 Windows 分区 的大小,sda4
目的是sda3
向右移动并增加 的大小sda2
。但是,如果我尝试这样做,GParted 会引发错误
我如何移动sda3
分区?所有这些的最终目的只是扩展我的/boot
分区,因此如果有人看到实现它的另一种方法,那也是可行的。
答案1
Microsoft 希望每个 GPT 磁盘上都存在一个 MSR,并建议在磁盘最初分区时创建它。
因此,将 sda3 “向右”移动应该没问题,以便为 sda2 留出更多空间。只是不要“跳过”您的第一个也是唯一一个 Windows 安装。
(对于某些评论:是的,根据我的经验,它确实会在(假设的)免费安装后由 Windows 重新创建)。
推理链(又称“遗留操纵”)如下:
- 任何人都不需要“现代”的 (U)EFI-Boot 和 GPT 分区表
- Windows 需要 GPT 来支持 (U)EFI-Boot
- 然而,GPT 不允许像以前使用 BIOS 分区驱动器那样隐藏某些信息
- msftdata 用于存储这些数据
详细信息: https://en.wikipedia.org/wiki/Microsoft_Reserved_Partition
答案2
失败是因为您不仅尝试移动分区,还尝试将其缩小到 15 MiB。GParted 认为缩小未知文件系统是不安全的,因此失败了。只需移动它而不改变其大小,它应该可以正常工作。
在极少数情况下,删除分区会导致问题,因此考虑到它只有 16 MiB 并且不受 MBR 分区限制的影响,我只会移动它。
您可能不需要/boot
大于 2 GiB 的分区。