I recently got to install Linux on a few laptops for a customer, and figured I'd write down what I did to make it a dual-boot machine. We choose HP Omnibook 6100s, because we needed a pretty beefy development class laptop, and the project they are working on has standardized on HP hardware running HPUX and Linux. (i2000s, J6700s, x4000s)
Partitioning is always such a pain in the neck... These laptops all came with Windows XP on it, but I quickly downgraded them to Windows 2000. WinXP is too much of an invasion of privacy, and Win2k is as stable as it gets with Microsoft operating systems. Linux has become our development platform of choice, so the Windows part of these laptops won't get used much. After installing Win2k though, I also installed Cygwin, a port of the Linux utilities to Windows. At least that way if we need to use Win2k, we'll all have a normal POSIX environment. Cygwin is great, because it has a bash shell, ssh, gcc, etc... all running on WinDoze. I then topped this off by replacing Internet Explorer with Netscape, Outlook with Eudora, and added ZoneAlarm for a firewall.
Anyway, the first thing I had to do was repartition the laptops. When I downgraded to Win2k, I used the system restore disks, which do their own partitioning. So to install Linux, you have to shrink the FAT32 partition, and install Linux in what's left. To shrink the WinDoze partition, I used FIPS. FIPS spits NTFS, fat32, fat16, or DOS partitions. FIPS is a DOS utility, so to use it you need to have an old DOS boot disk around. I guess you could use Free DOS, but I have plenty of old DOS releases around, so I made a boot disk.
I then shrank the Windows partition down to about 5.5 gig. Win2k fits in about 3.1 gig, but I wanted room for a few other things to make Win2k useful to a bunch of Unix geeks. Win98 is much smaller than Win2k, it'll fit in about 300 meg. The brief time I ran WinXP (5 minutes to run scandisk after partition splitting), it took up about 5 gig, all by itself.
After I had shrunk WinDoze down to something reasonable, I then created a new partition for Linux Hibernation. The default hibernation partition for WinDoze is about 22 meg, on my machines. Linux however, wants to store an image of all your memory, so it needs a lot more. These laptops, being development class machines, had 1 gig of RAM, and the hibernation partition needs a little more space, so I made mine 1042 meg. To create the proper hibernation partition, I used Lph Disk, which also helps calculate the proper size for the partition. To set the partition type for this correctly, you can't use DOS fdisk. I used Tom's Boot Disk, a mini Linux that boots off a single floppy. The Linux fdisk program understands the partition type, which is a0 (IBM Hibernation). To actually make the hibernation partition though, lphdisk searches for a single hibernation partition. I used fdisk to change the type of the 22 meg Win2k hibernation partition to something else. And then after running lphdisk, I changed the type back. Lphdisk needs to use the larger hibernation partition.
I then booted up the RedHat 7.2 install disk (earlier versions don't have support for this laptop's devices), and used Disk Druid to finish the partitioning. I created a 512 meg swap partition, 25 meg for /boot, and 4.5 gig for / (cause I put a lot of stuff in /usr/local). These laptops have 36 gig drives, so I then gave what was left to /home.
I found out a few things about the device support in this laptop. The default driver for the IBM chipset used for the built-in ethernet controller is an eepro100. I discovered this driver times out after about a meg of data transfer. I switched to the Intel written driver, e100, and have had no more problems. To make this change re-enabled after a reboot, edit /etc/modules.conf.
For the ATI Raedon graphics adaptor in this laptop, you need XFree 4.2.0, which came out after RedHat released 7.2. You can get the more recent X11 release at the XFree 4.2.0, site in binary and source form. To install this, just download the binaries for glibc2.2 on Linux, and use the supplied Xinstall.sh script to install. After this is done, run "X -configure", and this will generate a working XF86Config file. To make this the default configuration, copy the file to /etc/X11/XF86Config-4.
I'm still working on the wireless adaptor. I do know it's an ActionTec mini-PCI card, with a Prism II chip set. This is supported by the Linux WLAN Project, but so far, I haven't gotten the prism2_pci driver to get my MAC address right, so it doesn't work, although it loads with modprobe.
The sound is an ESS maestro3, which is supported by RedHat 7.2 with no additional changes.
I also decided to install the latest GNOME 1.4, which is also not shipped with RedHat 7.2. This is the release that also runs on HPUX 11, and I wanted this on Linux for a consistent desktop across all of our development machines. GNOME will also be shipping with Solaris soon (another platform I have to support), so this seemed to be a good idea.
GNOME somehow forced me into using their graphical display manager, gdm, but I prefer a command line login. To turn off gdm, I had to edit /etc/inittab, and comment out this line near the bottom: