弄乱 dd 后无法擦除分区表

弄乱 dd 后无法擦除分区表

背景:
今天我试图弄清楚如何使用可写文件系统安装 NixOS live usb(dd-ing iso 会导致只读 iso9660 fs)。

我将 USB 分成两个分区,一个是空的,一个格式化为 ext4。我跑了类似的东西dd if=(nixos image).iso of=/dev/sdb1。然后我意识到它可能不起作用,所以我打开 gparted 删除所有内容并尝试其他方法。

在这里,我注意到发生了一些奇怪的事情:gparted 说我的 32GB 随身碟只有大约 1.4GB(第一个分区的大小)。似乎/dev/sdb和现在是一样的事情/dev/sdb1在此输入图像描述

磁盘实用程序看到第二个分区,但无法删除它或格式化整个驱动器。在此输入图像描述 在此输入图像描述

我的 Windows 机器根本看不到 U 盘。

我也尝试过wipefs /dev/sdb

如何使我的 U 盘恢复到可用状态?

更新:

重新启动后问题就消失了(现在我很尴尬我没有早点尝试这个)。我找不到重现它的方法。我忘记提及的一件事是,我还将 iso 安装为循环设备,但后来卸载了它。正如您在屏幕截图中看到的,gnome-disks循环设备仍然存在,但我不确定它是指向 iso 还是指向 pendrive 上的第一个分区。那么也许循环安装以某种方式干扰了访问/dev/sdb

为了澄清一下,我尝试将整个驱动器以及第一个兆字节清零。这不起作用,/dev/sdb因为不是指出它应该做什么(至少这是我的解释)。

答案1

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

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

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

完成 dd 命令后,您应该能够通过 gparted 访问您的设备。

要不然尝试下面的命令

wipefs -a /dev/your-device

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

相关内容