#busybox #initramfs
#busybox #initramfs
Вопрос:
Я использую виртуальные машины Proxmox. Кажется, не имеет значения, какой тип хранилища я выбираю (scsi, ivirt или sata), я не вижу никаких блочных устройств (т. Е. Под /dev
или с fdisk
) в busybox.
Я использовал эти инструкции, чтобы получить PXE в приглашение busybox:
https://jootamam.net/howto-initramfs-image.htm
Если бы я мог видеть диск. Затем я мог бы добавить root.fs
к нему больший и использовать busybox
/ initramfs
to switch_exec
для sda1
(аналогично этим инструкциям для tmpfs
). Но поскольку я не могу, я ограничен отключением от tmpfs / ram.
Есть ли модуль, который мне нужно загрузить?
Ответ №1:
Два решения
решение pxe для ядра Linux
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.html
http://souptonuts.sourceforge.net/cdrom.htm
полезный IRC на freenode #busybox