我对pxe部署有一个问题。我已经安装了ubuntu-20.04.5-,并将initrd和vmlinuz用于pxe。
在pxe部署中,initrd和vmlinuz已经下载并在initrd上启动,但它无法检测到我的网络设备( lan-usb-c dongle (r8152模块))丢失了。
我提取了initrd的内容,首先注意到main/lib/modules/5.4.0-125-generic/kernel/drivers/net/下的usb文件夹丢失了。(一个Ubuntu22.04 initrd有该文件夹)
所以我创建了/usb/文件夹,然后我选择了主文件夹,如果我被卡住了,我就没有main /lib/modules/5.4.0-125-泛型/build/文件夹,只有一把工具。根本就没有制造。
如何将模块安装到ubuntu-20.04.5-live initrd文件?相关模块是r8152。
发布于 2022-11-01 22:14:40
我在20.04服务器上使用的步骤,其中包含来自ubuntu-20.04.5-live-server-amd64.iso的D1文件。
展开从ISO复制的initrd initramfs文件。
mkdir expand
unmkinitramfs initrd expand/确保特定内核的驱动程序在本地可用。linux-modules-extra-...包包含net/usb驱动程序。
apt-get -y install linux-modules-extra-5.4.0-125-generic从本地包复制驱动程序。这会复制整个net/usb目录,但您可以进行更多的选择。
cp -r /usr/lib/modules/5.4.0-125-generic/kernel/drivers/net/usb/ expand/main/usr/lib/modules/5.4.0-125-generic/kernel/drivers/net/创建一个新的initramfs文件。
cd expand/
pushd early && find . | cpio -o -H newc > ../myinitrd && popd
pushd early2 && find . | cpio -o -H newc >> ../myinitrd && popd
pushd main && find . | cpio -o -H newc | gzip >> ../myinitrd && popd现在您将有一个myinitrd initramfs文件,您可以在您的PXE安装程序中使用该文件。
下载驱动程序的alternate方法
可以下载和提取deb包。这可能更容易,特别是如果您没有一个20.04安装可用。
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux/linux-modules-extra-5.4.0-125-generic_5.4.0-125.141_amd64.deb
mkdir extract
dpkg --extract linux-modules-extra-5.4.0-125-generic_5.4.0-125.141_amd64.deb extract/
cp -r extract/lib/modules/5.4.0-125-generic/kernel/drivers/net/usb/ expand/main/usr/lib/modules/5.4.0-125-generic/kernel/drivers/net/<#>注释/链接
myinitrd initramfs文件启动并确认包含了驱动程序。initrd initramfs文件之所以包含net/usb目录是因为initramfs-tools被修补到通过USB以太网适配器支持网络引导。导致修补程序的错误报告和合并请求包含了一些更多的讨论。https://askubuntu.com/questions/1435396
复制相似问题