USB Boot Problem

Hello Everyone.
I ve installed opensuse on a WD external HDD.
I had kernel 3.17.4-1-desktop from factory image disk downloaded from tumbleweed. It boots up without any problem. Today i have installed kernels 3.18.1 from factory (“kernel:stable”) and 3.19.rc1 (“obs:home:pontostrory”).
In the two last kernels, after loading kernel and initrd and printing two echo statements in grub (loading linux…,loading initrd…), the LED of hdd seems to blinking in sleep mode, after then printing “the reached target basic system”, system freezes about one minute and then starting dracut emergency shell and below it there’s a warning :
“Warning: /dev/disk/by-uuid/0a37216c-640f-43ec-a9d6-319cc8b0d362 does not exist” and then dracut shell.
I have all these 3 kernels on my system. Kernel 3.17 from DVD iso boots fine, but the other two, NO!
Checked grub config file, all the options except file pathes are the same.


    menuentry 'openSUSE, with Linux 3.17.4-1-desktop' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.17.4-1-desktop-advanced-0a37216c-640f-43ec-a9d6-319cc8b0d362' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos 
        insmod ext2
        set root='hd3,msdos6'
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd3,msdos6 --hint-efi=hd3,msdos6 --hint-baremetal=ahci3,msdos6  0a37216c-640f-43ec-a9d6-319cc8b0d362
        else
          search --no-floppy --fs-uuid --set=root 0a37216c-640f-43ec-a9d6-319cc8b0d362
        fi
        echo    'Loading Linux 3.17.4-1-desktop ...'
        linux    /boot/vmlinuz-3.17.4-1-desktop root=UUID=0a37216c-640f-43ec-a9d6-319cc8b0d362   resume=/dev/sda5 splash=silent quiet showopts
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd-3.17.4-1-desktop
    }
    menuentry 'openSUSE, with Linux 3.18.1-1-desktop' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.18.1-1-desktop-advanced-0a37216c-640f-43ec-a9d6-319cc8b0d362' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos 
        insmod ext2
        set root='hd3,msdos6'
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd3,msdos6 --hint-efi=hd3,msdos6 --hint-baremetal=ahci3,msdos6  0a37216c-640f-43ec-a9d6-319cc8b0d362
        else
          search --no-floppy --fs-uuid --set=root 0a37216c-640f-43ec-a9d6-319cc8b0d362
        fi
        echo    'Loading Linux 3.18.1-1-desktop ...'
        linux    /boot/vmlinuz-3.18.1-1-desktop root=UUID=0a37216c-640f-43ec-a9d6-319cc8b0d362   resume=/dev/sda5 splash=silent quiet showopts
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd-3.18.1-1-desktop
    }
...

Also in the initrd files of all 3 , there are ehci,xhci,ohci modules, (checked them with lsinitrd).
Whats wrong and how to fix it??

You should be able to boot from the 3.17 kernel. And you can probably use that to “fix” the problem.

See Bug 911319

That bug report has to do with reading a USB keyboard. You are having a similar problem with a USB disk. There’s probably an additional module that you will need to load (in addition to the one that I identified).

Here’s what I did:

1: I downloaded the tumbleweed live rescue ISO, and booted that (booting from a USB).
2: On the system booted from that live iso (with a 3.18 kernel), I checked that I could use a USB keyboard (that was fine). I suggest that you mount a USB disk. If you boot the live rescue system from USB, then it will already be mounted so you will have met that requirement.
3: I did “lsmod” and saved the output to a file. This lists all of the loaded modules.

This was all on the same computer where I was having problems.

4: I booted that computer using a 3.17 kernel (which did boot).
5: I did “lsmod” to get a list of loaded kernel modules.

I compared the modules from the two lists. Any module in the list for the 3.18 boot, which was not in the 3.17 boot is a possible suspect. In my case, there was one that seemed obviously related to my usb keyboard problem. So the patch that I list at that bug report is to add that module to the “initrd”. If you can identify the missing module, then similarly force that into the “initrd” (probably by editing that same dracut script). Then run “mkinitrd” to regenerate the “initird”. If that fixes it, be sure to add a note to the bug report (or, perhaps, start a separate bug report).

A further comment. It is possible that the change I made (and listed in that bug report) is sufficient. You might want to try that first.

For easy reading, here’s my “patch”


--- module-setup.sh     2014/12/29 03:00:30     1.1
+++ module-setup.sh     2014/12/29 03:02:33     1.1.0.1
@@ -41,6 +41,7 @@
             ehci-hcd ehci-pci ehci-platform \
             ohci-hcd ohci-pci \
             uhci-hcd \
+           xhci_pci \
             xhci-hcd
 
         instmods yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \

In case you are not familiar with patches, that just says to add one one to the file. Add the line with the “+” in column 1. But do not include the “+” in what you add. It is the rest of that line that you insert as a new line.

The file to be patched is “/usr/lib/dracut/modules.d/90kernel-modules/module-setup.sh”.

After making that change, run “mkinitrd”. Then see if you can reboot to the 3.18 kernel.

And if that works, comment on the bug report. This isn’t really fixed until the Tumbleweed maintainers make the appropriate change to their sources. And until it is really fixed, it could break again with a future update.

Hey, thanks dude, you were right. Thanks alot. After adding “xhci_pci” kernel 3.18.1 3.19rc1 booted up from external hdd. I 'll comment on your bug report too.