Partition

如何將單個分區移動到另一個空驅動器?

  • May 13, 2021

我在驅動器 A 上有一個分區 P1(其中包含我的 Linux 作業系統)。

我剛剛得到一個全新的驅動器 B(比分區 P1 和整個驅動器 A 大)。

我想將分區從驅動器 A 複製到驅動器 B,並可能稍後調整它的大小。

這可以做到dd嗎?我可以輕鬆地在驅動器 B 上創建一個新的分區表,並且只創建cp文件 - 但由於文件系統成本,這似乎可能會稍微慢一些。


Output of `parted --list`:

我想將分區 4 複製到另一個驅動器。

Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                  Flags
1      17.4kB  1049kB  1031kB               BIOS boot partition   bios_grub
2      1049kB  1074MB  1073MB  fat32        EFI System            boot, esp
3      1075MB  183GB   181GB   ext4         Linux filesystem
4      183GB   250GB   67.5GB  ext4         Basic data partition

請忽略對引導驅動器/功能的任何引用(我稍後會擔心) - 使這個問題保持簡潔。

是的,這就是dd目的。假設:

  • sxb是從中複製的驅動器
  • sxc是要復製到的驅動器
  • sxb4是您要從中複製的第二個驅動器上的第四個分區
  • sxc1是您創建的分區大小相等sxb4

做 :

   parted /dev/sxc
   GNU Parted 3.2
   Using /dev/sxc
   Welcome to GNU Parted! Type 'help' to view a list of commands.
   (parted) mklabel GPT
   Warning: The existing disk label on /dev/sxc will be destroyed and all data on this disk will be lost. Do you want to continue?
   Yes/No? Yes
   (parted) mkpart primary 0.0 67.5GB
   (parted) quit

   dd if=/dev/sxb4 of=/dev/sxc1 bs=16M

由於這將複製分區的 UUID,為了更改新分區的 UUID(確保未掛載分區),請執行以下命令:

e2fsck -f /dev/sxc1
tune2fs /dev/sxc1 -U random

如果sxb是舊驅動器並且您希望它有讀取錯誤,請ddrescue改用。

**注意:**眾所周知dddisk destroyer,創建分區表是危險的,不要將確切的命令放在上面,因為網際網路上的一些隨機白痴可能會看到這個問題並複制粘貼 codez而不了解它的作用……

引用自:https://unix.stackexchange.com/questions/483288