我本质上是想将 Kali 安装到 USB 驱动器上。我不是要制作一个带/不带持久性的实时 Kali,而是要将 Kali 完全安装到 USB 驱动器上。
对我来说,具有持久性的 Live USB 限制有点太多,我通常在 ubuntu 上工作,我认为我可以切换到 Kali 然后就结束了。
当前情况描述
我的 MacBook Pro 已经具有 Windows 10 和 Mac OS X 双启动功能。我正在尝试创建一个可以被 Mac 引导加载程序识别的 USB Kali 安装。
我安装 Kali 的方式是设置一个 Vbox 以使用物理硬盘(usb)作为主磁盘,然后将 kali live 安装到虚拟 cd 并将其直接安装到棒上。
效果很好。
问题
问题是默认情况下 grub 会安装到 MBR,而最近版本的 MacBook 似乎不喜欢这种做法(当我使用选项启动时,我从未在其他分区旁边看到过 USB)。我想我需要某种 EFI 兼容性/配置,但不太确定如何继续。
我在网上找到的大多数信息都是关于制作实时 USB 而不是实际安装。似乎有一种方法可以在主机上使用 rEFInd,但我正在寻找一种可以让我的 USB 在任何设备上启动的选项。
任何帮助,将不胜感激。
答案1
回答我自己的问题。
简短的回答是,最近的 MacBook Pro(至少 2017 年及以后)希望在 USB 的开头有一个 ESP(FAT32)分区,文件位于/EFI/boot/bootx64.efi
(如果您来这里是为了解决类似的问题,但不是在 Mac 上,请将 x64 替换为您的体系结构。本答案的其余部分将假设 x64)。奇怪的是,Kali 安装不包括此路径上的文件,而是将其放在/EFI/kali/kalix64.efi
。这很奇怪,因为安装的 Kali 包含在 ./boot/efi/EFI/boot/bootx64.efi
旁边/boot/efi/EFI/kali/kalix64.efi
。想知道为什么它从一开始就不直接将其包含在正确的分区中。
还有一些其他注意事项,因此下面是基本操作。我使用 VirtualBox 是因为默认情况下不支持内置键盘、触摸板和 wifi,因此直接安装需要 2 个 USB 驱动器,以及至少一个外置键盘或自定义版本的 kali 安装程序,与 VirtualBox 相比,这两项工作对我来说都太繁重了:
- 在 Mac OS X 上,以 root 身份打开 VirtualBox,以避免使用以下方法出现奇怪的分区错误:
sudo VirtualBox
- 创建一个新的虚拟机,任何硬盘选项都可以。确保你已
Settings > System > Enable EFI
检查,这是必需的。在 中设置你的 USB ,并在虚拟 CD 上Ports
设置你的 kali 安装 ISOStorage
- 启动虚拟机并继续安装
- 同意任何与 UEFI 相关的内容
- 当涉及到分区时,选择
entire device
您的 USB。它会询问您是否要重新格式化分区表(或类似的东西),选择是。之后选择可用空间并执行推荐的安装。您现在应该有 3 个分区(ESP、ext4、swap)。如果您仔细检查 ESP 分区,它应该是 EFI 可启动分区(我看到的默认设置,但值得仔细检查) - 继续安装
- 同意安装 grub,如果系统提示你安装到哪个设备,请选择你的 USB
- 完成安装后你将自动重新启动进入 kali 安装
现在,在 kali 中我们将修复启动并安装您的 MacBook 缺少的驱动程序:
- 安装键盘和触摸板驱动程序检查完整安装文档适用于您的特定 MacBook 版本。以下是对我有用的方法(14,3):
echo -e "\n# applespi\napplespi\nspi_pxa2xx_platform\nintel_lpss_pci" >>
/etc/initramfs-tools/modules
apt install dkms
git clone https://github.com/roadrunner2/macbook12-spi-driver.git /usr/src/applespi-0.1
dkms install -m applespi -v 0.1
- 通过运行 修复 grub 选项
sudo update-grub
。由于某种原因,安装grub.cfg
文件包含设备路径而不是 UUID。可能是因为实时 grub 配置。这将修复它并防止出现令人讨厌的问题,即您看到 grub,但它却无法找到正确的分区和文件路径 - 使用 找到您的 ESP 分区
fdisk -l
。您正在寻找一个 200-250MB 的 fat32 分区,应该是 USB 上的第一个分区。找到后,/dev/sd{x}{#}
继续下一步。(/dev/sdb1
如果您遵循上述 VM 配置,则可能会如此) - 使用以下方式挂载分区
mount /dev/sd{x}{#} /mnt
(根据需要替换 {x}、{#}) ls /mnt/EFI/kali/
应该会显示一个kalix64.efi
文件。只需创建一个新的启动文件夹并复制此文件并重命名它:
mkdir /mnt/EFI/boot
cp /mnt/EFI/kali/kalix64.efi /mnt/EFI/boot/bootx64.efi
option
关闭虚拟机,插入 USB 并按下按钮重启 Mac- 享受。