两种解决方案
linux内核pxe解决方案
virt-builder centos-7.8 -o /work/disk.img --root-password password:changeme --install grub2-tools --install e2fsprogs glusterfs-client
virt-builder --get-kernel /work/disk.img -o /var/www/html/pxe.com/
guestfish --ro -a /work/disk.img -i copy-out / /work/initramfs
(cpio -id; zcat | cpio -id) < /var/www/html/pxe.com/initramfs-3.10.0-1127.el7.x86_64.img
echo > /work/initramfs/etc/fstab
echo "SELINUX=disabled" > /work/initramfs/etc/selinux/config
find . -print0 | cpio --null -ov --format=newc | gzip -9 > /var/www/html/pxe.com/initramfs.gz
忙箱解决方案
这是使用后
lsmod
lspci -k
modinfo <module>
查找依赖树并复制到 initramfs/lib
#!/bin/busybox sh
#mkdir /dev
mkdir /sys
mkdir /proc
mkdir /tmp
#mount -n -t proc proc /proc -o rw,nosuid,nodev,noexec,relatime
mount -t proc proc /proc
#mount -n -t sysfs sys /sys -o rw,nosuid,nodev,noexec,relatime
mount -t sysfs sys /sys
#mount -n -t devtmpfs dev /dev -o rw,nosuid,mode=0755
mount -t devtmpfs dev /dev
mount -n -t tmpfs tmpfs /tmp -o rw
mkdir -p /sys/dev
mkdir -p /var/run
mount -t devpts devpts /dev/pts
echo /bin/mdev > /proc/sys/kernel/hotplug
mdev -s
cd /lib/modules/3.10.0-1127.el7.x86_64/kernel
insmod crypto/crct10dif_common.ko.xz
insmod lib/crc-t10dif.ko.xz
insmod drivers/scsi/sd_mod.ko.xz
insmod drivers/virtio/virtio.ko.xz
insmod drivers/virtio/virtio_ring.ko.xz
insmod drivers/scsi/virtio_scsi.ko.xz
insmod drivers/virtio/virtio_pci.ko.xz
insmod fs/mbcache.ko.xz
insmod fs/jbd2/jbd2.ko.xz
insmod fs/ext4/ext4.ko.xz
#networking
insmod net/core/failover.ko.xz
insmod drivers/net/net_failover.ko.xz
insmod net/netfilter/nfnetlink.ko.xz
insmod drivers/net/virtio_net.ko.xz
#rng
insmod drivers/char/hw_random/virtio-rng.ko.xz
#gluster
insmod fs/fuse/fuse.ko.xz
mount -t devtmpfs dev /dev
mdev -s
dd if=/dev/zero of=/dev/sda bs=512 count=1
(echo n; echo p; echo 1; echo ""; echo ""; echo w;) | fdisk /dev/sda
mkdir /newroot
export EXTRACT_UNSAFE_SYMLINKS=1
tar xvfJ /rootfs.tar.xz -C /newroot || error
mount --move /sys /newroot/sys
mount --move /proc /newroot/proc
mount --move /dev /newroot/dev
指南
http://www.espenbraastad.no/posts/centos-7-rootfs-on-tmpfs/
http://mgalgs.github.io/2012/03/23/how-to-build-a-custom-linux- kernel-for-qemu.html
http://souptonuts.sourceforge.net/cdrom.htm
在 freenode #busybox 上有帮助的 IRC