我的 USB 驱动器完全搞乱了。有可能恢复吗?

我的 USB 驱动器完全搞乱了。有可能恢复吗?

最初它是一个空的 4 GB FAT32 USB 记忆棒。

然后我通过dd插入install63.fsUSB 安装了 OpenBSD 6.3。

最后,我尝试使用两台不同笔记本电脑上的 Alpine Linux 和 OpenBSD 中的许多命令(例如 dd、mkfs、fsck、fdisk)来恢复它的原始状态,结果就是这样。

$ lsblk
sdb      8:16   1   3.8G  0 disk
├─sdb1   8:17   1   480K  0 part
└─sdb4   8:20   1 359.5M  0 part

$ fdisk -l /dev/sdb
Disk /dev/sdb: 512 B, 512 bytes, 1 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

在最近的fdisk一次会议中(在我跑步之后dd if=/dev/zero of=/dev/sdb bs=512 count=1)它说

Disk /dev/sdb: 512 B, 512 bytes, 1 sectors
Geometry: 255 heads, 63 sectors/track, 0 cylinders
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8f345c6d

是否可以恢复它?如果可以,我应该输入什么命令来执行此操作?

答案1

请注意,棒的当前容量似乎是1 个部门。这可能表明棍子已经磨损,应该更换。另一种选择可能是棒的内部控制器发生故障并且正在报告无意义的信息。不幸的是,这意味着同样的事情:这根棍子可能无法使用。

一个新的基本型 4 GB USB 记忆棒目前的价格似乎约为 5 欧元,因此应该不会造成太大损失。

但是,如果您愿意尝试恢复它,显然有俄罗斯开发的软件,称为芯片天才它可能能够识别该棒上使用的控制器芯片。下一步将尝试通过 Google 搜索有关该特定控制器芯片的更多信息,以及任何可能的芯片供应商特定工具以进行进一步诊断。

答案2

看来你没事。您的 USB 驱动器上有两个分区。您只需在 /dev/sdb1 上添加一个适当的 MBR,假设您执行了 mkfs.vfat /dev/sdb4,它将识别 /dev/sdb4 上的 fat32 分区。

首先,您还记得您的 USB 驱动器使用的分区方案是 GPT 还是老式 MBR?如果 fdisk 是 gpt,您需要确保使用的是 gpt 版本。做这个:

blkid -s PTTYPE -o value /dev/sdb

它会告诉你。如果只是 MBR,那就太好了。您需要做的就是将 syslinux mbr 添加到该驱动器上。安装 syslinux 软件包。

对于 MBR 分区表,请确保使用 fdisk 将引导分区在分区表中标记为“活动”(设置“引导”标志)。它应该看起来像这样:

Device Boot         Start         End   Blocks      Id  System
/dev/sdb1   *        2048      104447   51200       83  Linux 
/dev/sdb4          104448   625142447   312519000   83  Linux

然后安装 syslinux 软件包(如果尚未安装)并添加提供的 mbr:

# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdb

如果您有 GPT,请确保使用 gdisk 为 /boot 分区设置属性的第 2 位。换句话说,必须设置“legacy_boot”标志。使用 sgdisk 的命令是:

sgdisk /dev/sdb --attributes=1:set:2

这将在 /dev/sda 的分区 1 上切换传统 BIOS 可启动属性。去检查:

# sgdisk /dev/sdb --attributes=1:show

1:2:1 (legacy BIOS bootable)

然后安装mbr:

# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sdb

答案3

我在安装 OpenBSD 时总是“丢”笔。

能够在其他操作系统中对其进行重新分区/格式化,就像删除第一个扇区一样简单,如下所示:

sudo dd if=/dev/zero of=/dev/sdb bs=1 count=1

相关内容