USB 闪存驱动器分区问题

USB 闪存驱动器分区问题

Xubuntu 14.04.3,USB 闪存驱动器 4GB。使用 Linux Mint 17.2 MATE 中的标准闪存驱动器写入工具后,我安装了 Xubuntu,但当我决定格式化闪存驱动器时,出现了以下信息:

警告:/dev/sdb 包含 GPT 签名,表明它有一个 GPT 表。但是,它没有有效的伪造 msdos 分区表,而它应该有。也许它被损坏了——可能是由不理解 GPT 分区表的程序损坏的。或者也许您删除了 GPT 表,现在正在使用 msdos 分区表。这是 GPT 分区表吗?

遵循以下说明:

Open a Terminal and run sudo gdisk /dev/sda
It is likely that both MBR and GPT will be found and asks you which one to use - the choice is irrelavant.
Type x for the next command because well, you're doing expert stuff
Type z to zap the GPT data
Type y to proceed destroying GPT data
Type n in order to not lose MBR data

我懂了:

sudo fdisk -l

Disk /dev/sda: 400.1 GB, 400088457216 bytes
240 heads, 63 sectors/track, 51681 cylinders, total 781422768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00087d88

 Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2046   124999679    62498817    5  Extended
/dev/sda2       124999680   781422591   328211456   83  Linux
/dev/sda5            2048     1953791      975872   82  Linux swap / Solaris
/dev/sda6         1955840    45127714    21585937+  83  Linux
/dev/sda7        45129728   124999679    39934976   83  Linux
Disk /dev/sdb: 3926 MB, 3926949888 bytes
255 heads, 63 sectors/track, 477 cylinders, total 7669824 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x53c3a606

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           0     1943551      971776    0  Empty
/dev/sdb2         1935736     1940279        2272    1  FAT12

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb1'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb1: 995 MB, 995098624 bytes
255 heads, 63 sectors/track, 120 cylinders, total 1943552 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x53c3a606

 Device Boot      Start         End      Blocks   Id  System
/dev/sdb1p1   *           0     1943551      971776    0  Empty
/dev/sdb1p2         1935736     1940279        2272    1  FAT12

和这个:

df
/dev/sdb1         971776    971776         0 100% /media/username/Xubuntu 14.04.3 LTS amd64
/dev/sdb2           2248         0      2248   0% /media/username/Xubuntu 14.04.3 LTS amd641

请帮助将闪存驱动器恢复到工作状态。PS:抱歉我的英语不好。

答案1

修复问题: sudo dd if=/dev/zero of=/dev/sdb bs=1M count=20 ; sync

下一步:GParted--->设备--->创建分区表--->选择 msdos

答案2

根据您创建它们的方式,带有 Ubuntu(或其他 Linux 发行版)安装程序的 USB 闪存驱动器可以使用一种弗兰肯斯坦的怪物分区表。您可以使用dd或其他工具将新映像写入磁盘,从而重新使用该磁盘。如果您想将磁盘用于其他目的,或者您使用的工具出现故障,则必须完全擦除分区表。一种相对简单的方法是使用sgdisk

sudo sgdisk -Z /dev/sdc

使用该命令时要小心!稍有不慎就可能严重损坏您的硬盘!特别注意磁盘设备(/dev/sdc在此示例中)。

此示例将擦除 上的 GUID 分区表 (GPT) /dev/sdc。更改/dev/sdc为适当的设备。(由于 MBR 的关键数据结构占用了 GPT 所消耗空间的子集,因此此命令还将擦除 MBR 数据。)

请注意,/dev/sdb1在您的示例中, 不是磁盘设备;它是一个分区。Linux 中的整个磁盘设备名称通常采用 的形式/dev/sdx,其中x是字母。添加数字(如 )/dev/sdb1表示引用的是分区。

像 user413594 的回答中那样,擦除磁盘的前 20MiB 可能会解决问题;但这既会擦除比必要更多的数据,又不会不是如果磁盘使用(或曾经使用过)GPT,则擦除备份分区表。如果任何磁盘实用程序查找并找到这些旧数据,则无法擦除备份 GPT 数据可能会导致日后混乱。

清除旧分区表后,您可以使用任何您喜欢的工具(gdisk、、、GParted 等)来创建新的分区表。根据您使用的工具,您可能需要使用parted或相关工具在您创建的分区上创建新的文件系统。fdiskmkfs

答案3

对于这些类型的操作,请使用 wipefs。

https://manpages.courier-mta.org/htmlman8/wipefs.8.html

wipefs 可以从指定的设备中删除文件系统、raid 或分区表签名(魔术字符串),以使 libblkid 无法看到这些签名。wipefs 不会从设备中删除文件系统本身或任何其他数据。

wipefs -a /dev/sdX

相关内容