Getting older, not necessarily wiser!
In this post I am going to attempt to build a full functional persistent Linux Operating System (OS) on a removable media USB device.
I don’t want a Live CD (or Live USB as the CD is going away) type of install, which is quite common nowadays. There are many Live Distributions (or Distros) out there. Some are more useful than others. But they all are built upon the vision of someone else. And in many cases they have no persistence (that is to say you cannot change them permanently in any way, because your changes disappear on reboot).
I am going to be targeting Arch Linux because of its plane vanilla flavor, though technically any distribution would work. Arch also has a much more granular install, making it somewhat easier to achieve the desired outcome (I hope).
Lets list the my objectives for this install. As with any project, it is best to start out with a clear end goal. It is also good to set a scope for the project, and anything outside of the scope will be relegated to its own project.
Most USB keys are reorganized as removable media drives. This is because of the Removable Media Bit (RMB) in the header information. The difference is in the way the computer views the device. This can be changed on some USB keys, on others it is fixed.
The big issue comes from Windows (surprise surprise) not wanting to recognize more than one partition on removable media. If the key can be made to appear as mass storage, this problem goes away. If not, and we desire at some point to copy data to the drive, then the data partition needs to be the first partition, so Windows will reorganize it.
Otherwise it does not really matter, since we will be building the drive under Linux, and it is not be an issue on Linux based computers. I am not sure about MAC computers, as I do not have one.
Since this will need to boot to modern systems, it will need to be GPT, and have an EFI partition. It should be possible to setup syslinux alongside EFI to enable both legacy and EFI boot at the same time. However legacy boot computers are becoming rare. The only exception I see is some of older EFI computers that have issues booting anything other than Windows (surprise again) under EFI. I may decide to do some scope creep and consider adding this, however it is out of scope right now.
When you install Arch Linux, what usually happens is you boot form a USB installer into a live Arch Instance. Then you work thorough the install procedure to put an instance of Arch on one of the computers internal drives. Then after powering down and removing the installer, you boot from your internal drive.
What I want to do, in theory, is rather than install Arch to an internal drive, I want to redirect the install to a USB key plugged into the computer Technically I should not even need an internal drive, and I could use any x86_64 computer that can boot from EFI.
I have a computer with nothing installed on it, an Arch Installer USB key, and an unused 64 GB USB key. So it is time to give this a try and see how it works.
There is a page in the Arch Wiki that explains how to install Arch to removable media (like a USB key). So before jumping with both feet, I decided to give it a read.
Basically the page says to do what I was planning, boot form Arch Install USB, and follow the installation guide. However the page also has a list of modifications (tweaks) to the install, as well as some configuration items to consider. We will talk about these as we work through the installation.
I have laid out my plan to install Arch on a USB key, and reviewed some documentation form the Arch Wiki.
In the next post I will talk about the actual install, and how it went.