我有一台配备 500GB 内置硬盘和外置 500GB USB 硬盘的笔记本电脑。
我在 Windows 8.1 机器上使用 Linux Live CD 启动。
我的目标是克隆 MBR、分区 1(350mb) 和分区 2(40GB)
我将用来克隆的命令/dev/sda主引导记录是
dd if=/dev/sda of=/dev/sdb bs=512 count=1
以下是我们的来源/dev/sda看起来像通过fdisk -l
Disk /dev/sda: 465.9 GiB, 500277790720 bytes, 977105060 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 718847 358400 7 HPFS/NTFS/exFAT
/dev/sda2 718848 81922047 40601600 7 HPFS/NTFS/exFAT
下面是我们的目标驱动器的样子
dd
运行cmd之前
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 488386584 sectors
Units: sectors of 1 * 1024 = 1024 bytes
Sector size (logical/physical): 1024 bytes / 1024 bytes
I/O size (minimum/optimal): 1024 bytes / 1024 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7
dd
运行cmd后
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 488386584 sectors
Units: sectors of 1 * 1024 = 1024 bytes
Sector size (logical/physical): 1024 bytes / 1024 bytes
I/O size (minimum/optimal): 1024 bytes / 1024 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 718847 716800 7 HPFS/NTFS/exFAT
/dev/sdb2 718848 81922047 81203200 7 HPFS/NTFS/exFAT
我们可以看到,运行 cmd 后,两个分区的目标块大小都是源块大小分区的两倍dd
。
什么会导致这种情况?
把这个问题放在一边,我继续尝试dd
克隆我的硬盘
dd if=/dev/sda1 of=/dev/sdb1 bs=4096
dd if=/dev/sda2 of=/dev/sdb2 bs=4096
然而,这无法启动 - 我想知道是否由于双倍大小的数据会产生其他不良影响。
BIOS 确实将外部硬盘显示为与内部硬盘同名的启动选项,但在选择它作为启动磁盘后它只是挂起(没有返回错误)
答案1
该dd
命令按照要求准确复制了 512 个字节。
您感到困惑的主要根源在于/dev/sda
逻辑扇区大小为 512 字节,而/dev/sdb
扇区大小为 1024 字节。
分区在其他方面看起来是相同的。
也不会MBR
影响分区上文件使用的大小。它无法启动的事实可能更多地反映了它MBR
不适合该驱动器的配置。
要使其可引导,请安装它,在其上安装所需的安装点,例如/dev/
、/proc
、/sys
,然后使用 chroot 运行引导加载程序。
更新:正如 @sourcejedi 所指出的,分区表在 上已损坏/dev/sdb
。这显然是MBR
保存分区信息的副本的结果。
如果您没有更改文件系统上的任何内容并且知道原始配置(我怀疑该配置与其他驱动器匹配),只需删除并重新创建分区即可解决此问题。