这是序言:
我刚刚购买了一台新平板电脑,名为 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 位。我稍后会提到这一点。
这是我所做的:
- 我测试了我的拇指驱动器是否允许启动 uefi 系统。 --> 虽然看起来 USB 是第一个使用的启动设备,但它并没有启动。我使用带有内置对话框“从文件启动”的 uefi 文件浏览器,它无法检测到任何文件(因为不存在后缀 .efi 的文件)--> 我决定始终从浏览器启动从那时起的未来。
- 我验证了,安全启动已关闭,重新启动,没有成功
- 我在网上告诉自己
- 我用另一个 USB 记忆棒重新启动,以便从 USB 驱动器进入安装过程,也为了熟悉 uefi-stuff(为了缩短这个时间,另请参阅此链接
https://forums.kali.org/archive/index.php/t-271.html) - 因此我下载了最新的 kali-iso_64-bit 并将其作为简单的 iso 转储到拇指驱动器 (dd if=this of=that)
- 我创建了 EFI 文件夹,在 EFI 文件夹内创建文件夹 boot
- 由于 uefi BIOS 为 32 位,因此我选择了 efi 文件 https://github.com/jfwells/linux-asus-t100ta/blob/master/boot/bootia32.efi
- 然后我创建了步骤 4 中链接中提到的 grub 脚本
- 重新启动,进入 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 中。
这是我的问题:
- 一般来说,是否可以扩展/修改我的拇指驱动器或创建一个可以启动到 uefi 和非 uefi 系统的拇指驱动器?
- 我可以从哪里开始对 kali-grub-boot-issue 进行故障排除?我需要知道这可能是哪个/谁的 grub shell。也许是 bootia32.efi grub 中的一些内置内容,或者是 kali 的 /boot/grub 中的内容,无论如何
- 为什么整个网络上似乎只有一个 bootia32.efi ? 32位uefi不太可能用吗?
- 请确认,操作系统的位数并不定义要使用的 EFI 文件的位数,操作系统的位数也不取决于 uefi 系统(和 .efi 文件)的位数
答案1
我已经成功让 Kali 在 UEFI 系统中正常工作。我在博客上写了一篇关于我是如何做的文章,希望能帮助到很多像你一样无法开机的人: Kali linux 持续运行在 UEFI 上
您基本上需要:
/EFI/BOOT/
在 USB 驱动器的根目录中创建文件夹并将其BOOTx64.EFI
放入grubx64.efi
其中。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 用于启动)在描述的过程之后仍然存在。