

Installing Linux & BSD for the Uninitiated
So, you’ve finally had enough of your mainstream default Operating System, and you wish for something a little more personalized (or secure)? I understand, and that’s why I’m here to help. I will start by mentioning that some software is only available on Windows or Mac. This is called “vendor lock-in”, or “technological lock-in”, depending on your case. In order to get you out of that special hell, there are some steps we must take long before we begin any permanent system changes. First, we’ll go over some pre-requisities to learn about CPU types, writing disc images to USB or CD, and understanding the booting process of a PC. Next, we’ll go over some methods of trying Linux or BSD without the full commitment of installation as your one and only Operating System. Finally, we’ll talk a little about Desktop Environments and Package Managers so you’ll be able to get the most out of your OS when its time to install.
Here’s the bad news: Adobe, major industry CAD Programs, Microsoft/Apple products are out. The good news is there are open source alternatives freely available, with documentation waiting to be read through and understood. Just jump on your favorite search engine, and search for “FOSS alternative to [program]” or “Open Source alternative to [program]”. Plenty of people have opinions on what’s available. All of this is the sort of high-level tuning you may look forward to after getting the hardware to create what’s called a “Userland” from the Kernel. Before we can tinker, we must first understand some pre-requisites about your computer to help you through the technical side of things.
Pre-Requisites
1. Backup your important files
This whole process will wipe the contents of your hard drive. It is important that you save anything important that you wish to keep on the cloud (Google Drive, Proton Drive, Microsoft OneDrive), or on removable media like a flash drive (separate from the one mentioned below) or CD/DVD.
2. Finding the CPU Architecture
The most crucial piece of information begins with discovering the type of Central Processing Unit (CPU) your computer has. You may have multiple CPUs with multiple cores, but the important consideration is the architecture. The most common of them are x86_64, ARM, and Alpha. To find out which CPU architecture concerns you, try these methods:
- On Windows, press ⊞ + R from your desktop. Type
msinfo32
and press enter. - From an Apple, select the Apple Menu from the desktop. Select “About this Mac” and find the “Overview” tab. The CPU should be listed as “Chip” or “Processor”.
3. Download the Disc Image and Write it
At the bottom of this article, I have included links to several distributions worth your time and consideration. I would highly recommend a distro designed for workstations, as they will have a graphical environment already picked out.
Writing to USB or DVD can be tricky if you have multiple drives plugged in all at once, so be sure to make sure you’re using the right drive by unplugging what you don’t need right now.
On Windows, the program Rufus can be downloaded from the Microsoft App Store. Rufus keeps the USB side of things simple.
If you wish to burn a DVD, find the downloaded .iso
file, and right-click on it to bring up the menu option, Burn disc image. When the application opens, choose the correct drive letter for your DVD burner. If you’d like more peace of mind, select Verify disc after burning.
On a Mac, the tools needed to write to USB are already built into the command line. Open up the terminal
app, located within Applications, then Utilities. Once opened, change to the directory (cd directoryName
, or man cd
to learn more about the cd
command) where your .iso
file is located, and type hdiutil convert -format UDRW -o targetfile.img inputfile.iso
.
In most cases, OSX will create your .img
file with the extension .dmg
. Just rename it (mv yourfile.dmg yourfile.img
) and you should be ready to copy. Next, type diskutil list
, insert the flash drive, and type diskutil list
again. Your drive will have a name like /dev/disk3
, so be sure to remember which it is.
Next, unmount the drive by typing diskutil unmountDisk /dev/diskx
(or whatever your drive number is. That device name now becomes something like rdisk3
instead of disk3
because it is unmounted.
You will need root access (the password!) for this next step: sudo dd if=inputfile.img of=/dev/rdiskx bs=1m
. Enter your password if prompted, and when the process is complete, type sync
. Finally, just to be safe, we will eject the USB with this command: diskutil eject /dev/diskx
. Your flash drive should be ready to use now.
If you wish to burn a DVD on an Apple, you may also do this from the command line with just one simple command: hdiutil burn discimagename.iso
with the correct disc image name. Next, just insert a blank disc for burning. It’s that simple!
4. Booting Into the Flash Drive or DVD
For most Windows computers, pressing F8 at startup will load a boot menu. If this is not the case, you may have to adjust your boot devices from the BIOS/UEFI menu, but don’t worry- I’ll keep it simple.
Depending on the manufacturer of the computer, press one of the following keys when the PC first boots up: Delete, Esc, F1, F2, F9, or F10. Be sure to check your favorite search engine for “[manufacturer] access bios key” and something will come up. When you’re in the BIOS/UEFI menu, you will see a prompt on the screen that explains how to navigate the menu using the keyboard. Use those instructions to navigate to a boot menu or a list of boot options. When it comes to boot options, you want to set the priority for the USB drive or CD to be higher than the had drive. If you made any changes, be sure to Save & Exit, per onscreen instructions.
With Apple computers, pressing the Option key (⌥) at startup gives you boot options. It’s that simple. I would heavily advise checking out a Live Distro on Apple Hardware just to make sure you don’t have driver issues. Live Distros are perfect for making sure all of your hardware will work without issues. If anything causes problems along the way, just restart the computer and try again.
Try Before Committing
The easiest way to get directly to a Linux or BSD desktop directly in your browser, without so much as a single computer restart, is through the website DistroSea
The initial list of distros can be overwhelming for someone just shopping, so here are a few of my personal recommendations:
If you’re on Windows, you can try Linux using Windows Subsystem for Linux (WSL). WSL can be installed from the command line using wsl --install
. You can learn more from Microsoft.
Another method of trying out a distro is through a Virtual Machine. Virtual Machines are just emulated “guest” environments on a “host”. As long as you have the available hardware resources, you may run a guest within a host. Some virtual machines that are readily available for Windows or Mac include:
Finally, some Disc Images contain live environments you can explore around, and install when you are ready.
Something possible for the more techno-savvy reader is the creation of a dual-boot, or mutli-boot system. That’s out of the scope of this article, but it’s perfectly possible to have Linux or BSD installed besides Windows or MacOS using a bootloader.
A Quick Word on Desktop Environments and Windows Managers
By now, you’ve probably noticed a million Linux distros, and a good handful of BSD derivatives, but what does it all mean? Linux, by definition, is simply a Kernel, and that’s it. Everything else that makes up a Linux Operating System is an opinionated collection of software to make it complete. BSD, by contrast, is a complete Operating System, kernel and all. They both have different types of licensing, but that’s beyond the scope of this article. One of the most resource-heavy pieces of software on a Linux or BSD Machine is the Desktop Environment. A Desktop Environment is a collection of software designed to give functionality and a certain “look and feel”. It can include a Window Manager, a background wallpaper, toolbars, widgets, light & dark modes, and settings management. Someone who wants a lighter software footprint may consider just running a Window Manager, some of which are specifically designed to run independently of a Desktop Environment, and as such, they may be more keyboard-centric than mouse-centric. Be sure to do a little research if this interests you, but for now I would recommend a feature-rich Desktop Environment like Gnome or KDE to get you familiar with how they work in contrast to Windows or MacOS. The following is a list of the most common Desktop Environments and Windows Managers:
Desktop Environments
Window Managers
Installing Linux or BSD
You’ve made it this far! It’s been a journey, but the most popular distributions also happen to have the easiest installation processes. You may begin by simply clicking an “Install” icon, or in the instance of booting into installation medium, choosing the correct menu option for installation.
You will configure language and keyboard settings, timezone and date information, hard drive partition settings, network settings, user accounts and package manager settings. Be sure to read the instructions clearly along the way. It is important to have a user account separate of your root account, and you should do everything you can to keep the root account secure by minimizing access.
A default installation should be enough to get you up and running, but there is room for some massive customization along the way. A lot can be learned about hard drive partitions and network settings, but the defaults should just work out of the box. Be warned, Linux will break if you ask it to, so don’t get too heavy-handed with the customizations until you understand what is happening.
Anticlimactic? Perhaps! Most of the preperation happens around the actual installation process, in my experience. Be careful what you wish for, though, because sometimes things break and there is an opportunity for learning when they do.
Installing Additional Programs
Programs can be added through a package managers or through compiling source code. Your package manager depends on which distribution you went with. Some are graphical, like Ubuntu Software Center, others are lists of text, like Octopi. The package manager is deeply ingrained into the distro. Debian-based distros use apt while arch-based distros use pacman. Be sure to read the documentation/manual for your chosen distribution. If the documentation is missing or unclear, I would not consider using the distro as a beginner.
Compiling from source code is out of the scope of this article. You would need the source code and all dependecies to compile each project into a workable program. There are benefits to installing your programs from source, but it’s not exactly beginner material.
Further Reading
Suggested Distros
Linux for Servers
Linux for Workstations
Linux for PenTesting
BSD for Servers
BSD for Workstations
← Back to blog