You are not logged in.

#1 2011-09-21 01:06:31

newbie55
Member
Registered: 2011-09-17
Posts: 6

[Solved]Boot from USB HDD - Root device doesn't exist. Major/minor

My problem is that the kernel seems (or starts) to load, but then I get an error:

 Root device 'UUID=1234 . . .' doesn't exist.
Attempting to create it.
ERROR: Unable to determine major/minor number of root device "UUID=1234 . . .'
You are being dropped into recovery shell

I found a few links on the web and in the forums, but nothing that really solved it for me. The solved ones usually downgraded the kernel.  I haven't done that yet.  I thought I'd try here first.

I have a 320GB USB HDD that I have been using to experiment with different linux distros.  I have a few working successfully (OpenSUSE,Mint,Ubuntu,Debian,Fedora,etc).  I'm very new at this but have been reading a lot and putting a lot of time into it.  I have legacy grub loaded on the MBR and use the menu.lst on my openSUSE partition to boot everything.  Because the partitions for some of the distros are so far into the disk I needed to create directories on openSUSE's /boot directory to contain the kernel and initrramfs files (like /boot/fedora).  This seems to work for the other distros.  I did the same thing for Arch.

So when I installed Arch I haven't used the bootloader section of the installation.

I'm using the 2011.08.09-netinstall-i686.iso Live CD.

I tried a few things including:
1.    changing the HOOKS in /etc/mkinitcpio.conf
    a.    adding usb to the "HOOKS"
    b.    removing and adding autodetect
    c.    adding and removing "sata_sil" (although I'm not even sure if my device uses it)
2.    changing the kernel line:
    a.    from using "UUID=" to (hd0,1) to sdb1.
    b.    added rootdelay=8
3.    repartition all of my arch partitions using cfdisk from my Live CD and reinstall. I used gparted on OpenSUSE to do it the first time.

This may be connected. When I fdisk -l from the Arch Live CD I get extra data and an error for each of my arch partitions (and only my arch partitions):

 Disk does't contain a valid partition table 

When I fdisk -l from OpenSUSE I don't get the data paragraphs or errors about the arch partitions?

Here is my /etc/fstab:

# 
# /etc/fstab: static file system information
#
# <file system>	<dir>	<type>	<options>	<dump>	<pass>
tmpfs		/tmp	tmpfs	nodev,nosuid	0	0
UUID=0e7556ef-b832-43e9-a8ba-c68dd2cd6143 /var reiserfs defaults 0 1
UUID=510bb601-13c1-46ec-87c0-a800dd2efb8b / ext4 defaults 0 1
UUID=cd78ab04-742d-4ba5-9727-90727de2dd14 swap swap defaults 0 0
UUID=dc5685e3-35b0-46d4-b259-61f2530ff36a /home ext3 defaults 0 1

And my HOOKS:

HOOKS="base udev autodetect pata scsi sata usb filesystems usbinput"

And my menu.lst:

1
default 0
timeout 32
gfxmenu (hd0,1)/boot/message

###openSUSE on sda2 - legacy grub
title openSUSE 11.4 - Celadon - gnome
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.37.6-0.7-default root=/dev/disk/by-id/usb-Seagate_FreeAgent_GoFlex_NA0E702X-0:0-part2 resume=/dev/disk/by-id/usb-Seagate_FreeAgent_GoFlex_NA0E702X-0:0-part1 splash=silent quiet showopts nomodeset vga=0x314
    initrd /boot/initrd-2.6.37.6-0.7-default

###openSUSE failsafe on sda2 - legacy grub
title Failsafe -- openSUSE 11.4 - 2.6.37.6-0.7
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.37.6-0.7-default root=/dev/disk/by-id/usb-Seagate_FreeAgent_GoFlex_NA0E702X-0:0-part2 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x314
    initrd /boot/initrd-2.6.37.6-0.7-default

###floppy###
#title Floppy
#    rootnoverify (fd0)
#    chainloader +1

###Fedora on sda5 - legacy grub
title Fedora 15-Lovelock gnome
    root (hd0,4)
    configfile /boot/grub/grub.conf

###Mint on sda6 - grub2
title Mint 9 Lucid Lynx gnome
    root (hd0,5)
    kernel /boot/grub/core.img
    savedefault
    boot
    
###PCLinux on sda7 - legacy grub
title PCLinuxOS 2011.6 KDE
    root (hd0,6)
    chainloader +1
    
###Ubuntu on sda8 - grub2
title Ubuntu 10.04.2 gnome
    root (hd0,7)
    kernel /boot/grub/core.img
    savedefault
    boot
 
####arch on sda10 - legacy grub
title ARCH
    root (hd0,1)
    #root UUID=XXXXXXXXXX44c5a3cd-dcb5-4cf1-933e-7a8ebac2a992 
    kernel /boot/arch/vmlinuz-linux root=UUID=510bb601-13c1-46ec-87c0-a800dd2efb8b ro rootdelay=8
    #kernel /boot/arch/vmlinuz-linux root=(hd0,9)
    #kernel /boot/arch/vmlinuz-linux root=/dev/sda10
    initrd /boot/arch/initramfs-linux.img
    savedefault
    boot

###Debian on sda11 - grub2
title Debian 6.0.2.1 squeeze gnome
    root (hd0,1)
    kernel /boot/debian/vmlinuz-2.6.32-5-686 root=UUID=2b6052e2-ecdf-4796-81c8-b9e9142ca159 ro
    initrd /boot/debian/initrd.img-2.6.32-5-686
    savedefault
    boot

###Mandriva on sda12 - legacy grub
title Mandriva 2011 KDE
    root (hd0,1)
    kernel /boot/mandriva/vmlinuz-2.6.38.7-desktop-1mnb2 root=UUID=5033f7fb-cac7-4db5-920c-c8bd2b51365f ro
    initrd /boot/mandriva/initramfs-2.6.38.7-desktop-1mnb2.img
    savedefault
    boot

Here is my fdisk -l from OpenSUSE.  I'm not quite swift enough to mount the hard drive and use the script utility from the Live CD yet, at least not tonight:

Disk /dev/sda: 320.1 GB, 320072932864 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142447 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c3bbb

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris
/dev/sda2         4208640    46153727    20972544   83  Linux
/dev/sda3        46153728    87113727    20480000   83  Linux
/dev/sda4        87115770   614031755   263457993    5  Extended
/dev/sda5        87115776   128075775    20480000   83  Linux
/dev/sda6       128077824   169037823    20480000   83  Linux
/dev/sda7       169039872   209999871    20480000   83  Linux
/dev/sda8       210001920   250961919    20480000   83  Linux
/dev/sda9       250963968   291923967    20480000   83  Linux
/dev/sda10      291924031   332886015    20480992+  83  Linux
/dev/sda11      332888064   373848063    20480000   83  Linux
/dev/sda12      373848678   414992383    20571853   83  Linux
/dev/sda13      414994432   435474431    10240000   83  Linux
/dev/sda14      435474495   455956829    10241167+  83  Linux
/dev/sda15      455958528   578881535    61461504    b  W95 FAT32
/dev/sda16      578881599   614031755    17575078+  83  Linux

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x95aa95aa

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   294889139   147444538+   7  HPFS/NTFS/exFAT
/dev/sdb2       294889140   312576704     8843782+   7  HPFS/NTFS/exFAT

That's it for now.

Last edited by newbie55 (2011-09-23 22:19:58)

Offline

#2 2011-09-23 02:49:47

nathan28
Member
Registered: 2011-05-18
Posts: 61

Re: [Solved]Boot from USB HDD - Root device doesn't exist. Major/minor

Try moving "usb" to right after udev or autodetect in HOOKS.

Last edited by nathan28 (2011-09-23 23:15:21)


in the beginning was the switch operator

Offline

#3 2011-09-23 03:49:10

djgera
Developer
From: Buenos Aires - Argentina
Registered: 2008-12-24
Posts: 723
Website

Re: [Solved]Boot from USB HDD - Root device doesn't exist. Major/minor

/dev/sda16 this is not posible: (8,16) is /dev/sdb

Offline

#4 2011-09-23 12:51:11

Barafu Albino Cheetah
Member
From: Moscow
Registered: 2011-09-16
Posts: 34

Re: [Solved]Boot from USB HDD - Root device doesn't exist. Major/minor

Sorry for plain remark, but did you specially run mkinitcp after changes in modules? grub-mkconfig does not update initram. Put usb] before autodetect. And get back this UUID addressing!

