So, I have looked up just what the USB 3 module is called and it is called xhci-hcd, but I can’t say that this module is not automatically loaded. Way back when, at around version 10.0 of openSUSE, no USB drivers were loaded automatically and all had to be added to Initrd module if you intended on booting from a USB hard drive, but that is no longer true with the present openSUSE version, but again, I am not sure about USB 3.0 support. The basic issues were/are:
- Can you really boot from a USB 3.0 device by BIOS setup?
- Does the openSUSE Initrd Image really contain the xhci-hcd module, able to use/boot from UISB 3.0 drives?
- Is it possible your Grub Menu.lst file is just not setup properly to boot from an external hard drive?
- Is it possible you just don’t have the correct partition setup to work with openSUSE?
To over come an Intrd image file that might be missing the xhci-hcd module, you must download a LiveCD boot disk you can boot from to fix your openSUSE installation AFTER it has been installed. So, to make sure you understand how to install openSUSE onto an External Hard drive, here is basic partition setup information you need to know:
Each hard drive can have up to four PRIMARY partitions, any of which could be marked active and bootable. No matter what you might hear, only one of the first four primary partitions can be booted from. That means you can boot from Primary partitions 1, 2, 3 or 4 and that is all. In order to boot openSUSE, you must load openSUSE and the grub boot loader into one of the first four partitions. Or, your second choice is to load the grub boot loader into the MBR (Master Boot Record) at the start of the disk. The MBR can be blank, like a new disk, it can contain a Windows partition booting code or generic booting code to boot the active partition 1, 2, 3, or 4. Or, as stated before, it can contain the grub boot loader. Why load grub into the MBR then? You do this so that you can “boot” openSUSE from a logical partition, numbered 5 or higher, which is not normally possible. In order to have more than four partitions, one of them (and only one can be assigned as extended) must be a extended partition. It is called an Extended Primary Partition, a container partition, it can be any one of the first four and it can contain one or more logical partitions within. Anytime you see partition numbers 5, 6 or higher for instance, they can only occur inside of the one and only Extended Primary partition you could have.
What does openSUSE want as far as partitions? It needs at minimum a SWAP partition and a “/” partition where all of your software is loaded. Further, it is recommended you create a separate /home partition, which makes it easier to upgrade or reload openSUSE without losing all of your settings. So, that is three more partitions you must add to what you have now. What must you do to load and boot openSUSE from an external hard drive? Number one, you must be able to select your external hard drive as the boot drive in your BIOS setup. Number two, you need to make sure that the external hard drive, perhaps /dev/sdb, is listed as the first hard drive in your grub device.map file and listed as drive hd0. I always suggest that you do not load grub into the MBR, but rather into the openSUSE “/” root primary partition which means a primary number of 1, 2, 3 or 4. If number one is used, then that will be out. You will mark the openSUSE partition as active for booting and finally you must load generic booting code into the MBR so that it will boot the openSUSE partition. I suggest a partition like this:
- /dev/sdb, Load MBR with generic booting code
- /dev/sdb1, Primary NTFS Partition for Windows
- /dev/sdb2, Primary SWAP (4 GB)
- /dev/sdb3, Primary EXT4 “/” openSUSE Partition Marked Active for booting (80-120 GB)
- /dev/sdb4, Primary EXT4 “/home” Your main home directory (Rest of the disk)
Now, if you feel you have install oipenSUSE properly to work with an External Hard drive, here is what you might do to add the xhci-hcd module to openSUSE, should it be missing:
- Boot from a LiveCD AFTER you have installed openSUSE properly, but where it does not boot into openSUSE properly.
- Open Up a terminal session and execute the following commands:
mount /dev/sdXY /mnt/sysimage
NOTE: X=disk name as in a, b, c or d AND Y=1, 2, 3 or 4 as to partition number. Ex:sdb1 where you have installed the main or root openSUSE partition called /
- Use VI or other text editor (Look up the VI editor command first) and edit the file /etc/sysconfig/kernel
- In the text file called kernel look for the line that starts with INITRD_MODULES=" and add the name xhci-hcd to the line and save the file. For instances, here is what my line says with this option added:
INITRD_MODULES=“xhci-hcd pata_jmicron ata_generic thermal processor fan”
Your line will likely be different than mine.
- Issue the following terminal commands after you have edited the above text file called kernel located in the folder /etc/sysconfig/
mount -tproc none /proc
This should create a new image in the /boot folder that might be named: initrd-184.108.40.206-1.2-desktop and is being loaded in your /boot/grub/menu.lst file.