Hitchhiker's guide to multi-booting

A little overview:

Multi-booting is the act of installing multiple operating systems on a computer, and being able to choose which one to boot when starting the computer.

Disk partitioning is the act of dividing a hard disk drive into multiple logical storage units referred to as partitions, to treat one physical disk drive as if it were multiple disks, so that different file systems can be used on each partition.

On a PC, a hard disk drive can be divided into up to 4 primary partitions.  Optionally, one of these can be set to extended, instead of primary, and it can contain multiple logical partitions.  The final outcome would be 3 primary partitions, one extended partition, and many logical partitions inside the extended volume.

Some operating systems need to be installed on a primary partition, in order to work.  Some go as far as having to be installed on the first primary partition of the first hard disk drive.  Some others are not so picky.

When installing multiple operating systems on the same hard drive, one must consider whether they need a primary partition, the first partition, or whatever we happen to have.

By having a multi-boot system, a user may be able to satisfy different software needs.

The good:

  • The user will be able to create and share documents and files created in different operating systems and with different software suites.
  • Having more than one operating system on the same computer means there's always a backup system to go to, in case one fails.
  • It is easy to recover files on the same computer.
  • Not all systems are good for all tasks, and the user would have a choice of when to use what.

The bad:

  • Having more than one system on the same computer means that there's actually less free space for files and data.
  • Not all systems have access to all other systems:  Windows can only see other Windows; Linux can't read from BSD; etc...
  • More software means more maintenance:  the user would have to go back and forth, every now and then, making sure all the software is up to date on all systems.

The ugly:

  • There's no way to install everything at once.  Each operating system must be installed, one at a time, which means that, sooner or later, we run the risk of formatting something we didn't intend to.
  • A security flaw in one system could potentially mean a security flaw in all systems.
  • Even with no security flaws, a little mistake can go a long way, if all partitions are mounted and accessible.

The recipe:

If you still decide to go on with your multi-boot mania, here's how to.

You'll need different installation media for the different operating systems you want to have.  In this example, I'll be using MS Windows 7 Ultimate Edition, PC-BSD 10 - Joule, Linux Deepin 2013.1, Elementary OS Luna, and Ubuntu 14.04 - Trusty Tahr.

I have chosen these operating systems for a reason, but we'll get to that.

For the sake of simplicity, I am using a blank 250 GB hard disk drive.  Nothing on it means nothing to lose :)

I won't go into too many details about how each of these operating systems is installed.  If you're thinking of multi-booting you should, at least, be able to follow on-screen instructions.  Installing an operating system requires no more than that.

I will merely explain how to set things up so that multiple operating systems can coexist on the same hard drive.

Preheat the oven:

Before installing anything, it is important to prepare the partitions we're going to use.  Not all OS installation media come with a partition editor, and not all partition editors are equally useful, so it's better to have this done beforehand.

To do this, I'll be using the Ubuntu installation disk, which comes with GParted --probably the best partitioning software I've used.

Insert the Ubuntu installation disk on the drive, and restart the computer, so that it boots from the optical disk drive.

The Ubuntu installation disk is also a live disk environment, which means you can actually test the system without having to commit to a hard drive install.

Once Ubuntu is booted, you'll be presented with a screen like this (sorry for the poor quality pic):



You'll need to select "Try Ubuntu" to get to the live environment.

This is what the Ubuntu desktop looks like:


Notice how it still gives you an icon to install, if you choose.



By pressing the "windows" key on the keyboard, or clicking on the logo on the upper left corner of the screen, a menu will appear.  Type "gparted" on the search box, and press enter, to bring up the partition editor.

Once the partition editor is open, we'll need to create and format the necessary partitions to host the operating systems.  We'll need two primary partitions, and one extended partition with 6 logical partitions inside it.

 The unallocated space on the hard disk drive will look like this:


The green plus sign on the upper left corner is used to create new partitions.  The orange arrow pointing left is to undo changes, and the green check mark on the upper right is to apply changes.

We need to click on the green plus sign to start creating the new partitions.  The first will be for windows, and should look as follows:


 I am giving it about 50 GB, because I have enough empty space.  This value can be changed to fit your needs.  The label is not mandatory either.  I just use it to keep track of what I'm doing.

Next is BSD:


In this case, 50 GB is a system requirement.  Windows will do ok with 20 GB, but BSD will complain with less than 50... go figure...

Next, we must create an extended volume, to hold multiple logical partitions:


And in this logical volume, we'll create four 20GB partitions, to host the different linux systems, and a /home partition as well.


Again, it doesn't necessarily have to be 20 GB.  It just has to be enough for the root file system.  20 GB for /home should be enough, really.

Finally, a storage partition, that all systems can have access to:



Size can vary, but file system type has to be NTFS, which is the only one that all operating systems can read/write.

I've also left a very small partition at the end.  It can be formatted to whatever you like, or left unallocated.  Either way is fine.  This is going to be used as swap.  I didn't format as swap just yet, because each Linux installer will want to format it again, anyway.  So I just left it as NTFS, and then we'll come back to it, at the end.


