将双引导系统迁移到更大磁盘的最佳策略是什么?

将双引导系统迁移到更大磁盘的最佳策略是什么?

我的笔记本电脑上有一个包含 Windows 和 Debian 的双启动系统,我想将磁盘从 500GB 升级到 2TB,同时增加两个操作系统分区的大小。设置方式如下:

root@faris:~# LC_ALL=C fdisk -l
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: Micron 2300 NVMe 512GB                  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6974F471-DAB3-4665-A578-591B2C8F5144

Device             Start        End   Sectors   Size Type
/dev/nvme0n1p1      2048     391167    389120   190M EFI System
/dev/nvme0n1p2    391168     653311    262144   128M Microsoft reserved
/dev/nvme0n1p3    653312  350619647 349966336 166.9G Microsoft basic data
/dev/nvme0n1p4 966057984  968085503   2027520   990M Windows recovery environment
/dev/nvme0n1p5 968085504  997390335  29304832    14G Windows recovery environment
/dev/nvme0n1p6 997392384 1000214527   2822144   1.3G Windows recovery environment
/dev/nvme0n1p7 350619648  352573439   1953792   954M EFI System
/dev/nvme0n1p8 352573440  354527231   1953792   954M Linux filesystem
/dev/nvme0n1p9 354527232  966057983 611530752 291.6G Linux filesystem

Partition table entries are not in disk order.


Disk /dev/mapper/nvme0n1p9_crypt: 291.58 GiB, 313086967808 bytes, 611497984 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/vg-root: 289.72 GiB, 311083139072 bytes, 607584256 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/vg-swap: 1.86 GiB, 2000683008 bytes, 3907584 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Generic         
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

我想为 nvme0n1p3(Windows 分区)和 nvme0n1p9(Linux 分区)提供更多空间,这是一个 LUKS2 加密分区。另请注意磁盘末尾的 3 个“恢复”分区,以及 2 个 EFI 分区和 128M 的“Microsoft 保留”分区。我不知道 Windows 是否有某种磁盘加密。当我拿到笔记本电脑时,它们就在那里,但我从未将它们取下来。

这里最好的策略是什么?我能想到的有 3 种方法:处理设备层 ( dd)、处理文件层 ( cp) 或完全重新安装操作系统。

  1. 完全dd if=/dev/nvme0 of=/dev/sda然后找到移动/调整分区大小的方法?

    • 执行此操作后是否可以移动分区?我想这需要我将最右边的分区逐个移动到真正的末端,然后找到一种方法以某种方式告诉每个人新的大小和偏移量。我该怎么做呢?
  2. 以某种方式在新磁盘中重新创建具有相同大小的 9 个分区,然后dd if=/dev/nvme0n1p* of=/dev/sdaX分别创建每个分区?

    • 由于分区开始的偏移量会有所不同,这是否有效?之后我可以调整东西的大小吗?我的意思是,我可以运行 update-grub,但我不确定其他问题。
  3. 创建一个Windows Restoration pendrive,磁盘,用它在2TB驱动器上恢复系统,在新驱动上安装Linux,同时调整Windows分区大小,然后最后将所有文件复制进去?我想这可能是最安全的,但是重新安装所有东西听起来并不有趣。我宁愿避免它,除非有充分的理由(比如移动所有东西也很耗时!)。

  4. 还有其他方法吗?除了 DD 之外,还有什么 Unix GUI 程序可以帮助我吗?

PS:2TB 磁盘被列为 SDA 而不是 NVMe,因为我现在正在使用 USB 适配器。当我有策略时我会交换它们。

多谢。

相关内容