如何使用持久运行的 Kali 更改 USB Live 的启动内核

如何使用持久运行的 Kali 更改 USB Live 的启动内核

首先,我遇到的问题是无法在 Kali 2.0 上运行 VirtualBox。

我设置了一个持续运行 Kali 2.0 的 USB Live,当时它有 4.6.0-kali1-amd64 内核。此后我已经使用所有推荐的来源进行了更新/升级/分布式升级等。作为其中的一部分,已安装的新标头/内核是 4.9.0-kali4-amd64。然而,即使在启动后,内核也是 4.6.0,正如 uname -r 和 vbox 抛出的错误所确认的那样。我知道通常需要配置 grub,尽管 USB 实时启动中没有 grub 引导加载程序。

virtualbox抛出的错误说没有找到适合4.6.0内核的驱动程序,而且系统没有设置为动态创建驱动程序(尽管我相信这是因为它正在为4.6.0内核制作驱动程序) 4.9.0,但这不是正在运行的内核)。

答案1

由于我的 live 系统的安装方式或 live-tools 处理已安装分区的方式存在错误,live-update-initramfs 在这种特殊情况下不起作用,因为它看起来 /lib/live/mount/medium/作为 USB Live 设备的根,尽管这不是挂载点(并且 USB 设备需要 3 个分区)。

我可以简单地使用 update-initramfs 创建一个 initrd.img 文件(它丢失了),并将其从我的非实时 Linux 分区手动移动到实时文件夹,而不是搞乱安装/卸载等:

/usr/sbin/update-initramfs.orig.initramfs-tools -c -k 4.9.0-kali4-amd64

这样就创建了图像。 vmlinuz-4.9.0-kali4-amd64 已经可用。从我的非现场区域,插入我的 USB:

  1. 我首先将 initrd.img 和 vmlinuz 从 USB 上的 /live 文件夹移动到桌面(用于备份)。
  2. 然后,我将 initrd.img-4.9.0-kali4-amd64 和 vmlinuz 从 USB 的持久性 rw 根文件夹复制到 /live 文件夹。
  3. 我将它们重命名为 initrd.img 和 vmlinuz 并重新启动。瞧

-非常感谢 Jeff S. 的贡献。

答案2

我发现持久性 USB 安装也不会更新实时内核,这似乎不是一个错误,更多的是设计使然。当您最初从您使用的任何 ISO 创建 USB 时,grub 配置和内核都不会被触及。

然而,您可以使用每周的 Kali ISO 覆盖您的实时分区,这将为您替换内核和 Grub 配置(以及其他所有内容),因为与发布版本相比,将提供最新的内核更新。

由于这只是更新实时启动分区上的内容,因此您的持久分区不会受到影响,应该没问题。

https://cdimage.kali.org/kali-images/kali-weekly/

明智的做法是确保执行常规更新命令,以确保在更新活动分区之前持久分区上存在最新的内核文件。

apt update && apt full-upgrade

答案3

@ithin 坚持不懈,做:

mkdir /lib/live/mount/medium    
mount /dev/sdxx (live usb stick) /lib/live/mount/medium    
live-update-initramfs -u

编辑/dev/sdxx/boot/grub/grub.conf---> initrd.img

答案4

现有的基于 ISO9660 的实时操作系统均不提供内核更新功能:内核和 initrd 是实时操作系统唯一无法更新的组件,因为它们位于数据持久分区之外(如果有的话)和如上所述,系统分区是 ISO9660 格式的

利峰阅读文档白皮书展示了如何完成您的要求:

liveng 项目的全部目标是为社区提供一套最佳实践,以便将常见的 Debian Linux live 转变为 live(ng) 操作系统,该系统具有以下功能:

native encrypted persistence;
kernel update (on a live ISO 9660 filesystem!);
UEFI, with UEFI Secure Boot compatibility, with a real efi partition.

相关内容