Once all these items have been selected and changed, click on the upper right green check mark to apply changes, and that will conclude the formatting and partitioning.  GParted will write the changes to disk.  This is irreversible.  Make sure you're not doing this on a hard drive with information you want to keep.

Just to double check, you should have 1 primary partition at the beginning of the disk, and it should be about 50 GB, formatted as ntfs.  Next to it, there should be another primary partition, of about 50 GB as well, formatted as ntfs.  Next, you should have an extended partition, that would cover all the remaining space in the hard drive.

Inside this extended partition, you should have 4 logical partitions, 20 GB each, formatted as ext4.

Finally, still inside the extended partition, there should be 2 more ntfs logical partitions.  One that uses up almost all the remaining space, formatted as ntfs, and the last one, just a couple hundred MB in size, formatted as ntfs, as well.

So, recap:  That's [50 GB primary ntfs] [50 GB primary ntfs] [extended [20 GB logical ext4] [20 GB logical ext4] [20 GB logical ext4] [20 GB logical ext4] [~60 GB logical ntfs] [~200 MB logical ntfs] extended]

There's really no easy way to explain it, so here's a picture:



Now that the oven has been preheated, it's time to bake some cookies.

Restart the computer.  Take out the Ubuntu installation disk, and replace it with the Windows disk.

A touch of evil:


The first system to install will be Windows 7, because it's usually the one that complains the most, and takes longer to install.

Windows 7 is a computer operating system developed by Microsoft and released around 2009.  It was meant to be an incremental upgrade to its predecessor (vista).  It has since become one of the most successful and critically-acclaimed operating systems developed by Microsoft.

I chose Windows 7 because, in my not-so-humble opinion, this is the only truly good OS Microsoft has ever made.  It took everything that was good about previous Windows versions and improved it.  It looks good, it feels good, and is very much usable and, really, rather safe, thanks to improved user account control and other security measures.  It's worth a try.

Again, the computer must boot from the optical disk drive.  Once the installer has booted, it will look like this:


It's pretty straight forward, really.  All we have to do is read carefully, click "next" a few times, accept the license, etc.  It's self explanatory.


When prompted to select where to install, select the volume labeled "windows", unless you labeled it differently, and click "install".

The installer will take care of itself.  It'll take a while, so just leave it be.


Once the installation is complete, you'll be prompted to set up the system:  choosing a username, password, entering serial key, selecting time zone, etc.

Again, rather self-explanatory.  Just follow the on-screen instructions until setup is complete.


After you've completed setup, and registered your windows installation, you'll be presented with the Windows desktop.

If the hardware is not too old or too... let's say "unique", everything should work out of the box.

Windows desktop:


Windows explorer:



Windows has successfully been installed, and is currently the only operating system on this computer.

That'll be one down, and four more to go...

True Norwegian black metal:


What's the difference between Unix and Unix-like?

Unix was developed in the early seventies (or maybe late sixties?) at AT & T's Bell Labs.  It is a proprietary operating system that spawned a variety of offsprings.

There is no current AT&T Unix being developed, but some other Unices are still in use, like AIX, HP-UX, and Solaris.



The BSD's claim they can trace their code all the way back to the seventies.

Some people think this is important.

A Unix-like system behaves in a manner that is similar to Unix.  They may actually strive to be fully posix compliant.  The file structure, hierarchy, and even commands, may be the same, or very similar, but it shares no code with AT&T Unix.

Examples of a Unix-like system would include Minix, LInux, and GNU.

Berkeley Software Distribution (BSD, sometimes called Berkeley Unix) was a Unix operating system derivative developed and distributed by the Computer Systems Research Group (CSRG) of the University of California, Berkeley.

FreeBSD has not, really, passed certification by the open group, or paid a license to use the Unix trademark, so it can't, really, be called Unix.

It is, however, a direct descendant of BSD, and shares some of the original code.  In this sense, FreeBSD could be considered a true Unix system, for those who think it matters.

Satan spawn:


In so many words, BSD is what you get when a bunch of Unix hackers sit down to try to port a Unix system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a Unix system for the PC.

Unlike Linux, BSD has a centralized development model.  The whole base system is considered a single piece of software, not many, and is developed and maintained acordingly.

FreeBSD originally targeted getting the best possible performance on the 386 platform.  It was later expanded to other platforms.

PC-BSD aims to be a user-friendly desktop operating system, based on FreeBSD, and using the KDE desktop environment.

I chose PC-BSD because it's easy to use, relatively easy to install, and it feels somewhat familiar, coming from a Linux background.

It's a good entrance point for those who've never used a BSD before.

So, let's get down to business:

Windows 7 installation just finished, and you're looking at the desktop.  What you want to do is remove the Windows installation disk and replace it with the PC-BSD installation disk.  

Restart the computer so that it boots from the optical disk drive.


