Partition

如何使用 DD 從磁碟映像中複製分區?

  • September 5, 2019

我有一個磁碟映像,它是一個“完整”磁碟映像,例如,包含多個分區,我想將其中一個(不是第一個……)複製外部驅動器上的一個分區上,上面有多個分區(我也沒有將它複製到磁碟的第一個分區…)

FDisk’ing 圖像給出了這個:

# fdisk -l 2013-02-09-wheezy-raspbian.img

磁碟 2013-02-09-wheezy-raspbian.img:1939 MB,1939865600 字節
255個磁頭,63個扇區/磁軌,235個柱面,總共3788800個扇區
單位 = 1 * 512 = 512 字節的扇區
扇區大小(邏輯/物理):512 字節/512 字節
I/O 大小(最小/最佳):512 字節/512 字節
磁碟標識符:0x00014d34

設備引導開始結束塊 ID 系統
2013-02-09-wheezy-raspbian.img1 8192 122879 57344 c W95 FAT32 (LBA)
2013-02-09-wheezy-raspbian.img2 122880 3788799 1832960 83 Linux
#

塊設備如下所示:

# fdisk -l /dev/sdc

磁碟 /dev/sdc:8014 MB,8014266368 字節
247個磁頭,62個扇區/磁軌,1022個柱面,總共15652864個扇區
單位 = 1 * 512 = 512 字節的扇區
扇區大小(邏輯/物理):512 字節/512 字節
I/O 大小(最小/最佳):512 字節/512 字節
磁碟標識符:0x00000000

設備引導開始結束塊 ID 系統
/dev/sdc1 2048 131071 64512 e W95 FAT16 (LBA)
/dev/sdc2 131072 15652863 7760896 83 Linux
#

我希望映像的第二個分區替換塊設備的第二個分區。不要擔心尾隨損壞的可用空間,我將使用 GParted 來清理它,無論如何我需要它來做其他事情。

# losetup --find --show --partscan --read-only 2013-02-09-wheezy-raspbian.img
/dev/loop7
# dd if=/dev/loop7p2 of=/dev/narnia bs=1M

如果--partscan不起作用,您還可以使用以下方法之一:

# partx -a /dev/loop7
# kpartx /dev/loop7

或類似的分區映射解決方案。

您可能應該先安裝它,看看它是否正確或什麼。

當然,您也可以讀取 fdisk 輸出並直接給出ddskip=131072任何內容,即使其跳過那麼多輸入塊,以便從分區所在的位置開始讀取;但最好看到帶有循環設備的實際分區。

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