Last edited by Barafu Albino Cheetah (2011-09-23 12:52:37)

Offline

#5 2011-09-23 22:17:48

newbie55
Member
Registered: 2011-09-17
Posts: 6

Re: [Solved]Boot from USB HDD - Root device doesn't exist. Major/minor

I'm IN!  Thanks everyone for your suggestions!

The arch system didn't like the identifier I was using for the root partition. By looking at the /dev/disk/by-id while the arch system was running, I could see what the system wanted me to call the partition.  So after the system error'd-out and I was in the recovery shell at the [ramfs /] prompt:

# ls -lF /dev/disk/by-id > by-id.txt
# vi by-id.txt

I could have used any of the identifiers listed in the by-id (there were 3), by-uuid(1), by-label(1) or by path(1). I tried them all. I had to write these down by hand because it is a ram filesystem.

The article that finally got me there is:

https://wiki.archlinux.org/index.php/Pe … ice_naming

Anyway my openSUSE grub menu.lst ended up like this:

####arch on sda10 - legacy grub
title ARCH
    root (hd0,1)
    kernel /boot/arch/vmlinuz-linux root=/dev/disk/by-uuid/510bb601-13c1-46ec-87c0-a800dd2efb8b ro rootdelay=8 rootfstype=ext4
    initrd /boot/arch/initramfs-linux.img
    savedefault
    boot

It's easy once you: 1. beat your head against the wall
                    2. read further
            3. repeat 1 and 2

Back to the "Beginner's Guide",4 Post-Installation.  Yikes!

Offline

Board footer

Powered by FluxBB