![双分区可启动USB](https://linux22.com/image/1471431/%E5%8F%8C%E5%88%86%E5%8C%BA%E5%8F%AF%E5%90%AF%E5%8A%A8USB.png)
看完之后关于 2 分区实时 USB 驱动器的 AskUbuntu 问题,有关对可启动 USB 驱动器进行分区的 StackExchange 问题,Ubuntu 论坛上有带分区的可启动 USB 驱动器以及我过去两天花费的许多其他资源,但完全没能创造出我想要的东西。
我刚买了一个 32 GB 的闪存驱动器。我希望将此闪存驱动器变成一个多功能工具,用于修复我可能遇到的任何计算机问题,从打开 Word 文档到恢复丢失的密码。我的计划是在驱动器上放置两个分区:
- 一个 28 GB 的数据分区,可容纳多个可移植程序(Open Office、GIMP、十六进制编辑器等)
- 安装了 Kali Linux 的 4 GB 分区
我尝试使用 fdisk、gdisk(GPT fdisk)和 Mac OS X 的内置分区工具来创建这些分区。我还尝试了各种块分配、前部可用空间、EFI 分区大小等的组合。我尝试过只使用 MBR、混合 MBR+GPT 和只使用 GPT。
无论我做什么,结果都是一样的:所有计算机(Mac、Windows、Linux)都可以看到 28 GB 分区,非 Windows 计算机(Mac、Linux)可以看到 4 GB 分区,但 BIOS 看不到任何分区。我根本无法从它启动。
要安装 Kali Linux,我使用以下命令和从其网站下载的 ISO:
sudo dd if=~/Downloads/kali-linux-2.0-i386.iso of=/dev/disk2s3 bs=1m
我也尝试将.iso
文件更改.img
为Ubuntu 的将 Linux 安装到闪存驱动器的指南,但使用这个却没有效果。
我还尝试了 SuperUser 上的一些指南,包括本指南介绍了如何使用第二个分区安装 Knoppix这会将 Knoppix 放在第一个分区上,因此驱动器将无法在 Windows 下工作。
我确信我遗漏了一些简单的东西,但我却绞尽脑汁想弄清楚它是什么:)为什么 BIOS 看不到我的闪存驱动器?
更新
改日,再试一次。
在查看了论坛和.iso
文件后,我终于把两者联系起来,意识到这个.iso
文件已包含MBR。将写入.iso
分区是多余的。然而,这引起了一个难题:如何将所有.iso
除了它的 MBR?
我有一个有趣的想法并尝试了一下:
- 我撕碎了闪存驱动器,撕掉了 MBR、分区等
- 我复制了
.iso
上面的内容(使用dd
),因此它就像一个普通的 4 GB Kali Linux 驱动器一样运行 - 我曾经
fdisk
编辑过 MBR...但是我没有移动数据,而是列出了分区失灵第一个分区从扇区 500000 到 600000(不是实际的扇区数,只是示例),第二个分区从 400000 到 500000,第三个分区从 0 到 400000(Kali Linux) - 我将第三个分区标记为可启动
现在,当我重新启动插入闪存驱动器的 Mac 时(按住 Option),我看到了驱动器!虽然出于某种原因,它显示“Windows”而不是“通用 USB”或其他什么……很奇怪。但我没有质疑它。我点击了驱动器,兴奋得发抖!……直到这样:
isolinux.bin missing or corrupt
No bootable device -- insert boot disk and press any key
如此接近,却又如此遥远 :(
答案1
我也尝试了同样的事情。我偶然发现了tlroche 的教程这让我开始思考我的做法是否正确。
我从教程中了解到,我需要在磁盘上.iso
拥有自己的单独 MBR。安装在那里的 GRUB 将列出我在该磁盘上的文件。它不是用来dd
安装那些.iso
文件的。它只是复制.iso
文件本身。
不过,选择它们并不仅仅是启动它们。它会循环挂载它们。例如,对于主文件夹中的 ISO,请尝试
# mkdir media/my-looped-iso-dir
# mount -o loop ~/iso-to-mount.iso /media/my-looped-iso-dir
.iso
然后,您可以检查目录中的内容/media/my-looped-iso-dir
。因此,在 GRUB2 挂载 live 后,.iso
它会查找启动所需的文件 - 即可启动的 Linux 内核 ( vmlinuz
) 和 RAMdisk 映像 ( initrd.*
)。这些需要在文件中指定grub.cfg
,您必须自己制作(并不像听起来那么难 - 链接中的示例)。
实际上,我收回刚才的话。设置 grub.cfg 将是最困难的部分。但链接中的示例提供了一个很好的起点。没有太多需要添加的内容,只需自定义要.iso
启动的菜单项即可。
除此之外,您可以将任何内容添加到剩余空间(分区或不分区 - 由您决定)。.deb
如果我只使用基于 debian 的发行版,那么软件包可能是我的首选 - 我正在考虑使用像这样的可启动 USB,其中包含 Kali、Tails 和 BunsenLabs(以前称为 Crunchbang)。但是二进制文件、完整源代码,等等。尽情发挥吧。(顺便说一句,拥有一个填充的 keypassx 数据库并不是一个坏主意)
这也很好,因为当我需要升级.iso
文件时,我只需取出旧文件,然后放入新文件。更新后,grub.cfg
menuentry
您就可以开始了!
编辑:我忘了说了,你要对 USB 驱动器进行分区,并在其中创建一个文件系统。该文件系统将要必须进行/boot
设置才能安装 grub - # grub2-install
(同样,示例见链接)。确保它被标记为可启动,这样就没问题了。
再说一遍,这是全部在链接中...所以只是...你知道...阅读链接!