jobcore/jobo-setup/joborun-setup
2023-04-11 00:04:40 +03:00

390 lines
15 KiB
Bash
Executable file

#!/bin/zsh
mkdir -p /tmp/jobo-subshell
cd /tmp/jobo-subshell
cat /etc/fstab >/tmp/state.0
cat /etc/locale.gen >>/tmp/state.0
cat /etc/timezone >>/tmp/state.0
ls -l /etc/localtime >>/tmp/state.0
cat /etc/hostname >>/tmp/state.0
grep -i hostname /etc/rc.conf >>/tmp/state.0
ls -l /boot >>/tmp/state.0
ls -l /boot/grub >>/tmp/state.0
ls -l /etc/runit/runsvdir/default >>/tmp/state.0
clear
cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " As Obarun says, 'control you own data', do not let the system and those who create "
echo " or influence it control you through your data. We just bring you a step or two closer "
echo " to this goal!"
echo " "
echo " "
echo " You choose whether to build your own packages/software, you configure your system,"
echo " and then you get closer in being in control of your data. "
echo " "
echo " "
echo " "
echo " Enter to continue or Ctrl-C to abort the script at any stage"
echo " Run the script over and over again, it will affect nothing unless"
echo " you modify something withing the subshells triggered."
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " Steps of the script "
echo " _________________________________________________ "
echo " 1 fstab"
echo " 2 locale"
echo " 3 timezone"
echo " 4 hostname"
echo " 5 password"
echo " 6 pacman --init and update/upgrade "
echo " 7 kernel and headers"
echo " 8 bootloader"
echo " 9 configure runit"
echo " 9.1 add s6 and 66"
echo " 10 configure .xinitrc"
echo " 11 reboot"
echo " "
echo " "
echo " Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " This is a script so you can go from installing the minimal Joborun tarball image"
echo " to a complete bootable installation."
echo " "
echo " Hit enter to continue, hit Ctrl-C to abort script "
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " This script should run as root so on each step where a subshell opens to give you"
echo " the chance to configure the system you will not have to use sudo on each command."
echo " The script itself makes no changes to the system at all, no matter how many times"
echo " it runs. It only takes you step by step to the minimal configurations you should"
echo " make to have a bootable system."
echo " "
echo " As we do not believe in handholding automation, we suggest and explain the minimal"
echo " necessary steps, but we do not make automatic/default choices for you, beyond what"
echo " comes from upstream and arch-linux."
echo " "
echo " "
echo "Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " First and most crucial step after chrooting into the installation (system partition),"
echo " is to create a good fstab map of mounted systems. We assume you have setup your /boot"
echo " efi partition if used, a swap partition, and all other mountable filesystems, like"
echo " /home /var or /var/cache, etc."
echo " "
echo " 1 fstab "
echo "cat /etc/fstab"
cat /etc/fstab
echo " "
echo " this is your current /etc/fstab and below is your current state of mounted filesystems"
echo " "
df
echo " "
echo " This is your current list of partition UUIDs and their labels, if they have any"
echo " "
echo " 'ls -lh /dev/disk/by-uuid'"
ls -lh /dev/disk/by-uuid
echo " "
echo "ls -lh /dev/disk/by-label"
ls -lh /dev/disk/by-label
echo " "
echo " '% mount /dev/sdc13 /home' will mount sdc13 partition to /home directory,"
echo " '% swapon /dev/sdd32 ' will begin swapping memmory at /dev/sdd32"
echo " You can do this within this sub-shell, enter exit when you are done to continue this script."
zsh
echo " .... to continue press enter "
read
echo " Now that you have mounted everything you wanted mounted at boot time, run the"
echo " following command: "
echo " "
echo " Note that if you are in a chroot session /etc/resolv.conf is mounted from the"
echo " host system, and this should not be included in your fstab. "
echo " "
echo " % genfstab -U / | grep -v resolv >/tmp/fstab"
echo " "
echo " you can point the output to /etc/fstab directly as you are running as root but"
echo " it is best to examine the output before you enter it. To make life easier "
echo " (without flipping from tty to tty or teminal tab to terminal tab), we created"
echo " /tmp/fstab for you"
echo " hit enter to see it!"
read
genfstab -U / | grep -v resolv >/tmp/fstab
echo " "
cat /tmp/fstab
echo " "
echo " you can edit and then as root 'cp /tmp/fstab /etc/fstab' but we are not going"
echo " to assume everything is well, since you know better. When done copy it from tmp"
echo " to etc and then enter ' % mount -a ' to verify you get no errors, '% df ' "
echo " afterwards to see what is mounted, ' % free ' to see that your swap memmory is working."
echo " "
echo " You can do this within this sub-shell, enter exit when you are done to continue this script."
zsh
echo " .... to continue press enter "
read
mount -a
df
free
echo " .... if everything seems ok to you and you get no errors after 'mount -a' press"
echo " enter or Ctrl-C to interrupt the script."
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 2 locale"
echo " "
echo " "
echo " Now we can set the locale of the system."
echo " edit the '/etc/locale.gen' and enter your choice as found in ' /etc/locale.gen.pacnew '"
echo " The current default value is 'cat /etc/locale.gen' :"
echo " "
cat /etc/locale.gen
echo " "
echo " Run /usr/bin/locale-gen to establish your choice into the system. You can do it within"
echo " this sub-shell, enter exit when you are done to continue this script."
zsh
echo " .... to continue press enter "
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 3 timezone "
echo " "
echo " We will now select the timezone of the system. Even though that both runit have a"
echo " boot rc configuration file to do so, and 66 has its boot module, it is good practice"
echo " to have the traditional unix timezone set before first boot, if runit or 66 miss doing so."
echo " "
echo " You will find a file in /etc/timezone where you can enter your choice."
echo " This is old-school, a practice eliminated by systemd-ish msWin-ish automation."
echo " The new fashion is to link /etc/localtime to a /usr/share/zoneinfo/ choice such as "
echo " the default below"
echo "/etc/localtime :"
ls -l /etc/localtime
echo " enter the sub-shell now and create the link by example root command:"
echo " ' # ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime ' "
echo " for example and verify the results by ' ls -l /etc/localtime ' "
echo " "
echo " Again, editing /etc/rc.conf or /etc/runit/rc.conf and filling the fields available"
echo " for runit should take care of all these, but we can t assume you are not trying "
echo " something else as init and service supervision, like minit or sinit. "
echo " "
echo " exit the shell to return to the script"
zsh
echo " Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 4 hostname"
echo " For Hostname, simply edit /etc/hostname, or fill the /etc/rc.conf, or enter the "
echo " following command ' # hostname <the systems hostname goes here> ' "
echo " Your current hostname is: "
hostname
echo " Enter to continue in a sub-shell or Ctrl-C to abort the script, or exit to exit"
echo " the sub-shell and return to the script."
read
zsh
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 5 passwords"
echo " "
echo " To set passwords you simply use the passwd command"
echo " ' % passwd ' as root to set roots password"
echo " ' % passwd make ' as root to set user makes password,"
echo " if you havent added other users or changed the name of 'make', do the same"
echo " for your other users."
echo " "
echo " To do so now, within this sub-shell enter, then execute the commands by entering"
echo " your password twice when asked, then exit to return to the script."
echo " You should get the output 'your password has been changed' each time"
echo " if you executed passwd correctly."
read
zsh
echo "Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 6 pacman"
echo " "
echo " Your system should be up to date, and to have this done as a first time setup you"
echo " need to initialize pacman"
echo " 1st command is ' % pacman-key --init ' "
echo " 2nd comman is ' % pacman -Suy ' "
echo " To do so, do it here, then type exit to continue this script."
zsh
echo " Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 7 Kernel choice"
echo " "
echo " Choose kernel from joboruns list or from arch by entering on of those as on the list"
echo " 'linux-lts' (5.10 joborun) recommended previous LTS"
echo " 'linux' (5.15 joborun) current linux LTS "
echo " 'linux-lts54' (5.4 joborun older LTS)"
echo " 'core/linux' (arch current) "
echo " 'core/linux-lts' (arch LTS 5.15)"
echo " 'extra/linux-hardened'"
echo " 'extra/linux-zen'"
echo " "
echo " The command to add one kernel and its corresponding header would be such as the 3 examples below: "
echo " 'pacman -S linux-lts54 linux-lts54-headers' "
echo " or "
echo " 'pacman -S extra/linux-zen extra/linux-zen-headers' "
echo " or for kernel and no headers"
echo " 'pacman -S linux-lts' "
echo " To do so, do it here, then type exit to continue this script."
zsh
echo " Enter to continue or Ctrl-C to abort the script"
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 8 Bootloader "
echo " First install the bootloader of choice syslinux, limine, or grub are on our repositories,"
echo " lilo and lilo-git are on AUR, you can use cower to download and build 'cower -d lilo-git'"
echo " We will describe a common legacy grub installation here, for anything else go to"
echo " wiki.archlinux.org and follow the instructions there."
echo " Note: if you are not using ext4 as a filesystem, (ie btrfs, xfs, ..), make sure the "
echo " bootloader of choice supports this filesystem. If not you may need an EFI solution."
echo " "
echo " '% pacman -S grub' "
echo " Make sure you have installed a kernel properly by looking at the contents of "
echo " /boot for an initrd image"
echo " "
echo " Edit /etc/default/grub if you want specialized configuration, os-prober is pre-installed"
echo " and configured via hook to run during grub configuration. OS-prober scans for other"
echo " installations on the same system, linux/unix or otherwise, and adds an entry on the "
echo " boot screen after Joborun. It is not 100% reliable but mostly works for other systems."
echo " "
echo " '% makedir -p /boot/grub ' "
echo " '% grub-mkconfig -o /boot/grub/grub.cfg' "
echo " To install grub s binary in the MBR of disk 'example: /dev/sda ' simply enter the command: "
echo " '% grub-install /dev/sda' "
echo " To do so, do it here, then type exit to continue this script."
zsh
echo " Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 9 Runit setup"
echo " It is best to follow the links on our wiki and the links to Void s wiki and/or "
echo " Artix to learn more about how runit works".
echo " For now, and for those that know runit, what is found linked to "
echo " /etc/runit/runsvdir/default directory will be initiated after boot (stage 1)."
echo " To deactivate/disable a service you simply remove the link, this stops supervision,"
echo " doesnt necesseraly end the service, but also look up runsv -d functionality."
echo " To start a service supervision other than an extra tty (/etc/runit/sv/) look up"
echo " the service scripts in /usr/lib/runit/sv. Link a service from there to the above"
echo " mentioned .../runsvdir/default/ directory and service supervision for this service"
echo " will immediately start."
echo " "
echo " For example:"
echo " ' % ln -s /usr/lib/runit/sv/ntpd /etc/runit/runsvdir/default' "
echo " This example shows how you activate/enable service supervision for"
echo " ntpd in runit."
echo " "
echo " Runit has a minimalist configuration boot script stored in /etc/rc/rc.conf"
echo " linked for ease of access to /etc/rc.conf. Simply edit /etc/rc.conf to customize"
echo " your runit boot settings."
zsh
echo " Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " 9.1 add s6 & 66 "
echo " "
echo " "
echo " To add 66 run the add.66 script then setup.66 to setup the system. "
echo " If you reboot and decide you don t want it, execute rm.66 and "
echo " s6/66 will be removed "
echo " Runit will still be there unaffected when you finish playing with 66, and you can"
echo " boot either system if 66 is installed. "
echo " "
echo " It is best you add s6/66 after your first successful boot with runit, unless you"
echo " are really proficient with both systems."
echo " After you boot 66 and if you ever need dbus and maybe consolekit for applications"
echo " see 66-user 66-user-up 66-user-down scripts that will help a minimal setup."
echo " "
echo " Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " Enter to continue or Ctrl-C to abort the script"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " 10 Your .xinitrc "
echo " "
echo " Whether you use the xinit command, or startx, to start"
echo " your X session your ~/.xinitrc should have at least one"
echo " executable command in it."
echo " exec jwm &"
echo " for starting a jwm session "
echo " exec openbox-session"
echo " for starting an openbox session"
echo " exec vtwm"
echo " for starting a vtwm session "
echo " exec icewm-session"
echo " for starting an icewm session "
echo " "
echo " To do so, do it here, simply edit as user ~/.xinitrc then type exit to continue this script."
zsh
echo " "
echo " Now, next time you login to your shell type xinit or startx and your favorite window"
echo " manager will start up."
echo " "
echo " "
echo " Enter to finally get to the last step of your configuration."
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " 11 Exit chroot and Reboot "
echo " "
echo " You should now be able to exit the chroot, reboot the system, and try a true joborun system."
echo " "
echo " If you are unsure of everything done here re-run the script as many times as you like,"
echo " it doesn t hurt anything, it only guides you to do what you have to do. As user also "
echo " look at the scripts stored in the home directory ~/ or /home/make on how to have X wm"
echo " environment installed if you want it, or have s6 and 66 installed and set up."
echo " "
echo " Enter to finally exit"
read
clear && cat /etc/motd | grep -v joborun
echo " "
echo " "
echo " Thank you for trying Joborun"
cat /etc/fstab
echo " ______________________ "
cat /etc/locale.gen
echo " ______________________ "
cat /etc/timezone
echo " ______________________ "
ls -l /etc/localtime
echo " ______________________ "
cat /etc/hostname
echo " ______________________ "
grep -i hostname /etc/rc.conf
echo " ______________________ "
ls -l /boot
echo " ______________________ "
ls -l /boot/grub
echo " ______________________ "
ls -l /etc/runit/runsvdir/default
echo " ______________________ "
echo " This is what the system s configuration looks like now "
echo " Hit enter to see the picture before you started "
read
echo " __________________________________________________ "
cat /tmp/state.0
echo " __________________________________________________ "