无法删除USB驱动器分区(块大小错误)


123

我无法格式化/删除Sandisk Cruzer Force 32 GB USB驱动器上的分区。删除任何分区时都会收到以下错误。

`Error deleting partition /dev/sdd2: Command-line `parted --script "/dev/sdd" "rm 2"' exited with non-zero exit status 1: Warning: The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes.
(udisks-error-quark, 0)

有什么办法可以完全格式化我的所有驱动器并将其变成一个大分区?我还没有找到针对此特定错误的解决方案,所以我想我实际上已经询问过一次


我一直在使用磁盘。GParted似乎无法检测/显示我的USB驱动器。
Nectar

4
您是否尝试过先将其擦拭干净dd if=/dev/zero of=/dev/sdd bs=2048?请确保仅使用/ dev / sdd,这是什么意思!
丹尼尔(Daniel)

太棒了,效果很好。我会记住这些命令:)
Nectar

Answers:


173

您描述的问题是由低级设备工具(如dd)将错误大小的块直接写入设备引起的。

要解决此问题,您需要将设备块重写为适当的大小。这可以用dd完成。 运行命令之前,请仔细检查您的输出设备

sudo dd if=/dev/zero of=/dev/sdd bs=2048 count=32

完成dd命令后,您应该可以通过gparted访问设备。


听起来不错,但仍然对我不起作用:(有什么办法可以解决吗?
Eric Fossum

7
我能够在不重写整个设备的情况下解决此错误,我只是count=32在命令末尾添加,然后运行dd。这种方式要快得多;-)
巴西的Guy

5
@Lee它只会写入32个块(在这种情况下为32个2048字节或68 KB的块),而不是写入设备上的每个字节。我相信只要覆盖分区表或设备开头的等效区域就足够了。我确定要指定32个块。
那位巴西佬

1
工作,但我不得不重新启动计算机,以使其在使用命令行后能够正常工作。
Danyl Bekhoucha

2
@gooseberry我认为“以错误的大小写块”是不可能的。唯一的区别应该是速度(如果是闪存,则是磨损)。该命令可能有效,但说明似乎不正确。
马丁

26

您可以随时尝试使用 fdisk

打开一个终端(Ctl+ ALt+ t)并输入

sudo fdisk /dev/sdy

其中/dev/sdy=闪存驱动器的设备文件。一旦你fdisk打开,类型p列出分区表,一旦你知道它的位置,你可以用d #将其删除。(#=分区;ExAMPLE d 1d 2w将分区表写回到磁盘并q退出,m以寻求帮助)

如果fdisk失败,那么我将使用dd (请小心使用它,因为它没有任何原因没有获得其昵称)

sudo dd if=/dev/zero of=/dev/sdy bs=512 count=1

当然/dev/sdy应该用您的闪存驱动器的实际设备代替,它将为您做到这一点。您可以增加count = number以将零写入更多磁盘,或完全省略它以覆盖整个磁盘。不用说,如果这样做,您将无法挽回地丢失可能存储在磁盘上的所有文件。


2
工作完美。做了sudo fdisk /dev/sda,然后在提示符下键入d了几次,依次删除了每个分区,然后w写下了我的更改。然后取出USB驱动器,再放回去,并使用磁盘管理器创建Fat32分区。
罗宾·温斯洛

什么是dd“绰号?
Kolob峡谷

它代表dick death恶魔杀手吗?
Kolob峡谷

真好!不需要恶魔杀手:|
Kolob峡谷

显然,它的绰号是德克斯特实验室的德克斯特姐姐Dee Dee,后者随机按下任何按钮,造成各种混乱
ECV

12
wipefs -a /dev/your-device

它将擦除磁盘上的所有分区


2
对于无法格式化USB驱动器的情况,此命令对我有帮助。选择设备路径时请小心。再检查一遍!
巴赫蒂奥尔

1
更新了最有效的答案
knocte

4

dd功能强大但危险

dd是一个非常强大但又非常危险的工具。它可以很好地擦除USB驱动器的第一部分以删除任何数据,这可能会使您要使用的工具感到困惑。但是dd您告诉它执行的操作没有问题吗,因此,如果您告诉它擦除家庭照片...并且轻微的键入错误就足以覆盖要覆盖的另一个驱动器而不是USB驱动器。

是的,dd如果您知道自己在做什么,则可以使用,但是请检查并仔细检查命令行dd是否正确。

mkusb在dd周围绑上安全带

mkusb提供了带有检查点的图形用户界面,以帮助您识别目标驱动器并再次检查您是否擦除了正确的驱动器。

有一些菜单选项可以擦除通常足够的第一个兆字节(实际上是兆字节),或者擦除整个驱动器,这是一个缓慢的过程,并且仅在特殊情况下有用,例如当Pendrive变慢时(例如小于原来速度的一半。)

在此处输入图片说明

有关如何安装和使用mkusb版本12别名mkusb-dus的详细信息,请参见这些链接。

help.ubuntu.com/community/mkusb

mkUSB-quick-start-manual.pdf


3

此问题与基于UEFI的可引导磁盘有关。我经常创建可启动的USB磁盘,然后需要它进行存储,但无法删除分区。

下面的这个命令使分区表失效,因此我接下来可以对USB磁盘进行任何操作。

sudo sgdisk --zap-all /dev/???

替换??? 带有与要清除的USB磁盘相对应的适当标识符(例如sdc)。可以通过-找到

sudo parted -l

要么

sudo fdisk -l

要么

使用磁盘实用程序。


这是最好的答案。另请参见1065719/256054
朗尼·贝斯特

2

使用fdisk命令删除分区并再次创建。

运行命令:

sudo fdisk /dev/sdxY  

(在我的情况下,分区为“ sdb1”-用正确的名称替换)

命令(m寻求帮助):d要删除分区,请选择1或2。

键入w以保存并退出。

现在弹出USB并再次连接以检查更改。

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.