我有一个原始磁盘文件如下
$fdisk -l Monterey.img
Disk Monterey.img: 14 GiB, 15032385536 bytes, 29360128 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
Disklabel type: gpt
Disk identifier: B0853EBC-902A-41B6-8BEB-C533A09C0376
Device Start End Sectors Size Type
Monterey.img1 40 409639 409600 200M EFI System
Monterey.img2 409640 29097943 28688304 13,7G Apple HFS/HFS+
它有 2 个分区,第一个用于 EFI(200MB),第二个用于 MacOS 安装程序数据
我有一个 SSD 磁盘(GUIID 类型格式化)
~$ lsblk
sda 8:0 0 447,1G 0 disk
├─sda1 8:1 0 190M 0 part
├─sda2 8:2 0 152,6G 0 part /mnt/sda2
├─sda3 8:3 0 96M 0 part
├─sda4 8:4 0 9,6G 0 part
├─sda5 8:5 0 15,5G 0 part
├─sda6 8:6 0 15,5G 0 part
├─sda7 8:7 0 156,3G 0 part
└─sda8 8:8 0 97G 0 part /media/minh/M2
我想将 Monterey.img 中的第二个分区克隆到 sda6(内部 SSD 的物理分区),
我曾尝试过
$sudo dd if=Monterey.img of=/dev/sda6
29360128+0 records in
29360128+0 records out
15032385536 bytes (15 GB, 14 GiB) copied, 253,909 s, 59,2 MB/s
但结果报告未知类型,而其他 HFS+ 分区可见且可访问。
结果磁盘:
如果源磁盘文件类型为DMG,则可以通过DMG2IMG命令进行克隆,具体如下:
$sudo dmg2img -p 2 BaseSystem.dmg /dev/sda6
对于原始 img 类型,我该如何做到这一点?
答案1
losetup
+dd
可以做到。
1. 找到第一个未使用的循环设备
losetup -f
结果例如:
/dev/loop0
2. 附加Monterey.img
到loop0
losetup /dev/loop0 Monterey.img
partprobe /dev/loop0
lsblk
3. 克隆
dd if=/dev/loop0p2 of=/dev/sda6