You are not logged in.

#1 2010-05-17 15:36:24

RobF
Member
Registered: 2006-10-10
Posts: 157

[SOLVED] Booting Arch off USB HDD fails - can't mount real root device

I've installed Arch on the internal HDD (sda) of my laptop, and I attempted to install a second copy of Arch on partition sdb3 of an external USB HDD.  sdb3 is a primary partition that I had prepared beforehand with gparted and outfitted with the reiserfs filesystem.  I skipped section 3.2 (manually prepare hard drives) of the Arch installer.  There was no problem with section 3.3 (manually configure filesystems and mountpoints); I put all of / in sdb3.  Installing packages and configuring the system also went without a hitch.

I wanted to boot this new install of Arch via the boot menu of GRUB that was installed in the MBR of sda with my primary install of Arch.  On the new install, I first did go through section 7 (install bootloader), thinking I would want to install GRUB in the root sector of partition sdb3 (not in the MBR of sdb where the GRUB of MintKDE resides, a boot menu that I want to keep) but that failed, so I then picked "no bootloader to be installed".  With that I exited the new install, since it appeared to have gone to completion.

I then copied the appropriate stanza in the /boot/grub/menu.lst of this new Arch install to the /boot/grub/menu.lst of my primary Arch install on the internal HDD of my laptop.

This stanza reads as follows:

# (3) Arch Linux on WDPP60 blue (sdb3)
title  Arch Linux on WDPP60 blue (sdb3)
root   (hd1,2)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/191cc027-43ce-443b-8846-f265d60555ec ro
initrd /boot/kernel26.img

However, I'm not able to boot the new Arch install when I pick this entry from the GRUB menu list.  The new install starts booting, finds sda but not sdb and stops with the following errors, dropping me to a recovery shell:

Root device /dev/disk/by-uuid... doesn't exist.  Attempting to create it.
ERROR: Unable to determine major/minor number of root device '/dev/disk/by-uuid...'
.....
mounting  /dev/disk/by-uuid... on /new_root failed: No such file ...
ERROR: Failed to mount the real root device.

Running "mount -t reiserfs /dev/sdb3 /new_root" at the ramfs prompt also fails.

I've tried a number of edits of the menu.lst stanza from the grub> command prompt, such as adding rootfstype=reiserfs, replacing root=/dev/disk/by-uuid..etc. with root=/dev/sdb3 (booting then fails with "/dev/sdb3  No such file"), using "initrd /boot/kernel26-fallback.img" etc., but booting always fails at the same stage with equivalent error messages.

I have no trouble booting half a dozen other Linux/BSD distros that reside on two different external USB HDD's by the same method, i.e. choosing an entry from the GRUB boot menu of my primary Arch install, after I placed the appropriate stanza in its /boot/grub/menu.lst.

How can I get this new Arch install to boot?

Last edited by RobF (2010-05-17 23:03:27)

Offline

#2 2010-05-17 19:38:37

scar
Member
From: Hungary
Registered: 2009-10-01
Posts: 442

Re: [SOLVED] Booting Arch off USB HDD fails - can't mount real root device

I am not sure, but during the installation, have you made a "usb" hook?

As on the wiki page: http://wiki.archlinux.org/index.php/Ins … _a_USB_key

*  Edit the /etc/mkinitcpio.conf, and add "usb" to the "HOOKS=" line after udev:

HOOKS="base udev usb autodetect pata scsci sata filesystems"

It is just an idea


“The future has already arrived. It's just not evenly distributed yet.”
― William Gibson

Offline

#3 2010-05-17 23:02:08

RobF
Member
Registered: 2006-10-10
Posts: 157

Re: [SOLVED] Booting Arch off USB HDD fails - can't mount real root device

Yes, this was in fact the solution.  I stumbled upon it in this thread:
http://bbs.archlinux.org/viewtopic.php?id=65844

When one wants to boot from a USB mass storage device, the initrd needs to include the modules for accessing USB devices, and in Arch this is accomplished by adding "usb" to the HOOKS array.  I simply reinstalled Arch to the USB HDD and in the system configuration step now edited /etc/mkinitcpio.conf by adding the "usb" item.  Adding "rootdelay=10" and/or "rootfstype=reiserfs" to the kernel line in the appropriate stanza in Arch's /boot/grub/menu.lst wasn't necessary in this case.  I left the stanza exactly as I posted it above.

Thanks for your input.

Offline

Board footer

Powered by FluxBB