同时在 USB 上安装 Kali,用于 UEFI 和传统 BIOS

同时在 USB 上安装 Kali,用于 UEFI 和传统 BIOS

这是序言:

我刚刚购买了一台新平板电脑,名为 Wintron 10.1,由 Trekstor 制造。它附带出售的 32 GB 类似 SSD 的硬盘驱动器并预装了 Windows 8.1-Bing。我已经有一个加密的拇指驱动器,这是我几年前创建的,它运行 Kali-Linux-Os。这个kali不兼容uefi,因为我创建它的时候,kali一般缺乏对efi的支持。此后的所有更新都根本没有考虑 uefi,尽管它应该是最前沿的,因为我经常使用它并尝试维护得很好。从该拇指驱动器启动只能在传统 BIOS 系统中进行,并且可能在具有 UEFI 的系统上进行,在该系统中,此功能被简单地禁用。

这是我的意图:

我想修改拇指驱动器上安装的 kali,以便它可以插入旧版 BIOS 系统和 UEFI 系统,并且它应该简单地启动它们,就像现在一样,对于旧版系统。

这可能是不明显的:

新平板电脑具有 uefi 系统,为 32 位。我稍后会提到这一点。

这是我所做的:

  1. 我测试了我的拇指驱动器是否允许启动 uefi 系统。 --> 虽然看起来 USB 是第一个使用的启动设备,但它并没有启动。我使用带有内置对话框“从文件启动”的 uefi 文件浏览器,它无法检测到任何文件(因为不存在后缀 .efi 的文件)--> 我决定始终从浏览器启动从那时起的未来。
  2. 我验证了,安全启动已关闭,重新启动,没有成功
  3. 我在网上告诉自己
  4. 我用另一个 USB 记忆棒重新启动,以便从 USB 驱动器进入安装过程,也为了熟悉 uefi-stuff(为了缩短这个时间,另请参阅此链接
    https://forums.kali.org/archive/index.php/t-271.html
  5. 因此我下载了最新的 kali-iso_64-bit 并将其作为简单的 iso 转储到拇指驱动器 (dd if=this of=that)
  6. 我创建了 EFI 文件夹,在 EFI 文件夹内创建文件夹 boot
  7. 由于 uefi BIOS 为 32 位,因此我选择了 efi 文件 https://github.com/jfwells/linux-asus-t100ta/blob/master/boot/bootia32.efi
  8. 然后我创建了步骤 4 中链接中提到的 grub 脚本
  9. 重新启动,进入 UEFI 文件浏览器,选择正确的 efi 文件,并且

塔达:

被放入一个最小的 grub shell 中。类似于 2.0.2(测试版)。该死的问题:如果我发出命令 linuxefi 或 initdefi,grub 会提示,而不认识它们。

linux /a_path_to/vmlinuz 和 kernel /a_path_to/vmlinuz 似乎都不起作用,因为在我发出“boot”后,我总是收到消息:错误:您需要先在 Grub 中加载内核。 (是的,我做了 root=(hda0,1)

如果未找到内核映像,grub 会报告它。

好吧,用 ubuntu64-iso 做了同样的事情,还用我的 32 位版本替换了 bootXXX.efi,我可以进入图形选择要做什么,而不会被踢到最小的 grub-beta-shell 中。

这是我的问题:

  1. 一般来说,是否可以扩展/修改我的拇指驱动器或创建一个可以启动到 uefi 和非 uefi 系统的拇指驱动器?
  2. 我可以从哪里开始对 kali-grub-boot-issue 进行故障排除?我需要知道这可能是哪个/谁的 grub shell。也许是 bootia32.efi grub 中的一些内置内容,或者是 kali 的 /boot/grub 中的内容,无论如何
  3. 为什么整个网络上似乎只有一个 bootia32.efi ? 32位uefi不太可能用吗?
  4. 请确认,操作系统的位数并不定义要使用的 EFI 文件的位数,操作系统的位数也不取决于 uefi 系统(和 .efi 文件)的位数

答案1

我已经成功让 Kali 在 UEFI 系统中正常工作。我在博客上写了一篇关于我是如何做的文章,希望能帮助到很多像你一样无法开机的人: Kali linux 持续运行在 UEFI 上

您基本上需要:

  1. /EFI/BOOT/在 USB 驱动器的根目录中创建文件夹并将其BOOTx64.EFI放入grubx64.efi其中。
  2. grub.cfg使用/boot/grub以下内容创建:

    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    
    menuentry "Kali Live" {
     set gfxpayload=keep
     linux /live/vmlinuz boot=live username=root hostname=kali
     initrd /live/initrd.img
    }
    menuentry "Kali Failsafe" {
     set gfxpayload=keep
     linux /live/vmlinuz boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal
     initrd /live/initrd.img
    }
    menuentry "Kali Live forensics" {
     set gfxpayload=keep
     linux /live/vmlinuz boot=live noconfig=sudo username=root hostname=kali noswap noautomount
     initrd /live/initrd.img
    }
    menuentry "Kali Live persistence" {
     set gfxpayload=keep
     linux /live/vmlinuz boot=live noconfig=sudo username=root hostname=kali persistence
     initrd /live/initrd.img
    }
    menuentry "Kali Live persistence encrypted" {
     set gfxpayload=keep
     linux /live/vmlinuz persistent=cryptsetup persistence-encryption=luks noconfig=sudo username=root hostname=kali persistence
     initrd /live/initrd.img
    }
    

您可以从我的博客下载所需的现成文件。

即使我没有对此进行测试,它也应该可以在旧版 BIOS 系统上工作,因为 isolinux 配置(Kali live 用于启动)在描述的过程之后仍然存在。

相关内容