我在将 USB 闪存插入某台故障计算机后意外丢失了分区表。
此闪存testdisk
找不到任何内容,并显示Partition sector doesn't have the endmark 0xAA55
。并且gdisk
找不到任何分区表。
但是我有两块这个型号的闪存,并且没有更改它们的分区。所以我检查了第二块闪存,发现它有第一个单独的主 FAT32 分区,从 128 扇区开始(!)。
所以我的想法是:使用一些低级工具重新创建 MBR 分区表,而不对其进行格式化。
我应该使用哪个工具?
答案1
我发现只有一个应用程序能够设置太小的起始扇区值。
它被命名sfdisk
(来自utils-linux
包,通常是预先安装的)。
所需操作的语法如下:
$ sudo sfdisk /dev/sdX
>>> 128,,0xb
>>> write
在哪里
128
是起始扇区(后跟逗号,
);- 没有符号表示自动调整大小(后跟逗号
,
); 0xb
W95 FAT32
是分区类型的简称。
按照帮助中的格式操作(或参阅man sfdisk
):
<start> Beginning of the partition in sectors, or bytes if specified in the format <number>{K,M,G,T,P,E,Z,Y}. The default is the first free space. <size> Size of the partition in sectors, or bytes if specified in the format <number>{K,M,G,T,P,E,Z,Y}. The default is all available space. <type> The partition type. Default is a Linux data partition. MBR: hex or L,S,E,X shortcuts. GPT: UUID or L,S,H shortcuts. ```
最后我要求系统重新读取更改后的分区表:
$ sudo partprobe
注意:其他工具如cfdisk
和fdisk
允许将起始扇区设置为> = 2048。