使用 dd 複製可啟動快閃記憶體後無法掛載複製的快閃記憶體
我正在嘗試將可啟動的 1GB compactflash 複製到第二個 1GB complactflash,但是當我嘗試掛載它時,出現這樣的錯誤,
sudo mount /dev/sdb1 /media/frank/cloned/
frank@ThinkPad2:~$ sudo mount /dev/sdb1 /media/frank/cloned/ mount: /media/frank/cloned: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
我正在使用單個 USB CF 驅動器並交換原始和目標 CF。它似乎正在複製所有內容,甚至複製到 UUID(不確定這是否不好),但我無法安裝複製的 CF 或探索它。以下是我正在採取的步驟。
我正在複製的 CF 是 ext3。當我將卡插入驅動器時,它會自動安裝並顯示為 **/dev/sdb1 安裝在 /media/frank/c44c8412-bf87-4fa4-a6fa-8259aa78bd24 **
我使用命令mkfs.ext3 /dev/sdb1格式化了目標 CF
然後使用dd if=dev/sdb1 of=/home/frank/CFdisk.image從原始 CF 複製
檢查圖像是否良好: mount -o loop CFdisk.image /media/frank/compactflash
然後.. ls /media/frank/compactflash
frank@ThinkPad2:~$ ls /media/frank/compactflash/ bin etc lib mnt proc sbin sys var boot fifos lost+found opt root share tmp vmcores dev home media overlay run srv usr www
所以看起來 CFdisk.image 文件已被正確複製。
然後將目標 CF 放入驅動器,執行lsblk我看到它位於**/dev/sdb1**
使用 dd if=CFdisk.image /dev/sdb1
之後它不會自動掛載。如果我嘗試手動將它掛載到一個目錄, **sudo mount /dev/sdb1 /media/frank/cloned/**然後我得到錯誤….
frank@ThinkPad2:~$ sudo mount /dev/sdb1 /media/frank/cloned/ mount: /media/frank/cloned: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
命令lsblk -f顯示它在系統上複製的 CF 是…
sdb └─sdb1 ext3 c44c8412-bf87-4fa4-a6fa-8259aa78bd24
在原來的CF上 lsblk -f顯示
sdb └─sdb1 ext3 c44c8412-bf87-4fa4-a6fa-8259aa78bd24 311.2M 60% /media/frank/c44c8412-bf87-4fa4-a6fa-8259aa78b
那麼,我做錯了什麼?
如果要複製可引導驅動器,僅複製一個分區是不夠的,您應該複製整個驅動器,包括頭端。您可以
dd
使用源(和目標)作為**/dev/sdx
**(不是/dev/sdx1
複製第一個分區而不是整個驅動器)來做到這一點。但是使用
dd
這種方式是有風險的,因為它會毫無疑問地按照您的指示去做,而且很容易指向錯誤的驅動器並覆蓋有價值的數據。出於這個原因,我建議您使用帶有最終檢查點的複製工具,您可以在其中仔細檢查設置是否正確。當使用 MSDOS 分區表並且目標驅動器比源驅動器“不小一個字節”時,普通複製應該可以工作。如果有 GUID 分區表,GPT,並且有不同的大小,則必須修復驅動器末尾的備份分區表。當您使用mkusb從圖像中複製或提取時,這是自動完成的。否則,您可以
gdisk
在複製後使用它來修復它。您可能會發現以下連結很有幫助,