Intereting Posts

Как загрузиться с использованием изображения squashfs как rootfs

Я сделал изображение squashfs из своего системного корня, я хочу разместить его на USB-накопителе среди некоторых Live ISO и создать меню загрузки с помощью GRUB2.

Какие параметры загрузки ядра следует использовать для указания изображения Squashfs как корневой файловой системы?

Я использовал это как конфигурацию grub, но Dracut не смог найти и установить root:

insmod gzio insmod xzio insmod part_msdos insmod squash4 insmod iso9660 insmod ext2 insmod btrfs insmod regexp menuentry 'Fedora Workstation' { set imgfile=/images/fedora*.squashfs loopback loop0 /$imgfile linux16 (loop0)/boot/vmlinuz-4.1.8-200.fc22.x86_64 ro rd.fstab=0 root=$imgfile elevator=deadline enforcing=0 #rhgb quiet LANG=en_US.utf8 initrd16 (loop0)/boot/initramfs-4.1.8-200.fc22.x86_64.img } 

По-моему, вы все равно должны использовать initramfs. Практически все будет сделано, но вам понадобится модуль ядра файловой системы squashfs (если он еще не скомпилирован в ваше ядро) в вашем изображении initramfs.

Большинство систем initramfs уважают fstab – и, безусловно, Dracut. И вы можете просто настроить два файла /etc/fstab – один в вашем изображении .sfs и один в вашем изображении initramfs.

 { cd /tmp; cat >fstab mkdir -p sfs/sfs sfs/usb dracut -i fstab /etc/fstab \ -i sfs sfs \ --add-drivers overlay \ --add-drivers squashfs \ initramfs.img } <<"" #FSTAB UUID={USB-UUID} /sfs/usb $usbfs defaults 0 0 /sfs/usb/img.sfs /sfs/sfs squashfs defaults 0 0 

dracut говоря, я не очень хорошо знаком с системой сборки dracut initramfs, и поэтому для этой команды может быть что-то более необходимое. Я работаю с общим знакомством с тем, как настроено большинство монтировок initramfs, и информацию, которую я нахожу в man странице для dracut здесь . Возможно, потребуется дополнительная сборка, но это должно хорошо провести вас.

После того, как вы установили правильный /etc/fstab для ваших initramfs, вы должны использовать следующие параметры, связанные с корневым устройством, чтобы получить rootfs overlayfs:

 root=overlay \ rootfstype=overlay \ rootflags=\ lowerdir=/sfs/sfs,\ upperdir=/sfs/usb/persist,\ workdir=/sfs/usb/tmp 

Предполагается, что у вас есть каталог на вашем USB-накопителе с именем /persist и еще один пустой с именем /tmp и что ваше изображение squashfs можно найти в корне вашей файловой системы usb как /img.sfs .