OS: SuSE 10.0
Computer: Dell Latitude D610 (Intel 815 Graphics)
Boot Device: External USB 2.0 2.5” Hard Drive with Enclosure (Adaptec ACS-120 & 40 GB Hitachi 2.5" Drive)
Goal: Boot SuSE 10.0 Linux from External 2.5” USB 2.0 Hard Drive Enclosure
This information is based on instructions I found on the Internet about making an external USB 2.0 drive enclosure bootable while leaving the internal hard drive, per-loaded with Windows XP in its original unaltered condition. I do not take credit for all of the information listed in this document. I have added information as it pertains to loading SuSE 10.0 using a Dell Latitude D610 Laptop computer.
I have only worked with four other Linux Distros. They were Red Had 8.0, Red Hat 9.0, Fedora Core 4 and OS/X Core 4.0. Not until I tried SuSE 10.0, did I find an install that would work properly with the Dell D610 Intel Graphics chip. Once I found I could get the video to work with SuSE 10, I preceded in trying to load the OS on an external hard drive.
I highly recommended you consider using the Adaptec ACS-120 External USB 2.0 2.5" Hard Drive enclosure. I found that at least one other cheaper brand enclosure did not want to boot, even though it worked fine when just attaching a USB drive to an already loaded copy of Windows or Linux. You could waste a lot of time trying to boot a USB drive that simply will not boot from the external USB drive enclosure you have purchased. Here are my 12 steps to success.
Step 1: Backup your C: Windows hard drive to another USB external drive (not the drive you are going to load Linux on. I suggest you use Norton Ghost 9 or 10. Both worked great for me. If, you do not back up your internal hard drive, be aware that if you fail to stop GRUB from loading on the Laptop internal IDE hard drive, your copy of Windows may be GONE! Be Ye for WARNED!
Step 2: Setup the correct boot order in the Dell BIOS. Restart the Laptop, and Press F2 to go into BIOS setup. Go to the boot setup and press enter. Use the up and down arrow keys to highlight the USB device and use the 'U' key (Up) or 'D' key (Down) to place the device where you want it. I setup the floppy first, the CD-ROM second, the USB device third and the IDE hard drive forth. Other listed devices can exist in any order below the IDE hard drive. Press enter when done and press Escape to exit and save your changes.
Step 3: Plug-in your USB hard drive into any USB port on the computer (do not use an external hub). If you are using a docking station, use one of the built-in USB ports on the side of the Laptop computer. Do not use a Docking Station USB port. Insert the first SuSE 10.0 disk in the CD-ROM drive. Since the CD-ROM is listed first in the boot order, it should boot up first. Either turn on or restart your computer. I used the five CD-ROM SuSE 10 disk set and did not use the single DVD.
Step 4: Boot from the first SuSE 10.0 Disk and answer the first questions as you wish until you get to the point just before the install. You need to select the Expert tab and pick the Boot Loader. Do Not Install Grub on your local hard drive (Master MBR). Doing so will render your copy of Windows XP unbootable. I selected the second option to load to /Dev/Sdb2. I also picked the Grub option to load generic boot code in the MBR and left the other two options selected.
Step 5: Also, before you begin the install, this is your opportunity to select other software from the lists by picking the software setting on either Tab. I suggest you add games, mobile computing and expert options. Read through the list and watch your used disk space to make sure you have lots of room left over. I used the KDE desktop as I found it was able to print to Windows shared printers with little trouble and in general more of the installed applications seemed to work properly.
Step 6: Let the Install begin. The first disk takes between 10 and 25 minutes to complete depending on the speed of your hard drive and the number programs you are loading. Do not leave the front of your monitor, but watch the load progress. This is because SuSE 10.0 reboots the computer after loading the first disk and the reboot will not work properly until you make more changes to your USB load. Further, you could end up either starting over loading Linux for no reason or locked up on your new USB drive, sitting there not doing anything.
Step 7: Allow the SuSE install Disk one to reboot your computer after the loading of SuSE disk one is complete. Keep Disk 1 of SuSE 10.0 in your CD-ROM drive. Because you have setup the CD-ROM drive to boot before the External USB drive, the first SuSE 10.0 install disk will boot up again. When you get to the first SuSE menu, select the Rescue Linux operation. SuSE will then load the text based Linux system into a RAM drive that can be used to modify you newly loaded USB external hard drive.
Step 8: When you finally get to the Linux Terminal text based prompt enter the name 'root' and press enter. I assume you used the default partitioning of the external USB drive. Now you need to get to the Root of the Linux RAM disk file system and, mount your USB drive and modify your kernel text file to load USB drivers. Type in the following commands without the single quotes and press enter at the end of each line.
'CD ..'
'mkdir /mnt/sysimage'
'mount /dev/sdb2 /mnt/sysimage'
'chroot /mnt/sysimage'
What you just did was create a folder called /mnt/sysimage in your present RAM drive created by the SuSE 10.0 boot disk rescue mode. You then mounted the external USB hard drive partition number 2 into Linux's unified file system. Last, you changed the Root folder to your external USB drive Linux folders. When you do a DIR terminal command now, it will look the same as before you entered all of the above commands, but you are looking at your USB drive instead. It is important to remember the four above steps. You can use them anytime you need to modify a non-working copy of Linux using the Number one Linux 10.0 boot disk.
Step 9: Next, you need to edit the Kernel Text file to allow the loading of USB drivers at boot time by your Linux Kernel after Grub is done. USB drivers are already being loaded by Linux latter, but you need them to load during startup. I assume they are left out here to speed up the loading of Linux from an internal IDE hard drive.
You can use the Text Editor 'VI' which is VERY simple in nature. When you start VI, you can delete characters, but you can not add them, so press the 'INSERT' key to allow adding and removing characters as needed. You can move your cursor any where around the file. Do Not Press Enter unless you really want another line. Press the 'ESCAPE' key to exit the insert mode so you can save the file after doing an edit. Then you press ':wq' which means Command:Write file and Quit. Enter the following terminal command:
'vi /etc/sysconfig/kernel'
Find the line that starts with INITRD_MODULES=” and you want to insert the following items and a space each after the command reiserfs.
ehci-hcd
ohci-hcd
uhci-hcd
usb-storage
sd_mod
It might look something like this when done:
INTRD_MODULES=”reiserfs ehci-hcd ohci-hcd uhci-hcd usb-storage sd_mod”
Other commands may exist before reiserfs and that is OK, just leave them alone. If you see INTRD_MODULES=”” you are most likely not editing the right file. If you can't find kernel, you have not really mounted your external hard drive properly.
Step 10: We need to make the INITRD disk image file to use at boot time based on the items we have in the Kernel Text file. We use the command mkintrd which is defined as:
**********************
mkinitrd, creates an initial image used by the kernel for preloading the block device modules (such as IDE, SCSI or RAID) which are needed to access the root file system. mkinitrd automatically loads file system modules (such as ext3 and jbd), IDE modules, all scsi_host adapter entries in /etc/modprobe.conf, and raid modules if the system's root partition is on raid, which makes it simple to build and use kernels using modular device drivers.
Any module options specified in /etc/modprobe.conf are passed to the modules as they are loaded by the initial ram disk.
The root file system used by the kernel is specified in the boot configuration file, as always. The traditional root=/dev/hda1 style device specification is allowed. If a label is used, as in root=LABEL=rootPart the initrd will search all available devices for an ext2 or ext3 file system with the appropriate label, and mount that device as the root file system.
***********************
Issue the following commands:
'mount -tproc none /proc'
'mkinitrd'
If you get an error that /proc is already loaded, you forgot to enter the CHROOT command in the instructions in Step 8 above. You should see the new USB commands you entered go by the screen in a small blaze of text. If you get any errors at all, you may have skipped a step or misspelled something.
Step 11: OK, now is time for the acid test. Remove your SuSE 10.0 Boot disk one from the CD-ROM drive and hit Ctrl-Alt-Del and restart your computer. If you did it right, SuSE 10 will load from the USB hard drive and continue on with loading, asking for disks two through five.
I suggest you change your monitor setting to Vesa 1280x1024@60hz and make the default screen size the same. I had sound, network and video work like a champ. I have not yet tried out the wireless connection, but I will do so.
Step 12: OK, so you might want to boot to Windows XP while your USB 2.0 External Hard Drive is attached. I found that the default Windows load created by the SuSE 10.0 installation did not work for me. I found that the following entries in the file /boot/grub/menu.lst worked for me.
###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1
boot
Here is some important text file information to know.
/etc/kernel Text File with Kernel loading information
/etc/fstab Text file with Loading instructions for mounting drives
and devices
/boot/grub/menu.lst Text File with your Grub Menu selections
/boot/grub/device.map Text file listing hard drives and physical Linux names
/etc/grub.conf The file /etc/grub.conf contains parameters for the
terminal command "grub"
It you find you need to edit one the files listed above, just boot from the first SuSE CD and pick rescue mode. Enter the four commands as listed in Step 8 and use the VI text editor to make your changes. I suggest you use VI to look at all of these files, but just use ':q' to exit VI when done. Lets say you loaded Linux on an internal disk drive and then moved it to an external USB case. You could edit fstab, menu.lst and device.map to match the drives new location. If you change device.map you must enter the following commands to update grub.conf. If you did not change device.map, do NOT enter the following command!
'grub --batch --device-map=/boot/grub/device.map </etc/grub.conf'
Also, if you are using a docking station, do not plug your USB Hard Drive into the docking station USB ports. The external USB drive becomes /dev/sdc and not /dev/sdb when connected to the docking station. So, what you need to do is to plug your USB drive into one of the Laptop side mounted USB ports which still work and allows the drive to remain device /dev/sdb as you have configured your Linux load.
Good luck. You can send your comments to this document to:
jmcdaniel3@austin.rr.com
Thank You,
James D. McDaniel