Running Ubuntu as a Virtual OS in Mac OS X
Let's start right off by tackling the most pertinent question for this article: why the heck would someone want to run Linux on a Mac system that already has a very nice Linux distro hidden beneath Mac OS X? Built atop NetBSD, there's quite a bit of Linux sitting there waiting to be utilized in the system, including niceties like crontab, robust account management and much more.
Go to Applications→Utilities, and you'll even find X11, a tightly integrated version of the popular Linux windowing system that plays nicely with the graphical interface that defines the so-called Mac experience. What more could a geek want?
The best answer is simply to quote Sir Edmund Hillary, or perhaps misquote him slightly. Why run Linux on a Mac? “Because you can.” If it just feels too wacked to you, take a deep breath and proceed to the next article in the magazine—no harm done.
Still with me? Great. So let's look at the two ways you can run Linux. You can set up a Mac to dual boot, using Apple's Boot Camp system, which is included with Leopard 10.5 and available for download if you're still running Panther (10.4) from Apple's Web site, but somehow that seems clunky at best given the great virtualization capabilities on modern Apple hardware. As a result, I'm going to focus on getting Linux up and running simultaneously with running Mac OS X.
Two robust applications let you run another operating system within a virtual environment on your Mac: Parallels Desktop and VMware Fusion. The former is a Mac-only company, but the latter might well be familiar to those of you who have run Windows within Linux or Linux within Windows, and so on. I've personally used both products for many years.
I settled on Ubuntu, a Linux distro that has been gaining market share during the past few years and is one of the most popular available. It's also preconfigured for both Parallels and VMware Fusion, so that makes it even better. Free operating systems (that is, anything but Microsoft Windows) can be downloaded easily from vendor sites as a preconfigured data image, alleviating the need to install anything at all—simply download.
Both companies refer to these operating system data images as virtual appliances, and I do so throughout the rest of this article too. You can find Parallels' virtual appliances at ptn.parallels.com, and VMware Fusion's virtual appliances are at www.vmware.com/appliances.
Each repository is impressively broad. For example, the VMware Fusion catalog offers you the ability to download Ubuntu 8.04 alpha 1 or 2, Gentoo 2007.0, PCLinux S, GEubuntu 7.10, OpenSUSE Alpha0, Ubuntu 7.10 Jeos with VMware tools already installed, Linux Mint 4.0 Daryna, and many more Linux distributions, all configured and ready to go. Perhaps even more interesting, you also can download gOS 1.0.1-bagvapp, described as “Google-Wal-Mart's Ubuntu Gutsy-based OS for 'Green PC'”. What Wal-Mart's doing with its own Linux distro, I will leave for another article.
I downloaded Ubuntu 7.10 (Gutsy Gibbon) Desktop—English for VMware Fusion (657MB). Interesting to note, the description states, “perfect to test drive Ubuntu or as a secondary operating system running within Windows.” Windows? We'll see how portable these operating system virtual appliances are I guess. At least it includes a useful set of apps: OpenOffice.org 2.3, Firefox 2, Evolution 2.12, GIMP 2.4, GCC 4.2.1, GNOME 2.20 and X.Org 7.2, all atop Linux kernel 2.6.2.
Downloading files of this size takes us into the world of file sharing: you either can download a single monolithic file in RAR format (RAR stands for Roshal Archive, named after inventor Eugene Roshal) or grab the same file through BitTorrent, which requires a BitTorrent client. I strongly recommend the latter, and I recommend Transmission as the client to use (transmission.m0k.org). It took me a little less than two hours to download this file.
While the Fusion Virtual Appliance was slowly chugging down the pipe and I was waiting for the black helicopters of the MPAA or RIAA to show up and kick in my door (just kidding, mostly, on that last one), I popped over to the Parallels virtual appliance directory. Although better organized, it had considerably fewer appliances available, and there was, in fact, only one reference Ubuntu option, described simply as Ubuntu Desktop. Digging a bit further revealed that it was version 7.04 and was helpfully described as “The virtual appliance is the default Ubuntu Desktop Linux installation. There are various GNOME-based applications.”
That's what I wanted, nonetheless, and at 727MB it was broken into either four 199MB RAR files (yeah, that doesn't add up to 800MB, but you know what I mean) served up by hyperfileshare.com or eight files of 100MB from rapidshare.com. I have to say that this is a significant mistake on the part of Parallels, as these file repositories are confusing, and not having the file accessible through the BitTorrent network is a massive drag. The download is more of a hassle, although it downloaded faster: less than an hour when I, uh, borrowed the network connection at the local café. The biggest problem is that downloads cannot be resumed, while BitTorrent is designed to handle frequent outages, which effectively means you never need to download the same byte twice.
An important thing to note when you do download these virtual appliances is the default user account and password for the OS. For the Parallels virtual appliance, it's ubuntu and the password is 123, and for the VMware Fusion virtual appliance, it's jars, with the password jars. Forget those and you'll be digging through your Web browser history to find the pesky information.
Dave Taylor has been hacking shell scripts for over thirty years. Really. He's the author of the popular "Wicked Cool Shell Scripts" and can be found on Twitter as @DaveTaylor and more generally at www.DaveTaylorOnline.com.
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Panther MPC, Inc.'s Panther Alpha
- Simplenote, Simply Awesome!
- Returning Values from Bash Functions
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- The Tiny Internet Project, Part III
- Tech Tip: Really Simple HTTP Server with Python
- NethServer: Linux without All That Linux Stuff
- Jetico's BestCrypt Container Encryption for Linux