我刚刚将dd
Kali Linux ISO 文件放置到我的 USB 上。然后我尝试通过 USB 安装 Kali Linux,但由于安装映像已损坏而无法安装。我重新启动到我的另一个 Linux 操作系统 (antergos) 并dd
再次尝试使用。我的 USB 记忆棒现在显示大小为 32KB,但 fdisk 无法检测到它。
它最初是一个 8GB USB 2.0 棒。
为了覆盖 MBR 和分区表,我尝试了以下方法但没有成功:
dd if=/dev/zero of=/dev/sdx bs=512 count=1
答案1
您的 U 盘出现故障。
某些驱动器在发生故障时会返回不同的大小,尽管我只读过有关“SSD”的内容,它具有更复杂的控制器。
为了仔细检查整个驱动器的大小,我将使用lsblk
或查看内核日志dmesg
。 (分区大小之内该设备可能完全是假的,具体取决于分区表;您可以在没有硬件故障的情况下实现这一点)。
如果大小合适,您可以尝试通过多种方法恢复重要数据。但听起来您并不需要这样做 - 您仍然可以访问 Kali ISO 文件。
简单的 USB 记忆棒没有设计任何额外的硬件诊断功能[*]。一旦您知道硬件出现故障,就这样了。整个驱动器的大小出现问题,或者驱动器未返回您写入的数据(由 的故障表明fdisk
),都足以表明此类故障。
[*] 我认为它们甚至不是为闪存存储的最大预期重写周期成为问题的用途而设计的。它们更有可能损坏或丢失。
答案2
当虚拟磁盘几何结构被错误检测到。在继续之前首先尝试重新启动。
警告 :我认为这不会对您的 USB 密钥有害,但如果您不想冒任何风险,请先在 Windows 下测试格式化。
本指南假设您的驾驶方式为/dev/sdb
,请根据您的需要进行调整。
在终端中,搜索dmesg
这样一行的输出sd 5:0:0:0: [sdb] 62545920 512-byte logical blocks: (32.0 GB/29.8 GiB)
这告诉您:
- 扇区数(逻辑块):
62545920
- 扇区大小:
512
字节 - 实际介质尺寸:
32.0 GB/29.8 GiB
现在计算准确的介质大小(以字节为单位):( 62545920 * 512 = 32023511040 bytes = 30540 MiB
29.82GiB)。
然后找到一个有效的 CHS 组合,C * H * S = 62545920
或者如果您感到懒惰,使用 512 字节块大小,这应该可以工作:C=30540
(MiB 中的大小!),H=64
并且S=32
最后,运行sudo fdisk -C 30540 -H 64 -S 32
并编写一个新的分区表来修复。
如果未正确检测到更改,请重新启动。
答案3
我知道这个地方是关于的unix
,但是当我遇到这个问题时,我找到一台windows
机器并使用diskpart
(需要管理员访问权限)。因为当fdisk
失败时,这才有效;也许它会对某人有所帮助。我现在无法尝试这些说明,但
应该 类似于:list disk
,,,,,,,,,,, 。 现在您的 USB 记忆棒大小就可以了(但是当然,您已经丢失了数据)。 我也对在 Linux 上成功实现这一点的等效方法感兴趣。select disk i
clean
create partition primary
format fs=fat32 quick
active
assign
exit
注意:我不确定错误的尺寸是否表明dd
失败。无论如何,不要忘记附加&& sync
到您的dd
命令中。