我试图按照官方文档更新Qubes OS Debian模板中的内核,但似乎我遗漏了什么或做错了什么。
我在用gcc 6.3.0。
Qubes Docs:
在Debian中安装内核
在基于Debian的VM中,您需要安装qubes内核-vm-支持包。这个包包括启动Qubes所需的额外内核模块和initramfs添加(有关详细信息,请参阅模板实现)。此外,您还需要一些GRUB工具来创建它的配置。注意:您不需要实际的grub引导程序,因为它是由dom0提供的。但是拥有一个也不会有什么害处。
sudo apt-get update
sudo apt-get install qubes-kernel-vm-support grub2-common然后安装您想要的内核。如果您正在使用分发内核包(linux 64包),则应自动处理initramfs和内核模块。如果没有,或者您正在手动构建内核,请在使用dkms和initramfs-tools时这样做:
sudo dkms autoinstall -k <kernel-version> # replace this <kernel-version> with actual kernel version
sudo update-initramfs -u安装内核时,需要创建GRUB配置。您可能需要调整/etc/default/grub中的一些设置,例如降低GRUB_TIMEOUT以加快VM启动。然后,您需要生成实际的配置:在Fedora中,可以使用upd-grub2工具来完成:
sudo mkdir /boot/grub
sudo update-grub2然后关闭VM。从现在开始,您可以将pvgrub2设置为VM内核,并且它将启动在VM中配置的内核。
Debian文档:
不要害怕尝试编译内核。这既有趣又有利可图。
要以Debian方式编译内核,您需要一些包: fakeroot、内核包、linux源代码版本。
接下来,我们将假设您可以随意控制您的机器,并将内核源代码提取到您的主目录22中的某个位置。确保您位于要解压缩内核源代码的目录中,使用tar xf /usr/src/linux-source-version.tar.xz解压缩它们,并切换到将创建的目录linux源代码版本。
现在,您可以配置您的内核。如果安装、配置和正在运行X11,则运行menuconfig;否则运行menuconfig(您需要安装libncurses5-dev )。花时间阅读在线帮助并仔细选择。当有疑问时,通常最好包括设备驱动程序(管理硬件外围设备的软件,如以太网卡、SCSI控制器等)。注意:如果不理解其他选项,则应保留默认值,这些选项与特定的硬件无关。不要忘记在“可加载模块支持”中选择“内核模块加载器”(默认情况下没有选择)。如果不包括,您的Debian安装将遇到问题。
清理源树并重置内核包参数:
make-kpkg clean现在,编译内核:
fakeroot make-kpkg --initrd编译完成后,您可以像安装任何包一样安装自定义内核。作为根用户,执行dpkg -i ../linux-映像版本-子体系结构. do。例如,将正确安装System.map,并将安装/boot/config-3.16,其中包含当前的配置集。您的新内核包也足够聪明,可以自动更新引导加载程序以使用新内核。如果您已经创建了一个模块包,则还需要安装该包。
Debian Way输出:
...
...
...
This is kernel package version 13.014+nmu1.
install -p -d -o root -g root -m 755 /usr/src/linux-source-4.8/debian/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64/DEBIAN
sed -e 's/=V/4.8.15-rt10-11.pvops.qubes.x86_64/g' -e 's/=IB//g' \
-e 's/=ST/linux/g' -e 's/=R//g' \
-e 's/=KPV/13.014+nmu1/g' \
-e 's/=K/vmlinuz/g' \
-e 's/=I/YES/g' -e 's,=D,/boot,g' \
-e 's@=A@amd64@g' \
-e 's@=B@x86_64@g' \
...
dpkg-gencontrol: error: illegal package name 'linux-image-4.8.15-rt10-11.pvops.qubes.x86_64':
character '_' not allowed
debian/ruleset/targets/image.mk:230: recipe for target 'debian/stamp/binary/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64' failed
make: *** [debian/stamp/binary/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64] Error 255手册汇编:
我从Debian下载了linux-source-4.8,并在/usr/src中提取了它。
然后:
make defconf
make menuconf # custom settings
make与上述相同的错误:
dpkg-gencontrol: error: illegal package name 'linux-image-4.8.15-rt10-11.pvops.qubes.x86_64':
character '_' not allowed我认为这是很容易解决的,但是如果我可以手动编译内核,那么我应该如何处理呢?
make install和make modules_install是必需的,还是我必须直接使用dkms autoinstall?没有具体说明..。
更新:
直接安装Debian包linux-image-amd64会使控制台消失,VM工作不正常,我试图重新启动它,但是只能通过附加到串行控制台来使用它。
我注意到dpkg在安装过程中崩溃了,所以我运行了dpkg --configure -a,它完成了安装,但是它显示了一条警告消息,使用该initramfs,机器将永远不会启动,事实上,我更新了GRUB并重新启动,但是initramfs无法挂载root。
发布于 2021-09-06 21:53:40
不使用VM内部的内核来引导VM。相反,它使用位于Dom0中的自己的内核。
https://unix.stackexchange.com/questions/341371
复制相似问题