The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "User:Pnoecker/Undead USB Install/undead2live"
(update to gesis' known working bios+uefi grub-mkrescue command.) |
(add loop & hfsplus. note that this page is experimental & with out resolving conclusion.) |
||
Line 1: | Line 1: | ||
{{warning|this is an experimental page without resolving conclusion. this is just exploration and experimentation with the goal of making live media. the grubiso drop in replacement for isolinux within this document is functional, and tested working.}} | |||
https://help.ubuntu.com/community/LiveCDCustomization#Assembling_the_file_system | https://help.ubuntu.com/community/LiveCDCustomization#Assembling_the_file_system | ||
Line 4: | Line 6: | ||
{{console|body= | {{console|body= | ||
###i## sed '/MODULES_FS/ s/\"$/ isofs overlay squashfs\"/' -i /usr/share/genkernel/arch/$(arch)/modules_load | ###i## sed '/MODULES_FS/ s/\"$/ loop hfsplus isofs overlay squashfs\"/' -i /usr/share/genkernel/arch/$(arch)/modules_load | ||
###i## genkernel initramfs --clean --disklabel --ramdisk-modules --fullname=debian-sources-x86_64-5.10.28_p1 | ###i## genkernel initramfs --clean --disklabel --ramdisk-modules --fullname=debian-sources-x86_64-5.10.28_p1 | ||
}} | }} |
Revision as of 17:18, May 18, 2021
this is an experimental page without resolving conclusion. this is just exploration and experimentation with the goal of making live media. the grubiso drop in replacement for isolinux within this document is functional, and tested working.
https://help.ubuntu.com/community/LiveCDCustomization#Assembling_the_file_system
make an undead usb from a stage 3 containing networkmanager, xfce4, x11-xorg, fchroot, slim, with auto login root terminals. setup slim to boot root so the entire undead key does not have a password. tidy up the undead key delete the stage3 tarball, delete the sources directory. insert auto as root's file system in /etc/fstab so it will load in both ext2 & squashfs modes. partuuid survives the dd procedure so label by that. patch and rebuild your initramfs to support loading squashfs and rebuild your initramfs. change the sources version number to reflect your installation.
root # sed '/MODULES_FS/ s/\"$/ loop hfsplus isofs overlay squashfs\"/' -i /usr/share/genkernel/arch/$(arch)/modules_load root # genkernel initramfs --clean --disklabel --ramdisk-modules --fullname=debian-sources-x86_64-5.10.28_p1
squashfs is read only and requires an overlay filesystem to run properly.
a fstab using tmpfs statements could possibly work but most documentation points to using overlay filesystems.
root # echo "overlay / overlay rw 0 0" > /etc/fstab root # echo "tmpfs /tmp tmpfs nosuid,nodev 0 0" >> /etc/fstab or root # echo 'tmpfs / tmpfs defaults 0 0' > /etc/fstab
on your host funtoo system emerge tools for cd mastering:
root # emerge cdrtools squashfs-tools isomaster libisoburn
mount your undead usb key, but not dev sys or any of the other stuff because were going to package it with squashfs.
root # mount /dev/funtoo2 /mnt/funtoo root # mount /dev/funtoo1 /mnt/funtoo/boot
edit /mnt/funtoo/etc/fstab file system's from ext4 & vfat to auto so we can have it auto load squashfs.
root # mksquashfs /mnt/funtoo /mnt/filesystem.squashfs
using isomaster you can insert /mnt/filesystem.squashfs into an xubuntu live cd. virtualbox will boot it, real hardware will not. it probably needs eltorito.img or isolinux.bin setup to chainload grub or whatever. the idea is were inserting our chroot into another live cd's chroot location.
xubuntu has a casper/ directory in the iso that contains a file called filesystem.squashfs, delete their chroot, insert ours. write iso. cheat to win has drawbacks, they're using overlayfs so they're overlaying files on the filesystem somewhere so another choice of live cd to modify is probably a good idea.
maybe we can get our grub loading the squashed image with a command like this.
root # dd if=/mnt/filesystem.squashfs of=/dev/funtoo2
root # mount /dev/funtoo2 /mnt/funtoo root # mount /dev/funtoo1 /mnt/funtoo/boot
chroot into the squashfs image to manipulate grub on the read write fat partition.
root # cd /mnt/funtoo mount -t proc none /mnt/funtoo/proc mount --rbind /sys /mnt/funtoo/sys mount --rbind /dev /mnt/funtoo/dev env -i HOME=/root TERM=$TERM $(which chroot) /mnt/funtoo bash -l
update boot entries so grub boots squashfs:
root # cd /boot root # ego boot update root # grub-mkconfig -o /boot/grub/grub.cfg
generate mbr/bios eltorito boot image:
root # grub-mkimage -p /boot -o tmp_core.img -O i386-pc biosdisk iso9660 multiboot normal ls cat help root # cat /usr/lib/grub/i386-pc/cdboot.img tmp_core.img > /boot/grubiso.img
generate uefi eltorito alternate boot image: alternate boot image osdev guide https://github.com/syzdek/efibootiso
xorriso requires the uefi disk image to be either 1.2Mb, 1.4Mb, or 2.8Mb.
exit chroot
root # exit root # cd /mnt/funtoo
generate iso image, and make it hybrid mode so it can be read from both cd/dvd, and usb key.
root # xorrisofs -D -r -V "funtoo" -cache-inodes -J -l -b boot/grubiso.img -c boot/boot.cat -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/uefi.img -no-emul-boot -o ../custom.iso . root # isohybrid --uefi ../custom.iso
or use grubs framework to generate the ISO image.
root # grub-mkrescue -J -R -V "${ISO_VOLUME}" -quiet -o ../output.iso .
Testing
Test your iso booting in both bios and uefi mode in virtualbox, or qemu or vmware virtualization. Once you're satisfied that it works well under virtualization, burn it to a usb key using etcher and test booting on real hardware.