You'll be presented with a graphical boot menu (grub2).  Select "graphical install" and press enter.  You'll see something like the following:


It's not an error message.  The boot sequence looks exactly like this.  And it takes a long time.  Go get some coffee and come back in a few minutes.

28 days later, you'll be presented with a language selection screen.


At the bottom left corner of this window, you'll see an icon resembling a monitor with a wrench.  This is the hardware compatibility test.  It is generally a good idea to try it, just to make sure that all your hardware will be supported, before installing anything.  Remember this is neither Windows nor Linux, and having unsupported hardware could be a real nightmare.


In my case, all the hardware seems to have been detected alright.  Even my ATI  graphics adapter and my atheros pci wifi card were recognized out of the box.  I must say I'm positively impressed, so far.


When we get to the disk selection screen, it is important to note which disk the system is going to be installed on.  In this case, FreeBSD wants to use the entire hard drive (all 250 GB).

Notice how it says ada0(ALL)

Windows is there, on the first partition of this hard drive, but BSD is not a good citizen.

In order to change installation destination, we must click on "customize".  The following window will appear:


Basic setup should be enough for what we want to do.  If there's anything special you want to do with your hard disk drive, you can select advanced or expert mode.  But, then again, if you're going to do that, you probably don't need this guide to begin with, do you?

The basic setup presents us with two options:  selected disk, and selected partition.


If you remember, when the hard drive was partitioned, we created two 50 GB partitions, one for windows, and one for BSD.  Windows is currently installed on the first 50 GB partition.

BSD does not display volume labels, but it does show the partitions in the correct order.  Since we want to install it on the second 50 GB partition, all we have to do is select the second 50 GB partition on the drop down menu.

The following screen is just a brief recap of the changes being made to disk, so just click finish, and then the installer should look like this:


Notice it is no longer ada0(ALL) but ada0(s2), which means first hard drive, second slice, or second partition.


After you click finish, you'll be presented with this final sanity check.  Once you click "Yes", installation will, officially, begin.


This would conclude the interactive part of the installation.  After this part, the installer will take care of itself, and it will take a while.

Go grab some more coffee and leave it be.

Surprisingly enough, however, PC-BSD took less time to install than Windows 7.  Once again, I was positively surprised.  I was expecting it to take ages.

When finished, click "next" to reboot the system.

Upon reboot, it will automatically load PC-BSD.  Don't  panic.  Windows 7 is still there, and it still works.  It's just invisible to the BSD bootloader.  We'll fix that, later on.  For now, we'll stick to BSD setup.


Again, this is quite self-explanatory.  You'll need to set up a username and password, select a time zone, etc.  Just follow the on-screen instructions.

This is what the PC-BSD desktop looks like (standard KDE 4, really).

Login screen (kdm):


KDE desktop:


App cafe:



Now that PC-BSD is up and running, we're ready to go.

That's two down, and three more to go.

Remove the BSD installation disk, and replace with Linux Deepin 2013.1 instalation disk.

Restart the computer, so that it boots from the optical disk drive.

Army of penguins:

Generally speaking, Linux is a free operating system developed by Linus Torvalds around 1991.

It started as a hobby, and has since grown into one of the most successful software projects in the history of computing.

Strictly speaking, Linux isn't really an operating system.  It's a kernel.  When combined with GNU userland, it gave birth to the family of systems now commonly and collectively known as Linux.

Some prefer to call it GNU/Linux.  Some don't.



There's around six or seven hundred Linux distributions out there.  Some of them are ridiculously popular, and some are ridiculously obscure.

Some of these distributions satisfy very specific needs.  Kali Linux (formerly backtrack), for example, specializes in security and penetration testing. DSL (damn small linux), aims to provide a full fledged operating system, with many software solutions in under 50 MB.  Tomsrtbt provides a full-fledged set of recovery tools in a single floppy disk.  Scientific Linux is based on Red Hat Enterprise Linux and a collaboration between Fermi National Accelerator Laboratory and the European Organization for Nuclear Research (CERN), among other labs.  LinuxCNC is a software system for computer control of machines such as milling machines, lathes, plasma cutters, robots, etc.

Linux is currently operating around 97% of the world's supercomputers, including NASA'S pleiades.


The advantages of Linux over other systems are, among other things, its portability, expandability, and its ever-growing community of developers.

From a regular desktop user's perspective, it doesn't really matter all that much.  We don't work with space shuttles or particle accelerators.

When it comes to everyday use (as in browsing the internet, playing a couple of games, writing a few documents, balancing your check book, watching cat videos and playing music), it really doesn't make much difference which, of the myriad of distributions, you happen to use.

They are different, don't get me wrong.  They're just not different in a way that matters too much.  There's a little bit of a learning curve, but once you nail it, you've nailed it.

Take, for instance, package management.  Let's pretend we want to install htop.

In Gentoo, you would run

emerge htop

In Debian, it is

apt-get install htop

