7.1 KiB
Initiation Rite
This guide is for those wanting one of the two most beautiful source based distros, either CRUX or Source Mage GNU/Linux. It was written so it can be used by both, only diverging on particular details.
- CRUX: A ports based, BSD style init scripts, distro following true KISS principles (Keep It Simple).
- Source Mage GNU/Linux: Without 3rd party patches, sensible defaults or masked packages, free from obfuscated and pre-configured code, use clean dependencies as they came from upstream developers and can also use flags.
NOTE: This guide attempts to describe UEFI in detail side by side with BIOS. Also describes dualbooting (and triple booting) with the bootloader. If you feel overwhelmed for the amount of information don't be afraid, most of it is OPTIONAL, like password protection of the bootloader and the different filesystems the bootloaders can use.
TOC
- START
- PARTITIONING
- SETUP
3.1. CHROOT
3.2. CHANGE NETWORK INTERFACES
3.3. EDIT FSTAB
3.4. SET THE ENVIRONMENT - KERNEL
- BOOTLOADER
5.1. LILO - THE END
START
Boot in UEFI mode if on UEFI, BIOS if on BIOS, and select installation media.
- Make sure your network is up (OPTIONAL)
dhcpcd <NIC>
- Temporarily change keyboard (available configurations can be found in the directories "/usr/share/kbd/keymaps/" for CRUX and "/usr/share/keymaps/i386/qwerty" for Source Mage GNU/Linux)
loadkeys <KEYMAP>
PARTITIONING
In these examples we make only two partitions but you can extend this if you know how. The partitions are one root partition, later mounted to "/mnt/drive" with "mkfs.<ROOT_FILESYSTEM>" format, and one boot partition, later mounted to "/mnt/drive/boot" and with "mkfs.<BOOTLOADER_FILESYSTEM>" format unless is UEFI in which case "mkfs.vfat" is the only format available and will be mounted to "/mnt/drive/boot/efi" instead.
-
Use parted
parted /dev/sda
-
Inside parted, if on UEFI label the disk "gpt", but if on BIOS label it "msdos"
mklabel <LABEL>
unit mb
mkpart primary 0g 128
mkpart primary 128 -1
toggle 1 boot
p free
quit
-
Make root filesystem according to your personal preference
mkfs.<ROOT_FILESYSTEM> /dev/sda2
mkdir /mnt/drive
mount /dev/sda2 /mnt/drive
-
Make boot filesystem according to supported bootloader or just "mkfs.vfat" if on UEFI
mkfs.<BOOTLOADER_FILESYSTEM> /dev/sda1
-
If on BIOS make directory and mount
mkdir /mnt/drive/boot
mount /dev/sda1 /mnt/drive/boot
-
If on UEFI make directory and mount
mkdir -p /mnt/drive/boot/efi
mount /dev/sda1 /mnt/drive/boot/efi
SETUP
- Create directories
mkdir -p /mnt/drive/{dev,sys,proc,tmp,usr/src,var}
- On CRUX run "setup", and if on UEFI during the setup select grub2-efi (if using GRUB 2), efibootmgr, and elfutils from opt (only select core, and say yes when you're asked if you want to select individual packages). And if you are not using LILO de-select it from core.
setup
- On Source Mage GNU/Linux get the tarball
cd /mnt/drive
wget -c "http://download.sourcemage.org/image/official/smgl-stable-<version>-basesystem-x86_64.<compression>"
tar xvf smgl-stable-<version>-basesystem-x86_64.<compression>
CHROOT
- On CRUX you can issue the next command to mount everything and chroot automatically
setup-chroot
- On Source Mage GNU/Linux mount everything else manually
mount --bind /dev /mnt/drive/dev
mount --bind /tmp /mnt/drive/tmp
mount --bind /sys /mnt/drive/sys
mount -t proc none /mnt/drive/proc
mount -t devpts none /mnt/drive/dev/pts
- On Source Mage GNU/Linux chroot manually specifying Bash in case live media has another shell
chroot /mnt/drive /bin/bash
- Change root password in chroot (TEST IF YOUR KEYBOARD HAS ALL THE CORRECT MAPPINGS before you change the password)
passwd root
CHANGE NETWORK INTERFACES
- On CRUX modify "/etc/rc.d/net" with the rules you want (IP, gateway, domain, etc)
- On Source Mage GNU/Linux add preferred interfaces to "/etc/network/interfaces" for example
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
- On the "/etc/resolv.conf.head" file set your preferred DNS provider (this example is from OpenNIC)
nameserver 193.41.79.236
- Or copy "/etc/resolv.conf" to "/mnt/etc/resolv.conf" BEFORE chrooting
EDIT FSTAB
- Change the "/etc/fstab" file with appropriate filesystems
/dev/sda1 /boot <BOOTLOADER_FILESYSTEM> defaults 0 2
/dev/sda2 / <ROOT_FILESYSTEM> noatime 0 1
- On CRUX uncomment the lines referring to "devpts", "tmp", and "shm" as some programs require it (Firefox), also "USB" and or "cdrom" if using those
- If on UEFI replace "/boot" with "/boot/efi"
SET THE ENVIRONMENT
- On CRUX change the font, keyboard, timezone, hostname and services on the "/etc/rc.conf" file
ls /usr/share/kbd/keymaps/
- On Source Mage GNU/Linux change keymaps on the "/etc/sysconfig/keymap" file
ls /usr/share/keymaps/i386/qwerty
- On CRUX generate locales (change interface language)
localedef -i <LOCALE> -f ISO-<CODE> <LOCALE>
- On Source Mage GNU/Linux generate locales (change interface language)
cast -r locale
KERNEL
Next are simple examples of compiling the kernel, for a more in depth view see https://github.com/mayfrost/guides/blob/master/KERNEL.md
-
On CRUX
cd /usr/src/linux-<VERSION>
make all modules_install install
-
On Source Mage GNU/Linux (OPTIONAL)
cast -r linux
BOOTLOADER
Next is a simple example of setting the bootloader, for a more in depth view see https://github.com/mayfrost/guides/blob/master/BOOTLOADER.md
LILO
- On Source Mage GNU/Linux do "cast <BOOTLOADER>" to install lilo or elilo.
- If on UEFI use elilo and change names to "/etc/elilo.conf" instead of "/etc/lilo.conf" and "elilo" instead of "lilo" in commands
nano /etc/lilo.conf
- Inserting "password=<PASSWORD>" inside an OS stanza will protect with a password that OS, but inserting "password=<PASSWORD>" just before the stanzas and outside any of them will protect with a password the bootloader itself (notice the space inside stanzas)
boot = /dev/sda
image = /boot/vmlinuz
Label = <DISTRO_NAME>
root = /dev/sda<PARTITION_NUMBER_OF_DISTRO>
other = /dev/sda<PARTITION_NUMBER_OF_FREEDOS>
table = /dev/sda
Label = FreeDOS
other = /dev/sda<PARTITION_NUMBER_OF_WINDOWS>
table = /dev/sda
Label = Windows7
- Set boot entry
lilo -A /dev/sda 1
lilo
- Prevent anyone but root of reading the config file (in case you used a password)
chmod 600 /etc/lilo.conf
THE END
- Exit the chroot
exit
- Shutdown the machine
shutdown -h now
And done. For more information on both distros and what to do next see https://github.com/mayfrost/guides/blob/master/DISTROS.md