Dd

使用 dd 創建具有小分區的驅動器映像

  • April 30, 2020

我有一個帶有一個分區的可啟動 USB 驅動器。驅動器為 16GB,分區為 32MB。我想創建驅動器的 ISO(包括引導扇區)。使用 dd,我可以創建分區的映像(這將是 32MB 大,但不是我想要的,因為它無法啟動)或者我可以創建整個驅動器的映像,這將是一個巨大的浪費時間和磁碟空間。我嘗試使用 clonezilla,但無法從 clonezilla 映像創建 ISO。

如何創建驅動器的可引導映像,而無需對驅動器的整個未使用部分進行映像?PS:只要鏡像是可啟動的並且可以在virtualbox中使用,我真的不在乎它是否是ISO。

您要做的是將分區表與分區一起複製。您可以通過僅將驅動器複製到分區末尾來實現這一點(該表位於第一個扇區中)。

首先,檢查驅動器的確切幾何形狀。例如分開:

# parted /dev/sdb
GNU Parted 3.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit B
(parted) print
Model: blah
Disk /dev/sdb: 1000204886016B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start     End             Size          File system   Name   Flags
1      2048B     33556480B       33554432B     fat32         Boot

我將單位切換到字節以獲取分區末端的確切位置。現在有了dd,複製適量的數據就很簡單了。

# dd if=/dev/sdb of=drive.img iflag=count_bytes bs=32k count=33556480

那應該這樣做。您將在開始時獲得分區以及分區表。注意使用,count_bytes所以我們不必使用塊大小的倍數(所以我們可以使用更大的大小,只要記憶體可以容納它就會更快)。

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