Linux
如何將使用“dd”創建的驅動器映像拆分為每個分區的單獨文件?
我創建了一個故障驅動器的圖像:
dd if=/dev/sde of=/mnt/image001.dd
該驅動器只有兩個分區:
Device Boot Start End Blocks Id System /dev/sde1 * 1 13 102400 7 HPFS/NTFS /dev/sde2 13 60802 488282112 7 HPFS/NTFS
如何將映像 (image001.dd) 拆分為兩個或三個文件(1:MBR;2:分區 1;3:分區 2),以便可以在其中掛載文件系統?
我發現對我不起作用的解決方案是使用
split
創建許多 512K 文件,然後將cat
它們重新組合成三個文件(1:512K,2:105M,3:其餘),但我沒有的磁碟空間。歷史:
我已經將整個映像複製到一個新驅動器,它可以啟動並且大部分都可以工作。似乎 FS 在舊的故障驅動器上已損壞,並
dd
複制了損壞的部分(應該如此),然後我將它們寫入新驅動器。我的解決方案是掛載我複制的 FS,並且只複製文件(使用rsync
或其他東西),這樣我就不會複製壞位。更新1:我試過
dd if=/mnt/image001.dd of=/mnt/image001.part1.dd bs=512 count=204800 skip=1
但mount
抱怨NTFS signature is missing
,所以我認為我沒有做對。
您根本不需要拆分它。
用於
parted
獲取有關分區表的詳細資訊:parted image001.dd
在
parted
,用命令切換到字節單位u
,然後B
。之後,發出命令您將獲得如下所示的輸出(輸出來自實際系統,而不是圖像):
Model: Virtio Block Device (virtblk) Disk /dev/vda: 25165824000B Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 2 1048576B 400556031B 399507456B primary ext4 boot 3 400556032B 21165506559B 20764950528B primary ext4 1 21165506560B 25164775423B 3999268864B primary linux-swap(v1)
您可以使用該
Start
數字作為回送掛載的偏移量:mount -o loop,ro,offset=400556032 image001.dd /mnt/rescue
將第三個分區掛載在
/mnt/rescue
.