In Mandriva:

urpmi htop

Suse:

yum install htop

Arch:

pacman -S htop


All these commands are different, but they all accomplish the same task.

Then there's other little differences the regular user may never actually notice, like some distributions preferring systemd over upstart.

These aren't differences that will have an impact over daily usage.

So, what would drive a user to test more than one Linux distribution at a time?  More often than not, it's the user interface.

Not that it matters, either.  Take, for instance, any Ubuntu, and run:

sudo apt-get install kde-plasma-desktop  xfce4 lxde fluxbox icewm xmonad gnome-shell fvwm pkwm fvwm-crystal afterstep amiwm e17

A single command.  Just one line, and you'll have 14 desktop environments / window managers to choose from, ranging from modern eyecandy to old school.

Some people may have legitimate reasons to use more than one distribution, but for the average Joe, it's usually just a matter of looks, which is the reason behind my choice of distributions for this example.

I chose three distributions that actually bring something to the table as far the user interface is concerned.  Each one of them is unique.

Please note the installation process for all three of these distributions is exactly the same.  The only things that are going to change from one installation to the next are the mount points for the different partitions, and the target device for the boot loader.

Good idea / Bad idea:

It is generally a good idea to have a separate /home partition for a linux system.  All system files can be kept within a / (root) partition, and /home can be used for custom settings and personal data.

It is, also generally, a good idea to have a single /home partition for multiple linux systems.  Each one can have its own, individual, / (root) partition, and a common /home can be used for settings and data.

It is generally a bad idea to have a single /home folder for multiple linux systems.  All system files are kept within individual / (root) partitions, but /home/user is used to keep custom settings, personal data, and application-specific information.

