The neat thing about PartitionMagic is that you can repartition your disk without losing any data. It also comes with a utility called BootMagic that runs in its own partition and lets you choose which operating system you want to boot.
You don't have to use PartitionMagic or BootMagic for that matter. There's even a video on the net that describes how to set up a desktop to boot either Windows XP or Ubuntu without using any third-party software; but it also wipes your disk. I decided to keep Windows and use PartitionMagic.
By the way , watch the video if you have time. It does show how easy it is to do this dual booting stuff, but it's also just a lot of fun. It's a couple of guys from West VirginiaUniversity cutting up.
The last section I wrote shows a screen capture of a PartitionMagic screen. It has four primary partitions; a disk can only have four primary partitions.
The first primary is called G:, and it's the BootMagic partition. BootMagic must run from a FAT or FAT32 partition that's at least 50M and starts below the 8G boundary. I made a FAT partition right at the beginning of my hard drive. The next primary partition is called /boot. It's a bootable Linux Ext3 partition and is where I loaded GRUB during the Red Hat installation. It's also where I put GRUB for the Ubuntu installation. The third primary partition is C:, and this is where Windows XP lives. The fourth primary partition contains several extended partitions.
The extended partitions are called F:, /, and /home. F: is a FAT32 partition that I set up to transfer files between Windows and Linux; / is where Linux lives, and /home contains my home directory and the directories of any as yet uncreated users. I wanted to separate my own files form the system files, thinking that I can upgrade and reformat / but leave /home alone.
When I installed Ubuntu, my Windows partions appeared mounted, apparently by default. They were called hda1, hda2, and hda5. hda1 is the BootMagic partition, and there is little of interest for me there when I am in Ubuntu. hda2 is C:, and it gives me access to all my Windows files. Unfortunately, I have to be root to access hda2, but I can copy a file and then chown , chgrg , and chmod to make it accessible to my non-root user. hda5 is F:, and I do not have to be root to access this partition. If there's a way of getting non-root access to C:, then I don't need F:.
So Ubuntu comes up pretty easily. I choose a custom installation, but then took most of the defaults. I did choose not to put GRUB (The Grand Unified Bootloader). I chose to put the bootloader in the first sector of /boot and not in the MBR, the Master Boot Record. If I put it in the MBR, I would overwrite PartitionMagic’s BootMagic loader. Red Hat wanted /boot to be placed before the 1024 cylinder limit. It still is, althugh I don't know if this is important for Ubuntu. Anyway BootMagic works as before, and I can choose to boot either Windows XP or Ubuntu.
You can customize the Ubuntu desktop to look however you like, but the default is a brown, earthy motif that looks neat. I clicked on Evolution and easily configured email to work. It was very much like an Outlook configuration, and Evolution reminds me of Outlook, It's probably heresy to say that. I'm sure Linux people can point to lots of new features, but I use it in much the same way as Outlook.
The default Ubuntu installtion does not include gcc. A Linux installation without a compiler, I was shocked, but then when you think about it Windows XP doesn't come with a compiler. I wonder if that statement is still true. I mean if future Windows installation come with the Framework , doesn't the Framework come with a command line C# compiler? I don't know, but Ubuntu does come up with no C++ compiler. This may have something t do with the requirement that the installation fit on one CD.
Getting and installing a C++ compiler is not difficult. Searching for Ubuntu and gcc, I came across a forum entry where someone was complaining about having no gcc and the response was, well, just type sudo aptitude install build-essential . First of all that didn't work for me because I din't know how to confiugre sudo (more on that later), but I just became root and typed the command without the sudo and gcc got installed. And here's a screenshot showing how gcc can compile a helloworld program.

I really want to have some kind of IDE and decided to try out Eclipse, which is what people tell me they use. But before trying to install Eclipse, I wanted to solve two related problems.
First, when I click on “Add Applications” in the Applications menu, I get a box asking for a password. If I give the root password, I get an error. If I give my own password, I get no error, but nothing happens. The actual command line for “Add Applications” is /usr/bin/gksudo /usr/bin/gnome-app-install . I can get the Application editor running by becoming root and typing just /usr/bin/gnome-app-install . So the second problem is that sudo was not working for me.
I discovered that sudo must be configured. I think this is probably an obvious thing to most Linux users, but it's not something I had come across before. The way sudo works is that you get a prompt for a password and you give it your own user password, not the root password. Then, if you are one of those special users allowed to run root commands, you run the command on the sudo line and then you can be root for some configured length of time like a few minutes. gksudo is a frontend to sudo that lets you run graphical commands like “Add Applications.”
To become one of the special users allowed to run root commands, you have to edit the file /etc/sudoers. You have to become an sudoer. If you become root and open the file with vi , you open a read-only version with a warning that you should use the command visudo to edit the file.
The syntax of the file is straightforward. All the information you need is in the manpage, but on first reading I found the manpage confusing. Lots of information about syntax and little upfront about how the feature actually works. I pulled out one of my old Linux Administrator books (still in print too, check out Amazon), Red Hat Linux Administrator's Guide by Kerry Cox. Yes it has a lot of Red Hat specific stuff in it, but the section on sudoers is generic enough and well-written. What I did was add a user alias specification User_Alias IT=ted followed by a user privilege specification IT ALL=(ALL) ALL. This lets any user in IT (just ted so far) run any command on any host as any user.