答案1
在此发布此内容只是为了澄清@Abhik Bose 的答案。
使用 USB 驱动器对 iso 进行映像后,dd
磁盘开头有多个分区表。
v0.28 以下的 gparted 版本存在 ISO 分区映射错误,该错误修复导致了上述另一个问题。
因此,使用旧版本的 gparted(v0.28 之前),例如 v0.25,将解决此问题。但有更好的方法来做到这一点。
将 USB 连接到另一台 Linux 计算机(例如另一台 Kali 或 Ubuntu VM)检查其名称lsblk
然后查看所有分区表wipefs /dev/sdb
正如我们所看到的,在驱动器的开头还有另外两个分区表签名:gpt和dos(我猜它与mbr相同)
做:
wipefs -o 0x8001 /dev/sdX # X - letter of the drive
这将通过外科手术在 ISO 签名的 5 个字节上写入零,而不会触及 GPT(或者至少是这样)这个帖子说...)
现在运行gparted /dev/sdb
并查看预期结果:
就是这样。
答案2
请参见gparted 仅在 Fedora 27 中未检测到 USB 驱动器分区寻求开发商的解释gparted
。我有类似的问题并询问。
后来我发现新版本的软件也有这个问题。因此您可以卸载当前安装的版本gparted
。下载编译源代码gparted 25
并使用它。我正在使用gparted 25
并且它在您提到的情况下运行良好。
笔记您可能需要gparted 25
以 root 身份运行仅终端。如果您想从与软件对应的 GUI 编辑菜单按钮启动它,请选择在终端中运行选项并sudo
在启动命令之前附加。
答案3
您可以从命令行使用 gparted 访问持久分区,但不能使用以下命令更改它
gparted /dev/sdb3
否则,您可以从命令行更改文件系统,就像创建文件系统一样
mkfs.exfat -L myPartitionName /dev/sdb3
最好从您用来创建实时 USB 的发行版执行此操作,而不是从 Kali 的实时启动中执行此操作,因为持久分区包含您可能已安装的任何更新或软件包。
编辑
显而易见的一点
由于将dd'
iso 映像复制到 USB,因此它还会复制系统将其识别为 iso 映像并正确启动所需的签名。正如您所发现的,如果没有此信息,它将无法启动。
有趣的一点
尽管您在创建时修改了分区表/dev/sdb3
,并且可以检测并挂载您创建的持久性 FS,但gparted
出于给定的原因,您仍将其视为单个 iso 卷这里。
作为错误 771244 的一部分,在 GParted 0.28.0 中更改了在分区表之前报告整个磁盘文件系统的行为。这样一来,内核报告的嵌入在整个磁盘上的 ISO 映像中的分区就不会显示,因此用户不会尝试操纵那些 ISO 嵌入分区,这是不可能的。
答案4
这只是对@Abhik Bose 和@Drew 答案的补充。
使用wipefs删除ISO9660签名后,USB将不再可启动。
使用中提供的命令这篇关于撤消wifs的文章和ISO9660 魔字节 [43 44 30 30 31]
我能够使用以下命令恢复 USB 的可启动属性:
echo -en '\x43\x44\x30\x30\x31' | sudo dd of=/dev/sdb bs=1 conv=notrunc seek=$((0x8001))
sudo partprobe /dev/sdb
这将有效地反转wipefs操作,将USB返回到其原始状态。