我在驱动器 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
请忽略任何对启动驱动器/功能的引用(我稍后会担心) - 让这个问题保持简洁。
答案1
是的,这就是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
。
笔记:正如dd
所谓的d
isk d
estroyer 一样,创建分区表是危险的,不要在上面输入确切的命令,因为互联网上的一些随机白痴可能会看到这个问题并复制粘贴代码不明白它的作用是什么……
答案2
GParted 可以创建和操作分区。如果您使用的是 Linux 操作系统,那么您还可以使用 GParted 完全在图形用户界面中实现此目标。就我而言,一个驱动器上有几个分区,我想将其中一些分区备份到另一个驱动器。
我将驱动器 1 和驱动器 2 连接到运行 Linux 操作系统的 PC。驱动器 2 的整个磁盘上只有一个大分区。我使用 Gparted 调整了该分区的大小以释放空间,足以容纳我想要备份的驱动器 1 中的所有分区。然后我从现在未分配的空间创建了一个“扩展”分区。
然后使用 GParted,我选择了驱动器 1,然后单击要复制的分区...“分区菜单”>“复制”,然后切换到驱动器 2,然后突出显示扩展分区,然后单击“分区菜单”>“粘贴”。我对所有想要备份到驱动器 2 上的“扩展分区”的分区重复了此操作。