如何查看USB记忆棒是否具有MBR?


25

我有一个应该可以引导的USB记忆棒,但计算机无法引导它。我怀疑没有MBR(主引导记录)。

如何测试这种情况,最好从Linux中的命令行进行测试。

Answers:


23

您可以使用dd和检查此file,例如/dev/sda

root@rapunzel:~# dd if=/dev/sda of=/tmp/test count=1 bs=512
1+0 records in
1+0 records out
512 bytes (512 B) copied, 6.1994e-05 s, 8.3 MB/s

然后,您便拥有了bootsector,/tmp/test可以询问它的想法:

root@rapunzel:~# file /tmp/test
/tmp/test: x86 boot sector; partition 1: ID=0x7, starthead 32, startsector 2048, 1850621692 sectors; partition 2: ID=0x17, starthead 254, startsector 2922062850, 8209215 sectors; partition 3: ID=0xfd, starthead 254, startsector 1850623740, 1071439110 sectors, code offset 0x63, OEM-ID "      м", Bytes/sector 190, sectors/cluster 124, reserved sectors 191, FATs 6, root entries 185, sectors 64514 (volumes <=32 MB) , Media descriptor 0xf3, sectors/FAT 20644, heads 6, hidden sectors 309755, sectors 2147991229 (volumes > 32 MB) , physical drive 0x7e, dos < 4.0 BootSector (0x0)

您也可以使用 hexdump -C


30
除了使用所有dd舞蹈之外,只需使用即可file -s /dev/sda
CesarB

如果/dev/sdb1: x86 boot sector没有其他说明,该怎么办?就我而言,它不会启动...
Raketenolli

可能是gpt或损坏的磁盘,或使用DD采集的样本太短。也许您可以幸运地猜出分区表的含义,但我希望您有一个备份。
Flexo

我也取了2048个字节,结果相同。拇指驱动器可能根本不是用于引导的。我将使用过去已证明有效的另一种方法。
Raketenolli

dd在我的情况下,将图像复制到USB驱动器of=/dev/sdb。不适用于/dev/sdb1
Raketenolli

21

因为CesarB没有发布他的评论作为答案:

jcomeau@aspire:~$ sudo file -s /dev/sdb
[sudo] password for jcomeau: 
/dev/sdb: DOS floppy 1440k, DOS/MBR hard disk boot sector

3

您可以使用TestDisk(免费,开源和跨平台)来执行此操作。它可以扫描您想要的任何驱动器,并分析分区布局(或者您可以指定它,它将尝试以您选择的布局样式搜索分区)。TestDisk还可以使用您选择的磁盘覆盖MBR。


TestDisk似乎非常有帮助。但是,我没有找到一种随其收集信息的方法,也没有找到恢复/修复某些东西的方法。
Mads Skjern'9
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.