Undead USB Install

From Funtoo
Jump to: navigation, search

This is an install strategy to target a USB flash stick as / instead of a traditional hard drive or internal solid state drive. this isn't a live cd, this is a persistent root funtoo install that changes will keep living on.

In this run i will use a 64gb 100 mb/s sandisk, 32gb minimum for gnome, 16gb are ok for xfce lxde lxqt type builds. get a fast usb3 drive even if you dont have usb3 ports as the flash memory on them is much faster than the flash memory on usb2 keys which will improve usability.

I'm using gparted on xubuntu to delete the flash key fat32 partition and create a single jfs / partition labeled as funtoo, and mount it to /mnt/funtoo. were using JFS because we want as much raw speed and power from the install possible.

we want our USB to be targeting generic hardware so we can take our root funtoo EVERYWHERE with us all the time. we use the generic 64 subarch. if a systems 32, you probably dont want to be doing much computing on it anyways, but do as you will. we will be using a gnome stage3 tarball.

root # cd /mnt/funtoo
root # wget https://build.funtoo.org/1.4-release-std/x86-64bit/generic_64/gnome-stage3-latest.tar.xz
root # tar --numeric-owner -xpf *stage3* && rm -f *stage3*
root # mount -t proc none proc
root # mount --rbind /sys sys
root # mount --rbind /dev dev

were using googles name server simply because its universal, and anyone can access it anywhere.

root # cd /mnt/funtoo && env -i HOME=/root TERM=$TERM /bin/chroot . bash -l
root # echo "nameserver" > /etc/resolv.conf

were disabling swap because we didn't partition for it, many new systems, and some old systems have enough ram to never need it, and swap frys flash media rapidly so it should be located on rotating disks anyways. im compiling on 16gb of ram but 8 should be sufficient, possibly even 4gb or less.

root # rc-update del swap boot
root # passwd
root # echo "LABEL=funtoo / jfs noauto,noatime 0 1" >> /etc/fstab
root # ego sync && emerge jfsutils grub haveged linux-firmware media-fonts/noto

Name your host name to reflect that this is your undead media.

root # mv /etc/conf.d/hostname /etc/conf.d/.hostname
root # echo 'hostname="undead"' > /etc/conf.d/hostname

use old school mbr method of installing grub.

root # grub-install --target=i386-pc --no-floppy /dev/sdx 
root # ego boot update && rc-update add haveged

final install size is 10,176 MB

rebuild the kernel video drivers modules.

root # emerge -1 x11-drivers/nvidia-kernel-modules


to not run nvidia:

root # ego profile mix-in gfxcard-nouveau
root # ego profile mix-in -gfxcard-nvidia

remove nomodeset from /etc/boot.conf and change timeout to 0

root # nano /etc/boot.conf

to fix the clock to eastern standard time:

root # rm /etc/localtime
root # ln -s /usr/share/zoneinfo/America/Detroit /etc/localtime

The magic words to update:

root # emerge -avuND @world 
root # emerge -av --depclean
root # ego boot update

every so often you will want to purge sources to keep the stick as low memory usage as possible

root # rm /var/cache/portage/distfiles/*.tar.bz2
root # rm /var/cache/portage/distfiles/*.tar.xz
root # rm /var/cache/portage/distfiles/*.tar.gz

Past this the USB should work on almost anything x86_64 with a USB port.

uefi isnt booting yet... i don't have equipment to test this method on. uefi looks like a disaster, suggesting setting uefi bios to support legacy mode for now. grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda


to install from a minimal tarball and build up xfce4 the merge commands are

root # ego profile flavor desktop
root # ego profile mix-in xfce
root # ego profile mix-in X
root # emerge alsa-utils xfce4-meta xorg-x11 networkmanager


use eix to browse portage to see packages you can emerge.



use eselect to set various system options



add fortunes piped through cowsay to the shells

root # emerge fortune-mod cowsay
root # echo "fortune | cowsay" >> .bashrc