如何将 qemu 原始磁盘文件的特定分区克隆到物理分区

如何将 qemu 原始磁盘文件的特定分区克隆到物理分区

我有一个原始磁盘文件如下

$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.imgloop0

losetup /dev/loop0 Monterey.img
partprobe /dev/loop0
lsblk

3. 克隆

dd if=/dev/loop0p2 of=/dev/sda6

相关内容