Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

How to transforming your Windows XP laptop into a Dual- Boot XP/Ubuntu Linux System?

Tags: partition disk
Transforming your Windows XP laptop into a Dual- Boot XP/Ubuntu Linux System:-

For those of us who do considerable work in the Linux environment, a Windows-only notebook is far from ideal. I worked with Unix on Windows packages such as Uwin and Cygwin for several years, but I finally decided I wanted a full Linux installation on my notebook. I started with my aging Toshiba laptop (which had about 90 percent of its 30GB disk filled) and, without losing any data, turned it into a dual-boot XP/Ubuntu Linux system with a shared partition where many of my user fi les were accessible whether I was using XP or Ubuntu. This made the
laptop much more versatile, which is ideal for a developer who works in Linux but must also work in Windows for certain applications or for Windows-based development. A few months later, the monitor on that machine gave out. I bought a new HP notebook and transformed it into a dual-boot XP/Ubuntu Linux system right away. This hack describes the steps I took to complete the dual-boot conversions.


Prerequisites: Disk Space and CDs:-
As you might expect, a dual-boot computer requires more disk space than a computer running just one operating system. I don’t recommend performing an XP/Linux dual-boot conversion with a drive smaller than the 30 GB that my older notebook had. A system with more than 60 GB disk space is a more ideal starting point.

When reconfiguring operating systems on a hard drive, you must be able to boot the system using a CD that has appropriate tools for disk partitioning, fi le editing, and so on. I used the System Rescue CD (www.sysresccd.org/Main_Page), a Gentoo Linux 2.4 Live CD (www.gentoo.org) with system utilities including QtParted, GRUB, LILO, archiving tools, editors, CD tools, Perl 5.8, CaptiveNtfs, and others. I downloaded the ISO image fi le using Windows and made my CD using Alex Feinman’s excellent ISO Recorder (isorecorder.alexfeinman.com/isorecorder.htm). I downloaded the installation ISO file for Ubuntu 5.10, “The Breezy Badger,” at Ubuntu’s download page (www.ubuntu.com/getubuntu/download). Again, I made the CD using ISO Recorder.

Windows Disk Preparations:-
If you’re converting a Windows system that you’ve used for some time, the disk may be nearly full, and the files will likely be scattered across it. To install Linux, you need to divide the disk into multiple partitions. One way to do this is to destructively repartition the entire disk, but then you have to reinstall Windows and all of your Windows software—not a pleasing prospect. A better solution is to resize the Windows NTFS partition, then add new partitions for Linux, Linux swap space, and a FAT32 shared partition. Because my Toshiba notebook’s disk was 90 percent full, the first thing I had to do was remove files. If you’re in this situation, see how much space you can free up by:

1. Backing up all critical files (or performing a full system backup if you have capability to do that).

2. Removing Windows software that you never use and never plan to use, using “Add or Remove Programs” (“Uninstall a program” in Vista) in the Windows Control Panel or the uninstallation programs that came with the software.

3. Removing unneeded data files.

4. Moving documents, data files, and project workspaces (for example, software development directories) that you can later store temporarily in the new shared partition to another computer.

5. Emptying the Windows Recycle Bin.

6. Doing all of these things decreased my Windows disk usage to 10 GB, leaving 18 GB free. However, the files were still scattered across the disk.

Before you can resize the NTFS partition, you must move all fi les to the “front” of the disk. You can see the locations of files on your disk by running the Windows Defragmenter utility. Go to Start->All Programs->Accessories->System Tools->Disk Defragmenter to launch the defragmenter. Figure 1-25 illustrates my disk usage after the defragmentation cycle completed.
The files were not as completely packed into the “front” of the disk (the left side of the Defragmenter diagram) as I would have expected. A little research revealed that the Windows Defragmenter applies a less-comprehensive defragmenting approach than is available in some commercial programs. I decided to rerun the Windows Defragmenter. This result looked adequate. More than half of the disk was available for my Linux installation, Linux swap, and the shared FAT32 partition.

One problem that you may encounter in defragmenting a Windows disk using the Windows Defragmenter is unmovable files (the green bars, if you’re looking at your results) located in inconvenient locations (on the right side of the display, near the end of your disk). The two most common unmovable laptop files are the Windows operating system paging file (pagefile.sys) and the hibernation file (hiberfil.sys), which stores the system state when the XP operating system goes into “hibernate” mode. An easy solution is to temporarily removing these files, then reinstall them after you’ve resized the NTFS partition. If you need help with this, see my blog entry “Moving the Unmovable: Windows Disk Defragmentation Strategies” (lyratechnicalsystems.com/?p=9).


Notebook disk usage after running the Windows disk defragmenter


Notebook disk usage after four Windows disk defragmenter runs

