Mount

使用 dd 複製可啟動快閃記憶體後無法掛載複製的快閃記憶體

  • August 31, 2021

我正在嘗試將可啟動的 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在複製後使用它來修復它。

您可能會發現以下連結很有幫助,

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