私人修改定制无盘PXE系统
1.如何找到相应LINUX版本的无盘启动文件
a.kernel 文件
b.initrd 文件
如果是ISO文件,请用关键字查找“vmlinuz”, “initrd”
如果是安装好的系统,kernel&initrd 文件就去/boot目录下找;
文章在安装好的系统/boot目录下
initrd.img-4.15.0-45-generic 作为initrd
vmlinuz-4.15.0-45-generic 作为kernel文件
2. 启动验证
修改/var/lib/tftpboot/pxelinux.cfg/default文件
kernel vmlinuz-4.15.0-45-generic
append initrd=initrd.img-4.15.0-45-generic selinux=0 ip=dhcp nomodeset vga=0x0314
不要用虚拟机启动验证,请使用主机从PXE启动
3. 修改initrd文件
cp /boot/initrd.img-4.15.0-45-generic /tmp
mv initrd.img-4.15.0-45-generic initrd.img-4.15.0-45-generic.gz
gunzip initrd.img-4.15.0-45-generic.gz
file initrd.img-4.15.0-45-generic
看是什么格式
root@dh:/boot# file initrd.img-4.15.0-45-generic
initrd.img-4.15.0-45: ASCII cpio archive (SVR4 with no CRC)
cpio -ivmd < /boot/initrd.img-4.15.0.45
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/AuthenticAMD.bin
56 blocks
请修正
删除/usr/share/initramfs-tools/hooks/下面intel-microcode和amd64-microcode两个文件
sudo update-inittramfs -u
重新生成不带 AuthenticAMD.bin的initrd文件
root@dh:/boot# file initrd.img-4.15.0-45-generic
initrd.img-4.15.0-45: gzip compressed data
重新复制新的initrd原始文件
cp /boot/initrd.img-4.15.0-45-generic /tmp
mv initrd.img-4.15.0-45-generic initrd.img-4.15.0-45-generic.gz
gunzip initrd.img-4.15.0-45-generic.gz
cpio -idmv < initrd.img-4.15.0-45-generic
可以看到 /tmp目录下有文件夹子出现:
bin conf etc init lib lib64 ru sbin usr var
直接自己打包一次
find . | cpio -o -H newc | gzip -c > …/initrd4.img
修改/var/lib/tftpboot/pxelinux.cfg/default文件
kernel vmlinuz-4.15.0-45-generic
append initrd=initrd4.img selinux=0 ip=dhcp nomodeset vga=0x0314
请使用主机从PXE启动 ,可以启动成功;
如需要修改initrd文件内容,请在/tmp 目录下的文件夹子里做修改就可以了;
4. 参考链接
https://blog.csdn.net/weixin_30448685/article/details/98929738
https://blog.csdn.net/feisang/article/details/6121269
https://forum.ubuntu.org.cn/viewtopic.php?t=489910