Dual-Boot Computer Disk Partitioning:-
When sizing your partitions, consider the following:-

1. Windows NTFS partition: Provide adequate space for the full operating system (including anticipated future patches), installation of all applications you want, and plenty of extra space (just to be safe).
2. Linux ext3 partition: Provide adequate space for the full operating system; for convenience, allow enough space for software installation in the default install locations (/usr/bin, and so on).
3. Linux Swap: Follow the standard rule of allocating swap—twice your RAM.
4. Shared FAT32 partition: Don’t make this too small. For example, if your email will reside on the shared partition, that alone can quickly occupy gigabytes of disk space. Although people often recommend creating a separate partition for the /home directory, I chose to let /home reside on the root partition, in this case. Most of the data that I would normally store in a Linux /home directory is actually in the shared FAT32 partition on my dual-boot systems, leaving /home relatively empty.


Once you’ve decided on partition sizes, boot the system using the System Rescue CD. When the rescue CD presents the boot: prompt, I recommend entering fb800 nodetect:-

boot: fb800 nodetect

This setting bypasses a full search for the devices on your computer. When I tried the default boot with my new HP, the system displayed the message “USB and PCI hot plugging” and froze, forcing me into a hard power-down. My Knoppix 3.7 LiveCD also failed to complete its boot on the HP, using the default options. Because I don’t plan to work with USB or hotplug devices, there is no need to detect them.

After the rescue CD boots, you’ll see a Linux command prompt. Enter run_qtparted to launch the QtParted disk partitioning application. (Documentation and screen shots are available from the project’s site at qtparted.sourceforge.net.) Select the Windows partition (this was /dev/hda on both my systems), and resize it: select Operations->Resize, enter the new partition size (observe your units, MB or GB), and click OK.

Next, create a second primary partition, of type ext3, for the new Ubuntu system: highlight the “02” partition, and select Operations->Create. Set “Create as” to “Primary Partition” (so that the Linux system can boot), select “ext3” as the partition type, give the drive a sensible partition label, enter the partition size, and click OK. Create the Linux swap partition by highlighting number 03 and selecting Operations->Create. Select “linux-swap” as the partition type, selects the swap size, and click OK.

Finally, create the FAT32 partition that both operating systems will share. Highlight number “04” and select Operations->Create. Set the partition type to FAT32, provide a label, and allow the partition to use the remainder of the disk.


Now, study the color-coded diagram at the top of the QtParted window. The sizes of the colored partition regions should match what you expect to see based on your disk space allocation design.
If there is any doubt, you can select Device->Undo to undo your changes, or exit QtParted and start over.

When you’re absolutely certain that everything looks correct, select DeviceCommit. The QtParted program will warn you that all partitions must be unmounted. The hard drive partitions won’t be mounted if you went directly from the CD boot to run_qtparted. Click Yes to commit your changes.

A progress window appears, and QtParted displays various messages as it performs the repartioning operations. It took about ten minutes to repartition my 30 GB Toshiba drive into the four new partitions, but on my HP all operations completed in about a minute. If everything works,
QtParted displays “Operations completed successfully.” Click OK, and then select FileQuit to exit QtParted.

Enter shutdown -r now to shut down the system. At this point, you might want to reboot to verify that your Windows system is still bootable. Windows should boot fine if you selected an adequate resize partition size based on the final Windows defragmentation map. At boot time, Windows may detect the change in disk partition size and begin to run the chkdsk utility. Let this continue so that
Windows can reset its internal information about available disk drives.

After Windows has completed its analysis of the new disk partitions and booted into its normal operating mode, open Explorer and look at the identified drives. You should see the resized boot drive, plus a new drive letter that designates the FAT32 partition you created using QtParted.

Installing Ubuntu Linux:-

To install Ubuntu Linux, reboot the system with the Ubuntu boot CD in the drive. At the Partition disks screen, select “Manually edit partition table.” On my systems, Ubuntu found these partitions:

ntfs /media/hda1
ext3 /media/hda2
swap swap
fat32 /media/hd4

The ntfs partition is the resized Windows partition. The ext3 partition is where you want to install Ubuntu. Make sure you set the mount point to / for this partition, set the bootable flag to on, and let Ubuntu format the partition. For the FAT32 partition, specify a mount point such as /share. When the configuration settings are correct, select Finish partitioning and write changes to disk. The installer will format the ext3 and swap partitions.

Installing GRUB and Making Ubuntu BootableUsing the Windows Bootloader:-

The remainder of the Ubuntu install is straightforward, until you must choose whether to install the GRUB bootloader to the Master Boot Record (MBR). To be extra protective of my working Windows installation, I chose not to install GRUB to my MBR, which led me to a screen titled Install the GRUB boot loader on a hard disk. Here, I identified my Ubuntu partition:
In GRUB’s zero-based drive identification convention, this indicates the first disk drive (drive hd0), second partition (partition 1).

