2

Today I wanted to upgrade the kernel on my debian/testing system from 2.6.32-5-686 to 3.9-1-686-pae. So I installed the image by sudo aptitude install linux-image-3.9.1-686-pae (or something like that). Then it said, I need to install some headers, so I did by sudo aptitude install linux-headers-3.9.1-686-pae or something like that. Now my system doesn't boot correctly. Both kernels are still installed or at least I can choose both of them in GRUB to load.

However, I still have the system here, it just doesn't boot. I have two partitions on my disk: (1) sda1, which is my boot partition (flag is still there) and (2) sda2, on which I created two virtual volumes using lvm: base-root for / and base-home for home. I managed to mount each partition/volume on a live system I'm on (using an usb stick).

This is what is happening while booting with any of the installed kernels:

early console in decompress_kernel

Decompressing Linux ... Parsing ELF... done.
Booting the kernel.
Loading, please wait...
Gave up waiting for root device. Common problems:
 - Boot args (cat /proc/cmdline)
  - Check rootdleay= (did the system wait long enough?)
  - Check root= (did the system wait for the right device?)
 - Missing modules (cat /procmodules ls /dev)
ALERT! /dev/disk/by-uiid/<some_uuid> does not exist.
Dropping to a shell!

BusyBox...
Enter 'hel...

/bin/sh: can't access tty; job control turned off

The system waits/searches for about 30s after the "please wait..." message. This is the output of cat /proc/cmdline (while trying to boot the new kernel, for the old kernel, there is an analogous message):

BOOT_IMAGE=/vmzlinuz-3.9.1-686-pae root=UUID=<someuuid>

Now, this is the output of ls /dev/mapper/:

control

Usually, there are also entries for base-root and base-home. So my guess is, that there is some lvm kernel module which is needed to interpret the volumes from lvm and isn't loaded in the kernel. Strangely, it seems to be missing in the olde kernel, too.

This is the output of cat /proc/modules when booting the new kernel:

usbhid 35908 0 - Live...
hid 64559 1 usbhid  - ...
ohci_hcd 22150 0 - ...
dm_mod 577277 0 - ...
sd_mod 577277 - ...
crc_t10dif 12332 1 - ...
ahci 25000 0 - ...
libahci 22632 1 ahci - ...
thermal 13172 0 - ...
ata_generic 12450 - ...
thermal_sys 18359 thermal, ...
libata 126017 3 ahci, libahci,ata_generic, ...
uhci_hcd 22424 0 - ...
ehci_pcs 12432 - ...
e1000e 123671 0 - ...
ehci_hcd 3570 1 ehci_pci -
usbcore 110217 5 usbhis,ohci_hcd,uhci_hcd,ehci_pci,ehci_hcd, ...
scsi_mod 135333 2 sd_mod,esndld, ...
ptp 131711 e1000e, ...
usb_common 12338 1 usbcore, ...
pps_core 13071 1 ptp, ...

(I might fill in the "..." later.)

Anyway, what I want to do is obviously to boot from properly into my installed debian system on base-root.

My strategy so far is:

  • write down error messages returned while booting (and post them here)
  • google them, try to understand the error

Momentarily, I have these questions:

  • What does this error mean? What is /proc/cmdline for? How can I change its contents?
  • Which modules/devices should I have installed? Which modules are missing and should be loaded?
  • How can I tell my kernel to load some other module.

Edit: Googling the error messages, I found this, seems related.

2 Answers 2

2

Okay, I got a partial answer, a workaround, based on this bug report log, I found. I can boot after changing the grub boot kernel arguments root to root=/dev/mapper/base-root and adding rootdelay=1 lets me boot to my system. Yay!

How do I make these changes permanent, and are there any real solutions to this bug yet?

1
  • 2
    Add them to GRUB_CMDLINE_LINUX in /etc/default/grub and re-run update-grub?
    – user
    Commented Aug 3, 2013 at 19:03
0

The proper way to make them permanent is to edit /etc/default/grub and uncomment:

GRUB_DISABLE_LINUX_UUID=true

After that run:

update-grub

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .