背景
我做了一个Ubuntu20.04“定制”img通过dd
命令从一个USB磁盘驱动器。按照Serva
教程,我使用Serva
作为PXE服务器。
正式的Ubuntu20.04.4 ISO PXE引导成功。当我PXE引导我的“自定义”映像时,它正确地下载vmlinuz
和initrd
,但是initrd
会触发内核恐慌。
问题
通过将图像文件(根分区文件夹)中的所有文件复制到NWA_PXE/{my customized image name}
中,是否正确地将Linux资产添加到Serva的存储库中?
如果这个方法是正确的,那么initrd
是否会触发内核恐慌,因为它在引导时缺少一些内核模块,比如SMB或CIFS?
这是受本文启发的:使用PXE引导自定义Linux映像
错误代码是:
[ 1.437739] ---[ end Kernel panic - not syncing: Attempted to kill init! exit code=0x00000200 ]---
ServaAsset.inf设置为:
[PXESERVA_MENU_ENTRY]
asset = customized img beta
platform = amd64
kernel_bios = /NWA_PXE/$HEAD_DIR$/casper/vmlinuz
append_bios = showmounts toram root=/dev/cifs initrd=/NWA_PXE/$HEAD_DIR$/casper/initrd boot=casper netboot=cifs nfsroot=//$IP_BSRV$/NWA_PXE_SHARE/$HEAD_DIR$ NFSOPTS=-ouser=serva,pass=avres,sec=ntlmv2,vers=2.0,ro ip=dhcp ro ipv6.disable=1
kernel_efi64 = /NWA_PXE/$HEAD_DIR$/boot/vmlinuz-5.11.0-40-generic
append_efi64 = showmounts toram root=/dev/cifs initrd=/NWA_PXE/$HEAD_DIR$/boot/initrd.img-5.11.0-40-generic boot=casper netboot=cifs nfsroot=//$IP_BSRV$/NWA_PXE_SHARE/$HEAD_DIR$ NFSOPTS=-ouser=serva,pass=avres,sec=ntlm,vers=1.0,ro ip=dhcp ro ipv6.disable=1
发布于 2022-07-18 19:34:39
能够PXE引导的Linux发行版为INITRD
s提供了init
脚本中的特殊代码,允许它们处理与PXE引导相关的内容,如获取IP、设置DNS客户端、安装D1
或NFS、如果发行版是安装squashfs文件的Live,则init
将在没有对相应的引导映像进行适当“着色”的情况下结束,但init
是一个脚本,永远不应将控制返回给命令解释器(ash),这就是为什么您需要:
[ end Kernel panic - not syncing: Attempted to kill init! exit code=0x00000200 ]---
在您的情况下,如果您想要PXE引导功能,最好从具有PXE功能的发行版开始,然后添加特定的功能。例如,使用一个实时发行版,并将所需的功能添加到包含的squashfs映像中。
请记住,Serva多次创建互补的INITRDs,修复某些发行版PXE错误,或者只是缺乏对所需协议的支持(例如,在启动INITRD级别时CIFS支持)等等。
https://unix.stackexchange.com/questions/696652
复制相似问题