Two different linux distributions may be shipped with two different versions of the same application.  Having a single /home/user/*.conf file for different versions of the same program may render it unusable.

Anything in ~/.gconf ~/.gnome2 ~/.gnome2_private ~/.kde ~/.local ~/.ssh ~/.themes ~/.mozilla ~/.config ~/.aptitude etc... may end up breaking.

An easy fix is to have a different user for each linux distribution installed.  Something like johna johnb and johnc.  This way, each one will have its own /home/user folder with personalized settings.

As far as I'm concerned, I only use one operating system, and I don't even keep a separate home partition.  Anything I must keep goes to another hard drive.  A friend of mine wanted to know how to do this.  Hence, this guide.

Enter the dragon:

It seems like everybody and their grandmother has a Ubuntu derivative nowadays.

Linux Deepin has its origins in China, which is not difficult to tell, as the installer is only available in English and Chinese. The Games store is entirely in Chinese.  It is based off Ubuntu and GNOME 3.

What makes Linux Deepin different from other Ubuntu derivatives?

They put a lot of effort into making it different.  So different, that they actually have their own desktop environment, called DDE (deepin desktop environment), and it is not only unique, but really rather cool.

It borrows a little from here and there, and it's easy to spot influences from Windows 7, KDE, Unity, and GNOME 3, but it takes and combines these in a very elegant maner.  It looks modern, and sleek.

It also sports a couple of exclusive applications, like the Deepin Media Player, and the Deepin Music Player.

I chose this distribution because DDE is exclusive to Linux Deepin, and it's worth trying.  It really is a very good effort.

So, let's get started.  PC-BSD is freshly installed and you're looking at the desktop.  You'll need to take out the BSD installation disk, and replace it with the Linux Deepin installation disk.

Restart the computer so that it boots from the optical disk drive.

You'll be presented with the following screen:


Select "try and install linux deepin" and press enter.


Deepin, like most Linux distributions nowadays, comes in a live cd, which means you can test the system before installing.

Once the system has booted, you should have a fully working desktop.

Double click on the "install" icon to begin the installation process.




It's easy to guess where Deepin came from.  The installer is offered in English, Traditional Chinese, and Simplified Chinese.


In all three linux installs, you'll be presented with a screen like this one.  Always select "something else".

Notice how Deepin is a better citizen than PC-BSD.  It already aknowledged that Windows is present, and is offering to install alongside with it as a default option.  It still isn't good enough to see BSD right off the bat, but it's a good start.



Notice the order in which partitions are laid out.  The first one corresponds to windows (ntfs).  The second partition is where we installed PC-BSD (now showing as zfs).  The third partition is where we're currently installing Deepin.  Select it and click "change".  Then, edit it so it looks the same as above.  The size may be different, depending on how much you allocated, but the rest must be the same.


The 6th partition down (or the 4th ext4 partition) is the one we'll use for /home.  Select it, click "change" and edit so it looks the same as above.  The size may be different, but the rest should be the same.


The 7th partition down the list (or the 5th ext4 partition) is the one we'll use for storage.  Select it, click "change" and edit so it looks the same as above.  Again, size may vary, but the rest should be the same.

Notice this screenshot was taken from the Ubuntu installer, not the Deepin installer.  The purpose is to demonstrate the installers are exactly the same, and work exactly alike.


Optionally, you may go back and select the first partition, which corresponds to Windows 7, and edit so it looks like this, in case you want to have the Windows partition mounted automatically.  If not, you can always mount it manually, each time, or add it to /etc/fstab afterwards.

If you notice on the image above, Deepin wants to install the bootloader directly on the MBR (master boot record), which is, generally, a good idea.  But, for now, we want it somewhere else.

Click on the dropdown menu and scroll down to select the same partition where Deepin is installed.  In this case, deepin is at /dev/sda5, so we want the bootloader at /dev/sda5.

After this is done, click on "Install Now".


The installation will take care of itself, so leave it be.  Go grab some coffe and come back to it when it's done.

Same as before, you'll be prompted to select a username, password, time zone, etc.  You may get a warning about not having swap.  Ignore it.  I strongly recommend to use different user names for the three linux installations, or it will break.


This time, I opted for johnd (d as in deepin).

When installation is complete, you'll be prompted to re boot.  Once re booted, this is what Deepin looks like...

Login screen:


Application menu:


Deepin media player:


File manager:



Notice how the application menu resembles that of gnome-shell.  The file manager is a hybrid between nautilus and dolphin (you can click plus and minus signs to select and deselect different files).  The dock at the bottom is somewhat like the unity launcher, but it's incorporated into the panel, which is like gnome's.  There's also plasma-like widgets on the desktop.  The media player is one of the various in-house-built applications included.  Overall, it's a well-thought and well-designed mixture.

Not only that, but it is also unique.  Deepin didn't just take vanilla gnome or kde and re brand it.  They took the time and effort to re design the desktop.  And, they did a very good job.

That's three down, and two more to go...


Fly me to the moon:


Elementary OS is a(nother) Ubuntu derivative.  It uses the desktop with its own shell, called Pantheon, as well as several elementary OS exclusive apps, including the media player, file manager, web browser, text editor, dock and panel.  It uses the Gala window manager, which is based on Mutter.

It was originally created as a set of themes and applications to be used with Ubuntu, and later turned into a separate distribution, in its own right.

To a certain extent, it sort of feels like a hybrid between GNOME 3 and Mac OS X.  Surprisingly enough, Pantheon was developed after GNOME 2, not 3.  It's never been based off gnome-shell.

It's not a Mac clone either.  It just happens to have a dock at the bottom and a panel on top.

It has a very minimalistic and, I would say, elegant, approach to the desktop metaphor.

I chose this system because, like Deepin, it's not just another re-brand of gnome, kde, or xfce.  The developers took the time to develop a desktop environment of their own, which is deeply integrated with the applications they have developed in-house.

The installation disk is also a live cd, which uses ubiquity (the same installer as Ubuntu).

The installation process is exactly the same as Deepin's.  You'll be prompted with a language selection screen:


When asked for installation type, select "something else."


The 4th partition down (or the 2nd ext4 partition) is the one we'll be using for / (root).  Select it, click "change" and edit so it looks like this:


The 6th partition down (or the 4th ext4 partition) will be /home.  Select, change, and edit to look as follows:
 

Optionally, we can mount Windows automatically.


The device for boot loader installation is, again, set to /dev/sda (MBR) by default.  We want to change it to the same partition as elementary OS:  in this case, /dev/sda6.


You'll be asked to set up the system the same way as before, with username, password, time zone, etc.  Ignore the swap warning if you get one.  In this case, I'm using johne (e as in elementary).



As usual.  The installation will take care of itself.

You've had enough coffee already, so go grab something else, and leave it be.



When the installation is completed, it'll prompt you to restart.


Once rebooted, this is what it looks like...

Login window:


Pantheon desktop, dock & panel:


Application menu:


File manager (with windows partition mounted):


Media player:



And that'll be four down, and one more to go...

Hopelessly human:



Ubuntu was originally released around 2004, with the slogan "Linux for human beings."

Ubuntu is developed by Canonical Ltd., a company based on the Isle of Man, and owned by South African entrepreneur Mark Shuttleworth.

The name is taken from the Southern African Ubuntu philosophy, which can be roughly translated as "humanity to others" or "the belief in a universal bond of sharing that connects all humanity".


Since then, Ubuntu has grown to become, arguably, the most successful and popular Linux distribution there is, spawning over 100 derivatives since its inception.

A quick "ubuntu-based" filter on distrowatch yields the following results:


1. Chitwanix OS34. MIKO GNYO/Linux67. Lubuntu100. Ubuntu Privacy Remix
2. AbulÉdu35. MoLinux68. LXLE101. Runtu
3. Alinex36. Monomaxos69. Xubuntu102. ArtistX
4. Arabian Linux37. moonOS70. Bodhi Linux103. NexentaStor
5. Asturix38. Nexenta OS71. Ultimate Edition104. Bio-Linux
6. Aurora OS39. Nova72. Linux Lite105. Linux Caixa Mágica
7. BeaFanatIX40. nUbuntu73. Ubuntu GNOME106. Hybryde Linux
8. Debris Linux41. OpenGEU74. Kubuntu107. AriOS
9. dyne:bolic42. OS4 OpenLinux75. Pinguy OS108. LuninuX OS
10. eAR OS43. Otakux76. Peppermint OS109. Leeenux
11. EasyPeasy44. OzOs77. Deepin110. Madbox Linux
12. Element45. Pear Linux78. Netrunner111. UberStudent
13. elpicx46. Pioneer Linux79. wattOS112. Ubuntu Christian Edition
14. ESUN Linux47. Poseidon Linux80. Ubuntu Studio113. Guadalinex
15. Fluxbuntu Linux48. Progex81. Voyager Live114. APODIO
16. Freespire49. Protech82. BackBox Linux115. Bardinux
17. GnackTrack50. Puredyne83. Snowlinux116. Oz Unity
18. GNIX-Vivo51. Qimo 4 Kids84. Trisquel GNU/Linux117. LliureX
19. Gnoppix Linux52. Sabily85. Ubuntu Kylin118. REMnux
20. gOS53. Shift Linux86. DreamStudio119. BigLinux
21. Helix54. Super OS87. ZevenOS120. Comfusion
22. Ichthux55. Suriyan88. Zentyal121. Centrych OS
23. iMagic OS56. Tilix Linux89. ExTiX122. SymphonyOS
24. Impi Linux57. Ubuntu Rescue Remix90. Emmabuntüs123. Vinux
25. Joli OS58. Ufficio Zero91. SalentOS124. Kiwi Linux
26. Klikit-Linux59. U-lite92. Greenie Linux125. Ulteo Open Virtual Desktop
27. Kuki Linux60. X-Evian93. SuperX126. OpenLX
28. Kurumin Linux61. Xfld94. Mythbuntu127. Ankur Bangla
29. Linspire 62. xPUD95. CAINE128. Tuquito
30. LinuxTLE63. Linux Mint96. Edubuntu129. iQunix OS
31. Linux Mangaka64. Ubuntu97. CAELinux130. MAX: Madrid_Linux
32. Maryan Linux 65. elementary OS98. Ubuntu DesktopPack131. Baltix GNU/Linux
33. Masonux66. Zorin OS99. DEFT Linux132. Redo Backup & Recovery
133. Karoshi
134. Linuxfx (285)


Granted, only about 70 of these are still in active development, but still, the sheer number of derivatives that have come out of Ubuntu speaks clearly of its success and influence.

Ubuntu was awarded the Reader Award for best Linux distribution at the 2005 LinuxWorld Conference and Expo in London, InfoWorld's 2007 Bossie Award for Best Open Source Client OS, and PC World's "best all-around Linux distribution available" in 2008.

The public sector has, also, widely adopted Ubuntu.  Government offices in the Republic of Macedonia, France, Italy, Germany, Iceland, Spain, China and Cuba, to name a few, have switched their workstations to Ubuntu.

As of January 2009, almost half of Google's 20,000 employees, used Ubuntu.


Those are some pretty impressive credentials already, but the real secret to Ubuntu's success is the community behind it.

Ubuntuforums is an online community with nearly 2 million members, and the best place to start, for a beginner.

Ubuntu had used the full GNOME desktop environment, but around 2011, it was switched to Unity, due to "philosophical differences with the GNOME team over the user experience".  Instead of just taking any of the existing desktop environments and just re-branding it, the developers took the time and effort to create their own.

It is still possible to use GNOME 3 on Ubuntu.  It's just not the default.  Having tried both, I'd have to say that neither one of them is exactly my cup of tea.    That being said, however, if I had to choose one, I'd choose Unity over GNOME 3.  It looks better, feels better, and is far more intuitive than vanilla GNOME.

The purpose behind the Unity interface is interoperability, scalability, and consistency.  The plan is to have the same operating system, and the same interface, across multiple devices, including desktop computers, laptops, tablets, smart phones, and smart televisions.

That's a pretty ambitious goal.  If and when it happens, it'll be awesome.

Unity has its detractors, of course, including none other than Mr. Richard Stallman.  But, in spite of its detractors, Ubunty (and Unity) have managed to remain at the top of the Linux wave.

For these, and other reasons, I have chosen Ubuntu for this example.

So, enough with the history lesson.  Let's move on.

Again, the Ubuntu installation disk must be inserted on the tray, and the computer restarted, so that it boots from the optical disk drive.

The Ubuntu installer uses ubiquity, so the installation process will be exactly the same as Deepin, and ElementaryOS.

The first screen is the language selector.


Then, on "installation type" we will, again, select "something else"


When we get to the partitions, we'll select the 5th one down, or the third ext4 partition.


It must be edited to look like this:


Again, the size could be different, but the rest must be the same.

The sixth partition down, or the fourth ext4 partition, will be used for /home.


This time we are not changing the device for boot loader installation.  This time we want it on the MBR.


When it asked me for a username, I chose johnu (u as in ubuntu).


Again, you'll be asked for a keyboard layout, time zone, etc.  Just follow the on-screen instructions until you get to the end.  Ignore the swap warning.  The installer will take care of itself, as usual, so just leave it be.


When the installation finishes, it will prompt you to restart the computer.  Take the installation disk out, and reboot.

Ubuntu is a very good citizen, and will automatically recognize almost all your other operating systems.  Windows has its own boot loader on its own partition.  So does BSD.  We also configured both Deepin and ElementaryOS to install grub in their own partitions, instead of installing it on the MBR.

When Ubuntu installs its boot loader, it will find all these other boot loaders and make use of them.

This is, so far, what the Ubuntu boot loader has to show:


Notice it's not showing PC-BSD.  Well get to that.

Upon reboot, you'll have a fully working system... or rather... many fully working systems...

This is my fully configured, updated, and optimized Ubuntu installation:

Desktop:


File manager & terminal:


System settings:


System info:


Unity dash (menu):


Virtual desktop chooser:


That's five down... and none more left...

Fixin' the boot loader:

Grub2 is more than capable of booting FreeBSD.  It's Ubuntu that failed to see it.

In order to fix it, it's just a matter of editing a configuration file.  It sounds complicated, but it's not.





In Ubuntu, press the windows button, or click on the logo on the upper left corner, to get the unity dash, which is the menu/search.  There'll be a search box at the top, where you can type in what you're looking for.




On this search box, type in "gnome-terminal" (minus the quotes).  Ubuntu will find and filter the application.  This is what it should look like:


Click on the terminal icon, to bring up the application.  At the command prompt, type the following code:

sudo nano /etc/grub.d/40_custom

It should look like this:


Press enter, and type your password when prompted for it.  You won't see the password as you type it, but type it in, nonetheless.

It will then open a configuration file, which is just text, really. It will look like this:


Append the following code, at the end:

menuentry "PC-BSD" --class os {
 set root='(hd0,2)'
 chainloader +1
}

It should look like this now:


Press Ctrl+O and then Enter, to save the file.  And then press Ctrl+X to close the editor.

You'll be back at the terminal.  Now, enter the following code:

sudo update-grub
Press enter, and let it do its thing.  When it finishes, PC-BSD will be included, at the very bottom of the boot loader menu:


Use the up and down arrows to navigate through the menu.  Press enter to select an item.  Pressing enter will immediately boot the selected system, except for BSD.  If you select PC-BSD and press enter, you'll be presented with another boot loader, which looks like this:


Sorry for the blurry pic, but I took it with my phone, and it was rather late at night.  Option 1 is multi user, which is what you want to use, most of the time.  Option 2, single user, is a root shell, for recovery.

So, boot loader is fixed.  It will take a couple of key strokes more to boot BSD, but it works, and in the end, that's all that matters.

One swap to rule them all:

Right now, none of the Linux systems we installed is using a swap partition.  It may or may not be necessary, depending on how much RAM the computer has, and on whether or not you intend to hibernate.

It's still a good idea to have, at least, a little swap.  So, here we go back to the very small partition we left at the end of the hard drive.  It should just be a couple hundred MB in size.

We need to format it as swap, and then tell the system to use it.

This is an easy task, for which we need a partition editor.  The Ubuntu installation disk includes GParted, but for some reason it is actually not included in the default installation.  So, in order to use GParted withut having to re boot and use the installation disk again, we'll install it from an online repository.

So, open a terminal, following the same steps as before (windows key, "gnome-terminal", click).

Enter the following command:

sudo apt-get install --yes --force-yes gparted

It will ask you for your password, so type it in and press enter.

After it is installed, we'll need to open gparted.  So, press the windows button, type "gparted" minus the quotes, and click on the icon.


You'll be presented with a list of partitions on the device.

Select the very last one, which is the smallest one.  Right click on it, select "format to" and then click on "linux swap"

It will look like this:


Click on the green check mark to apply changes.  When it finishes, exit out of gparted.

Now we have a swap partition, but we still have to tell the system to use it.  So, we go back to the terminal, and type the following command:

blkid

It will spew out some gibberish.  we're looking for something like this:

/dev/sda9: UUID="86c7d6fd-58ee-4005-b0d5-38542253f22c" TYPE="swap"

The part we're interested in is the UUID.  In this case, it's 86c7d6fd-58ee-4005-b0d5-38542253f22c.  Yours will be different.  Take note of it.  Copy it, and paste it on a regular text file.  We're going to need it.

Go back to the terminal, and type the following command:

sudo nano /etc/fstab

Append the following code at the end:

# swap
UUID=86c7d6fd-58ee-4005-b0d5-38542253f22c none            swap    sw              0       0

Replace the UUID with the one you got from blkid.

Press Ctrl+O and Enter to save changes, and then press Ctrl+X to exit the editor.

Back on the terminal, enter the following code:

sudo mount -a

Restart the computer and boot into Deepin, and repeat the last three steps (nano /etc/fstab > append text > mount -a).  Do the same for ElementaryOS.

This is only going to be done once.  And, from here on, all three Linux systems will be using the same swap partition.

And that's a wrap, everybody...

Now, you have five fully functional operating systems installed on the same hard drive.

Other voices:

These are other operating systems I considered when selecting the five I would be using.  In the end, I used what I used, and there was a reason for my choices, but there's more out there, for those who are interested.

Oracle Solaris
Developed by one of the biggest companies in the world.  Oracle Solaris looks promising, but it doesn't work on my hardware.  There's this annoying bug abut a APIC error interrupt on CPU X.  Apparently, this is specific to multi-core AMD processors, and it's been inherited from the days of OpenSolaris.  Which leads me to two things.  First:  I'm not gonna change my processor just to test drive the damn thing.  And, second:  This bug has been in existence since around 2009... That's five friggin years!  Solaris was still developed by Sun Microsystems when I first got this error.  It should have been fixed by now.  The fact that it hasn't tells me a lot about it... and it ain't good...

DragonFlyBSD
A very scalable and efficient operating system.  It uses the HAMMER file system, virtual Kernels, and aims to provide clustering support in the kernel.  I didn't use it because I figured if you're the kind of person who will ue DragonFlyBSD you probably don't need a guide, to begin with.  The purpose was to showcase relatively easy systems.

Openindiana
The Illumos project was born when Oracle decided to send OpenSolaris down the drain.  A number of operating systems have been developed using the Illumos kernel, including Belenix, OmniOS, and Openindiana.  It suffers from the same bug as Oracle Solaris.  Can't use it on my machine...

Syllable
This is a real rarity.  It's somewhat of a mixture between AmigaOS, BeOS, and Linux.  It's interesting enough, and I have used it in a virtual machine, but the only time I tried to install it on an actual, physical, hard drive, it took ages, so I aborted the installation, and haven't tried again.  That was a couple of years ago, so I might give it a try some time soon.

Haiku
Kind of a BeOS clone.  Still under heavy development and not quite ready for everyday use.

Plop Boot Manager
Plop is actually more than just a boot manager, but it's the boot manager that's really interesting.  It is especially useful for computers that cannot boot from external media, like usb, for example.  Plop manages to force them to do it, and it looks pretty awesome (boot menu is animated).

Debian
The mother of all operating systems.  To call Debian a Linux distribution is to do it a great injustice.  Not only is it one of the oldest Linux based systems there are, and the basis upon which many others, including Ubuntu, have been built, but it is also more than just Linux.  It is also a BSD, and a GNU Hurd, which means it's been made to work with the Linux kernle, the FreeBSD kernel, and the Mach microkernel.  It has also been ported to more computer architectures than any other system in the world:

Official ports
As of the current stable release (Wheezy), the official ports are:
  • amd64: x86-64 architecture designed for 64-bit PCs, with the goal of supporting both 32bit- and 64bit-userland on this architecture
  • armel: little-endian ARM architecture (Instruction set ARMv4) on RiscPC and various embedded systems (EABI)
  • armhf: ARM (Instruction set ARMv7) hard-float architecture requiring hardware with a floating-point unit (FPU)
  • i386: IA-32 architecture designed for 32-bit PCs. Also compatible with (but carries over the limitations of 32-bit to) 64-bit machines
  • ia64: Intel Itanium (IA-64) architecture
  • kfreebsd-amd64: Kernel of FreeBSD on x86-64 architecture
  • kfreebsd-i386: Kernel of FreeBSD on IA-32 architecture
  • mips, mipsel: MIPS architecture (big-endian and little-endian)
  • powerpc: PowerPC architecture
  • s390: IBM ESA/390 architecture and z/Architecture
  • s390x: IBM ESA/390 architecture and z/Architecture with 64-bit userland
  • sparc: Sun SPARC architecture on sun4u/v systems
Unofficial ports
Unofficial ports are also available as part of the unstable distribution:
  • alpha: DEC Alpha architecture
  • hppa: HP PA-RISC architecture
  • hurd-i386: GNU Hurd kernel on IA-32 architecture
  • m68k: Motorola 68k architecture on Amiga, Atari, Macintosh and various embedded VME systems
  • powerpcspe: PowerPCSPE architecture (binary-incompatible variant of the PowerPC)
  • ppc64: PowerPC64 architecture supporting 64-bit PowerPC CPUs with VMX
  • sh4: Hitachi SuperH architecture
  • sparc64: Sun SPARC architecture with 64-bit userland
  • x32: 32-bit userland for modern x86-64 processors, incompatible with IA-32
For all intents and purposes Debian is my operating system of choice.  It is, however, not as easy to use as Ubuntu.  Hence, my choice for this guide.

I'm done with the commercials.  No go on... do something... :)