FS#18810 - [mkinitcpio] Kernel doesnt recognize hard disk (probably after some upgrades)
Attached to Project:
Arch Linux
Opened by Ivan (finarfin) - Tuesday, 23 March 2010, 22:58 GMT
Last edited by Tom Gundersen (tomegun) - Saturday, 18 June 2011, 19:45 GMT
Opened by Ivan (finarfin) - Tuesday, 23 March 2010, 22:58 GMT
Last edited by Tom Gundersen (tomegun) - Saturday, 18 June 2011, 19:45 GMT
|
Details
Description:
After last upgrades my pc doesn't want to boot. It stops with the following error message: Root device `/dev/disk/by/uuid/2ae0fc55-a2e9-4c9d-92d6-47caadd72ec4` doesn't exist. Attempting to create it ERROR: unable to deterime major/minor number of root device `/dev/disk/by/uuid/2ae0fc55-a2e9-4c9d-92d6-47caadd72ec4` You are being dropped to a recovery shell. Type exit to try and continue booting ... The hardware hasn't changed (no upgrade or modifications to configuration) Additional info: * package version(s) kernel26 2.6.32.10-1 kernel26-firmware 2.6.32.10-1 udev-151-3 * config Pentium 3 800mhz IDE interface: VIA Technologiess VT82C586A 2 ide hd: 1. 13gb with 2 ext2 partition the first point to /boot the second to / 2. 80gb with 2 partition the first is a FAT32 partition and the second a ReiserFS partition that point to /home Steps to reproduce: N/A In order to solve that problem I tried to: -downgrade udev to version 151.2 -downgrade the kernel but nothing changed. |
This task depends upon
Closed by Tom Gundersen (tomegun)
Saturday, 18 June 2011, 19:45 GMT
Reason for closing: Works for me
Additional comments about closing: Works with the newer kernel.
Saturday, 18 June 2011, 19:45 GMT
Reason for closing: Works for me
Additional comments about closing: Works with the newer kernel.
Second i have blkid installed and the output is:
/dev/sda1: UUID="71d4505b-91a4-410c-ac6a-cb065d395c00" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda2: UUID="2ae0fc55-a2e9-4c9d-92d6-47caadd72ec4" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda5: TYPE="swap" UUID="30c067ce-cf08-4bd6-901a-9647022b1b3e"
/dev/sdb1: LABEL="LINUXREALM" UUID="D8D3-32C9" TYPE="vfat"
/dev/sdb2: UUID="6c5330d4-8476-4ec0-8099-1c8e73724a21" TYPE="reiserfs"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/sdc1: LABEL="Transcend" UUID="3088-08C6" TYPE="vfat"
So the uuuid of the root partition is correct.
- pacman -Syu
- pacman -S base
with no luck.
kernel /boot/vmlinuz26 root=(bla bla bla) rootdelay=20
Maybe the new kernel takes more time to recognize the root device and this rootdelay can help you.
If it does not help, I have to say that I'm still at 2.6.31 because versions 2.6.32 and 2.6.33 get stuck when detecting my usb hard disk at boot, during rc.sysinit process. Maybe both problems are related somehow.
Best regards! David.
I also labeled the disk and changed the kernel line to reflect the device at /dev/by-label/Arch_Linux, but that did not change anything either.
I had the same problem; removing autodetect from my HOOKS line in /etc/mkinitcpio.conf and running "mkinitcpio -p kernel26" produced a working image for me.
IVan: try changing your drive's entry in grub's "menu.lst" and mount entry in "/etc/fstab" from "ro" to "rw" and see if that helps.
i tried to use the rw option, both in fstab and in menu.lst, it no help.
All disks fsck ok. "/" is ext4.
Changed disk reference from by-uuid to /dev/sda6 in menu.lst; no help.
USB keyboard unresponsive: have to power-cycle to regain control.
Fallback kernel does not work.
So while the drive is detected in the initial system bootup, at some point it seems to "go away".
Three days with no solution, nor even the vaguest hint of one.
(i hate UDEV :) the old system in my opinion was better :D)
Now i try with autodetect...
But when kernel drop me into emergency shell, /dev contain only tty* and few other things, but there is nothing that refer to a drive.
But when i boot from arch install cd i can mount them and chroot inside them :(
I tried also adding autodetect to mkinitcpio.conf but the problem is still there.
The only difference is when i remove autodetect, and kernel start booting, but it block when it try to write on various logs into / because it says that the device is read-only.
I also tried to modify in grub/menu.lst ro with rw. No luck.
http://wiki.archlinux.org/index.php/Mkinitcpio#mkinitcpio_hangs_on_.27autodetect.27_during_kernel_upgrade
I had the same problem; removing autodetect from my HOOKS line in /etc/mkinitcpio.conf and running "mkinitcpio -p kernel26" produced a working image for me."
We victims of this bug have no keyboard interaction to enable us to enter commands.
2) A bug should be filed in regards to not being able to use a usb keyboard in busybox. I had the same thing happen to me. I simply plugged in a PS2 keyboard, however this may not be a valid solution for some (those who lack a ps2 port)
1. in mkinitcpio i put in modules: piix via82cxxx and in hooks removed autodetect and replaced pata with ide. The file is: DSC04586p.JPG
2. in mkiniticpio modules: via82cxx and hooks like 1 but with autodetect, result is in DSC04586p.JPG
In both cases no success.
Next try:
module: via82cxxx hooks use pata instead of ide.
DSC04581p.JPG (287.1 KiB)
Success? Noooo
Another fail...
For today i raise a white flag :)
I finish all ideas :(
my poor pc. And if i try to reinstall Arch?
This probably confirms the misplaced pacman db due to pacman-cage which no lionger is installed.
I'm not using pacman-cage.
Booting from the Arch CD.
Chroot'ing as described in the Kernel Panics Wiki.
Changing mkinitcpio.conf as follows:
"
#HOOKS="base udev autodetect pata scsi sata ide filesystems keymap hal"
HOOKS="base udev scsi sata ide filesystems keymap"
"
Running "mkinitcpio -p kernel26"
Rebooting.
I mean, there has to be some reason for this problem...
EDIT: what does the hal hook do?
I don't know or remember why I had "hal" in the previous HOOKS. mkinitcpio -p kernel26 during my recovery operation objected to it, so I removed it.
Either those of us suffering this bug caused it ourselves by using an incorrect mkinitcpio.conf (that has sufficed up till now), or the bug lies elsewhere; I am none the wiser, and few seem to care about this bug.
The other concomitant bug - the unresponsiveness of USB keyboards in the recovery console - is yet to be explained.
The reason why I asked about modules is that I have Arch on 5 (pretty old) machines and haven't experienced your problem. So, I wondered if was just lucky or some modules are becoming deprecated in the newer kernels...
Regarding the USB keyboards, there is a hook called "usbinput" -- read mknitcpio wiki. It should work...
Confused here -- what was menu.lst, which led to a successfull arch boot? And can you reproduce it, that is boot correctly again?
Sorry, when talking about grub.cfg, I meant menu.lst. So far I haven't changed anything. Tried to change to root to the proper device (/dev/sda7 in my case) but still not booting. Right now I'm @home so now I have everything I need to do further testing and see if I can get Arch to boot. I'll keep you all informed.
Thank you for the tip about the "usbinput" hook.
I've been investigating what's happening to me and maybe this could be interesting for the developers:
* In my particular case, I use an old PIII 650MHz laptop with two USB-1 integrated ports, so I installed a PCMCIA card with has the two USB-2 ports I use to connect to the USB drive.
* With 2.6.31 both USB-1 and (over the PCMCIA card) USB-2 ports can be used to connect the USB external drive with no problems.
* With 2.6.32 and 2.6.33, I can connect the USB external drive to any of the USB-1 ports with no problems at all.
* With 2.6.32 and 2.6.33, if I connect the USB drive to one of the PCMCIA card USB-2 ports, when Linux tries to mount it, it just never ends trying to mount it.
There is something more: kernels 2.6.32 and 2.6.33 actually CAN mount the USB drive connected to the USB-2 ports, but ONLY in READ ONLY mode. For example if I use:
mount /dev/sdb6 /media/test -t ext3 -o ro
then it mounts correctly
If I use instead:
mount /dev/sdb6 /media/test -t ext3 -o rw
Then it keeps trying to mount
The same behavior happens even when loading the ramdisk. If the usb drive needs any correction in the filesystem, as the ramdisk tries to mount it in rw mode to correct any problem, it also hangs.
So, something is wrong either with the yenta_socket (PCMCIA module) or the ehci_hcd (USB-2) modules (or maybe another one related to both), when using them to mount the USB drive in read/write mode. I hope this information maybe can be useful for you.
Best regards. David Bluecame.
FATAL: Hook 'udev' can not be found. and fails...
i followed the kernel panic wiki and mounted the necessary stuff. but is there anything else i have to do when udev isnt found?
@rulex do you have this file? /lib/initcpio/hooks/udev
/lib/initcpio/hooks/udev is owned by mkinitcpio 0.6.3-1
"udev is the device manager for the Linux 2.6 kernel series. Primarily, it manages device nodes in /dev. It is the successor of devfs and hotplug, which means that it handles the /dev directory and all user space actions when adding/removing devices, including firmware load." Source: Wikipedia
Basically without udev, you'll need to manually load all of your modules.
Therefore, we need to figure out why the udev hook can't be found...
I suspect that this bug occurred due to configuring my /etc/fstab with UUIDs, which mkinitcpio then relied on in order to build the ramdisk and detect the drives. However, when the ramdisk was unable to discover a drive, it resulted in dropping to a shell _before_ configuring keyboard support, thus necessitating a hard reboot. Typically, I rely on a separate disk loading the necessary pata_marvell module, which then allows the system to detect and correctly mount the drive. However, in this case, the ramdisk seems to rely on all disks being detected before proceeding. I suspect that the system may have been able to boot if the ramdisk continued, ignoring the UUID errors.