使用 dd 克隆可启动紧凑型闪存后无法安装克隆的紧凑型闪存

使用 dd 克隆可启动紧凑型闪存后无法安装克隆的紧凑型闪存

我正在尝试将可启动的 1GB 紧凑型闪存克隆到第二个 1GB 紧凑型闪存,但是当我尝试安装它时,出现如下错误,

sudo 安装 /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 和目标 CF。它似乎正在复制所有内容,甚至复制到 UUID(不确定这是否不好),但我无法安装克隆的 CF,或探索它。以下是我正在采取的步骤。

我克隆的CF是ext3。当我将卡插入驱动器时,它会自动安装并显示为 **/dev/sdb1 安装在 /media/frank/c44c8412-bf87-4fa4-a6fa-8259aa78bd24 **

我用命令格式化了目标CFmkfs.ext3 /dev/sdb1

然后使用从原始 CF 复制dd if=dev/sdb1 of=/home/frank/CFdisk.image

要检查图像是否良好: 安装 -o 循环 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

使用ddif=CFdisk.image /dev/sdb1

之后就不会自动挂载了。如果我尝试手动将其安装到目录中, sudo 安装 /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

那么,我做错了什么?

答案1

如果要克隆可启动驱动器,克隆一个分区是不够的,还应该克隆整个驱动器,包括头端。您可以使用dd源(和目标)作为/dev/sdx(不是/dev/sdx1克隆第一个分区,也不是整个驱动器)。

但使用dd这种方式是有风险的,因为它会毫无疑问地执行您告诉它的操作,并且很容易指向错误的驱动器并覆盖有价值的数据。因此,我建议您使用带有最终检查点的克隆工具,您可以在其中仔细检查设置是否正确。

当使用 MSDOS 分区表并且目标驱动器比源驱动器“不小一个字节”时,纯克隆应该可以工作。如果有GUID分区表、GPT,并且大小不同,则必须修复驱动器末尾的备份分区表。当您使用时,这是自动完成的姆库斯布从图像中克隆或提取。否则,您可以gdisk在克隆后修复它。

您可能会发现以下链接很有帮助,

相关内容