Difference between revisions of "User:Pnoecker/Undead USB Install"

From Funtoo
Jump to navigation Jump to search
m (add ram compilation to fstab.)
(5 intermediate revisions by the same user not shown)
Line 5: Line 5:
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.
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 (any running linux system with gparted should be able to follow this guide) to delete the flash key fat32 partition and create a single jfs / partition labeled as funtoo, and mount it to /mnt/funtoo.  We're using JFS because we want as much raw speed, and power from the install possible.
I'm using gparted on xubuntu (any running linux system with gparted should be able to follow this guide) to delete the flash key fat32 partition and create a single jfs / partition labeled as root, and mount it to /mnt/funtoo.  We're 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 have our root funtoo compatible with most modern hardware.  prefer nouveau drivers over nvidia because KMS loads intel and possibly other video card systems.
we want our USB to be targeting generic hardware so we can have our root funtoo compatible with most modern hardware.  prefer nouveau drivers over nvidia because KMS loads intel and possibly other video card systems.
Line 23: Line 23:
{{console|body=
{{console|body=
###i## cd /mnt/funtoo && env -i HOME=/root TERM=$TERM chroot . bash -l
###i## cd /mnt/funtoo && env -i HOME=/root TERM=$TERM chroot . bash -l
###i## echo "nameserver 8.8.8.8" > /etc/resolv.conf}}
###i## echo "nameserver 8.8.8.8" > /etc/resolv.conf && passwd
###i## mv /etc/fstab /etc/fstab.backup}}


were disabling swap because we didn't partition for it, and switching the compile directory to ram instead of on disk.  im compiling on 16gb of ram but 8 should be sufficient, possibly even 4gb or less if you avoid large packages.
If you're using gpt partitioning run this block:
{{console|body=
###i## echo "LABEL=boot /boot vfat noauto,noatime 0 2" >> /etc/fstab
}}
 
were disabling swap because we didn't partition for it, and switching the compile directory to ram instead of on disk.  im compiling on 16gb of ram but 8 should be sufficient, possibly even 4gb or less if you avoid large packages.  Were setting the host name, and merging a handful of packages.


{{console|body=
{{console|body=
Line 31: Line 37:
}}
}}
{{console|body=
{{console|body=
###i## echo "LABEL=funtoo / jfs noauto,noatime 0 1" >> /etc/fstab
###i## echo "LABEL=root / jfs noatime 0 1" >> /etc/fstab
###i## echo "tmpfs /run tmpfs rw,nodev,nosuid 0 0" >> /etc/fstab
###i## echo "tmpfs /run tmpfs rw,nodev,nosuid 0 0" >> /etc/fstab
###i## ego sync && emerge jfsutils grub haveged linux-firmware media-fonts/noto debian-sources}}
###i## echo 'hostname="undead"' > /etc/conf.d/hostname
 
###i## ego sync && emerge jfsutils grub haveged linux-firmware media-fonts/noto}}
Name your host name to reflect that this is your undead media.
{{console|body=
###i## echo 'hostname="undead"' > /etc/conf.d/hostname}}


use old school mbr method of installing grub.
use old school mbr method of installing grub.
{{console|body=
{{console|body=
###i## grub-install --target=i386-pc --no-floppy /dev/sdx
###i## grub-install --target=i386-pc --no-floppy /dev/sdc
###i## ego boot update && rc-update add haveged && passwd}}
###i## ego boot update && rc-update add haveged}}


final install size is around 11,500 MB
final install size is around 11,500 MB

Revision as of 15:02, October 9, 2020

A linux nomadbsd alternative

   Tip

this is for legacy mode, uefi is in progress, see Talk:Undead_USB_Install

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 (any running linux system with gparted should be able to follow this guide) to delete the flash key fat32 partition and create a single jfs / partition labeled as root, and mount it to /mnt/funtoo. We're 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 have our root funtoo compatible with most modern hardware. prefer nouveau drivers over nvidia because KMS loads intel and possibly other video card systems.

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

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 chroot . bash -l
root # echo "nameserver 8.8.8.8" > /etc/resolv.conf && passwd
root # mv /etc/fstab /etc/fstab.backup

If you're using gpt partitioning run this block:

root # echo "LABEL=boot /boot vfat noauto,noatime 0 2" >> /etc/fstab

were disabling swap because we didn't partition for it, and switching the compile directory to ram instead of on disk. im compiling on 16gb of ram but 8 should be sufficient, possibly even 4gb or less if you avoid large packages. Were setting the host name, and merging a handful of packages.

root # echo 'PORTAGE_TMPDIR="/run"' > /etc/portage/make.conf && rc-update del swap boot
root # echo "LABEL=root / jfs noatime 0 1" >> /etc/fstab
root # echo "tmpfs /run tmpfs rw,nodev,nosuid 0 0" >> /etc/fstab
root # echo 'hostname="undead"' > /etc/conf.d/hostname
root # ego sync && emerge jfsutils grub haveged linux-firmware media-fonts/noto

use old school mbr method of installing grub.

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

final install size is around 11,500 MB

rebuild the kernel video drivers modules.

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

DONE!

When you boot into your new system use nmtui to setup networking:

root # nmtui

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


If you're having problems with nouveau not playing sound over HDMI emerge pavucontrol:

root # emerge pavucontrol

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

Xfce4

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

gparted

you can emerge gparted, and use funtoo undead usb instructions to install funtoo on another usb, or deploy to an actual hard drive.

root # emerge gparted

further securing

i use a sudo user, disable root login, & have a 1tb home partition for my home theater massive media storage. Package:Sudo

i use dnsmasq to block advertising, and cache dns traffic to accelerate web browsing. Package:Dnsmasq

i use dnscrypt proxy to encrypt all dns requests so 100% of the web traffic from my undead stick is encrypted. Package:Dnscrypt

eix

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

Package:Eix

eselect

use eselect to set various system options

Package:Eselect

Browser

emerge firefox-bin or install brave Package:Brave

Branding

add fortunes piped through cowsay to the shells

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

windows 10 utc

if you're running ntp on undead usb you will want to set any dual booting windows clocks to be universal. in an administrator run command prompt run this:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_QWORD /f