我使用的是Proxmox虚拟机。我选择什么存储类型(scsi、ivirt或sata(似乎并不重要,我在busybox中没有看到任何块设备(即在/dev
下或使用fdisk
(。
我使用这些指令将PXE发送到busybox提示符:
https://jootamam.net/howto-initramfs-image.htm
如果我能看到驱动器。然后,我可以将更大的root.fs
解开,并使用busybox
/initramfs
到switch_exec
到sda1
(类似于tmpfs
的这些指令(。但因为我做不到,所以我只能对tmpfs/ram进行调整。
是否有我需要加载的模块?
两种解决方案
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
busybox解决方案
这是在使用之后
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.htmlhttp://souptonuts.sourceforge.net/cdrom.htm
免费节点#busybox 上有用的IRC