After installing GRUB, Ubuntu will request a reboot to complete its installation running from the hard drive. On both of my systems, the reboot produced the ominous message “Missing operating system.” This message is the result of Ubuntu having set its own partition as the active partition. The Windows bootloader, which is still installed in the master boot record, cannot boot Windows, because the Windows partition is not flagged as active; the Windows bootloader also has no knowledge of the Ubuntu operating system, so that cannot boot, either.

To make the system bootable into both Windows and Ubuntu, reboot into the System Rescue CD. Run QtParted, select the Windows partition (for example, /dev/hda1), and select Operations->Set Active. Select Device->Commit to commit your changes. The QtParted progress window will display the operations, ending with Operations completed successfully. Exit QtParted, but don’t shut down.
Now you must copy data from the Ubuntu partition to a file that the Windows bootloader can use for booting Ubuntu. The FAT32 partition, which is accessible to both Linux and Windows, is useful. At the System Rescue CD command prompt, mount the FAT32 partition:

# mkdir /mnt/share
# mount -t msdos /dev/hda4 /mnt/share

# dd if=/dev/hda2 of=/mnt/share/ubuntu.bin bs=512 count=1
If you enter:
# ls -l /mnt/share

you should see the file ubuntu.bin with size 512 bytes.

Now configure the Windows bootloader. Shut down the system and let Windows boot. Copy the ubuntu.bin fi le from the FAT32 Windows drive to drive C:\. Next, edit the system startup settings. Open the Control Panel, select System, and go to the Advanced tab. Click the Startup and Recovery settings button. Click the Edit button to edit the startup options file manually (Figure 1-27). Clicking Edit loads the boot.ini file into Notepad. Add a new line at the end of the file:

C:\UBUNTU.BIN="Ubuntu Linux"

Save the file and close Notepad. Make sure the “Time to display list of operating systems” has a value of at least 5 or 10, to give yourself plenty of time to select the operating system at boot time. Click OK to save the Startup settings.
You now have a dual-boot XP/Ubuntu notebook computer. Reboot the computer and select Ubuntu Linux to complete the installation and configuration of Ubuntu. Linux configuration issues vary for different computers.

Navigating to edit the Windows bootloader startup settings

Accessing the Shared Partition from Ubuntu:-
Ubuntu mounts the shared FAT32 partition at boot time:

kevin@lyrahpnx:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda2 30233928 1766828 26931288 7% /
tmpfs 517816 16 517800 1% /dev/shm
tmpfs 517816 12588 505228 3% /lib/modules/2.6.12-9-386/volatile
/dev/hda1 19451896 3548380 15903516 19% /media/hda1
/dev/hda4 25916224 160 25916064 1% /share

By default, the root user owns the partition:-

kevin@lyrahpnx:~$ ls -l /share
total 48
drwxr-xr-x 2 root root 16384 2006-02-09 11:03 Recycled
drwxr-xr-x 3 root root 16384 2006-02-09 11:03 System Volume Information
-rwxr-xr-x 1 root root 512 2006-02-09 10:56 ubuntu.bin

You won’t be able to access the shared partition from Ubuntu Linux using your normal login name unless you change this. The simplest solution is to have the /share partition mounted at boot time specifying your login ID as the owner. First, display your user ID record from /etc/passwd (substitute your user name for kevin):

kevin@lyrahpnx:~$ grep kevin /etc/passwd
kevin:x:1000:1000:Kevin Farnham,,,:/home/kevin:/bin/bash

The third and fourth items are the user ID and group ID; these are necessary when you modify the mount command in /etc/fstab. Because fstab is a critical Linux system file, make a backup copy of your working version before you edit the file. Then, edit fstab (use sudo, because root owns the file), and change the options section for the /share entry to defaults,uid=uuuu,gid=gggg, where uuuu is your user ID and gggg is your group ID. Here’s my revised /etc/fstab (note the /dev/hda4 /share entry):-

kevin@lyrahpnx:/etc$ cat fstab
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/hda2 / ext3 defaults,errors=remount-ro 0 1
/dev/hda1 /media/hda1 ntfs defaults 0 0
/dev/hda4 /share vfat defaults,uid=1000,gid=1000 0 0
/dev/hda3 none swap sw 0 0
/dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0

When you reboot into Ubuntu, the /share partition will be mounted with your user name having full ownership and full access.



This post first appeared on Windows Problems And Their Repairs, please read the originial post: here

Share the post

How to transforming your Windows XP laptop into a Dual- Boot XP/Ubuntu Linux System?

×

Subscribe to Windows Problems And Their Repairs

Get updates delivered right to your inbox!

Thank you for your subscription

×