In this blog post I will detail the steps I go through to bring an Arch Linux live distro from a minimal boot disk to a fully functional text-mode Linux system. All changes get deleted when I shut down, but this is the system I’m working with until I get around to actually installing Arch (don’t ask me when that will be).
Step 1: Add a non-root user (very important for security)
useradd -ms /usr/bin/zsh michaelwarren
I like to use zsh since I just like the idea of using different shells for different Unix systems. My native shell is bash.
passwd -d michaelwarran
Arch Linux starts each account with a default password that is selected at random. As far as I know, there is no simple way of finding this password, so in order to actually log in as that user you have to run
passwd -d to clear the old password. The account now has essentially no security.
Specify a new password for the non-root account.
Next you have to edit the sudoers file so that the non-root account can su to root. I add the following line:
michaelwarren ALL=(root) ALL
This file is read-only, so remember to type
:w! instead of just
:w when you save changes.
Now we’re ready to change to the non-root account:
Step 2: Expand available disk space
When you boot an Arch Linux Live CD, the entire filesystem is stored in a RAMdisk in main memory. A RAMdisk is just what its name suggests: a partition in main memory that stores a copy of a permanent filesystem. The RAMdisk used by the Arch Linux live distro is mounted on /run/archiso/cowspace. Since its default size is half the available memory (only 2GB on my system), it will not hold all the packages I want to install, so I have to change its size and store the rest of the RAMdisk on a swap space on an external SSD.
sudo mkswap /dev/sdb6
This configures a partition to be used as a swap space. You only need to do this once. In future boots you can skip this step.
sudo swapon /dev/sdb6
This tells Arch to use the partition as a swap space, effectively increasing the size of available memory and thus the potential size of the RAMdisk.
sudo mount -o remount,size=8G /run/archiso/cowspace
This tells Linux to remount the RAMdisk with a new size of 8 GB. I find this is good enough for my purposes.
Step 4: Set up networking
This part can be comparatively simple, provided you have a wired connection. I always connect my Arch Linux system through Ethernet, because connecting to WiFi is a lot more complicated and I haven’t entirely figured out how to do it. As long as there is a physical connection, all you have to do is send a request to the DHCP server to lease an IP address to this host, allowing it to use the network.
This program will take a couple seconds to run, but once it’s finished, Arch Linux is fully Internet-enabled.
Step 5: Mount my Windows filesystem so I can access locally stored files
sudo mount /dev/sda2 /mnt
Step 6: Install all my packages
I’m just going to give a sample command here:
sudo pacman -Sy lynx
I prefer Lynx to the default Elinks because it has prettier colors.
Actually, I’ve started saving packages locally to avoid bandwidth throttling. I wrote a script that unpacks the packages and installs them. Since pacman is a binary-based PMS, this mainly just involves automatically copying the files to the appropriate directories. Such a script is fairly easy to write.
Anyway, that’s my boot process for Arch Linux. Don’t ask me why I do this to myself.