[SOLVED] Unable to find root device

Hey guys

I’ve just got back from a course and powered my PC up. After the GRUB menu it start loading up then suddenly;

Waiting 10 secs for device /dev/sda2 ...
ERROR: device '/dev/sda2' not found.  Skipping fsck.
ERROR: Unable to find root device '/dev/sda2'.
You are being dropped to a recovery shell
  Type 'exit' to try and continue booting
sh: can't access tty; job control turned off
[rootfs /]# 

I tried typing ‘exit’ but the keyboard doesn’t seem to be working.

I took the drive out and booted it through an external caddy on my laptop, I managed to type ‘exit’ but it still didn’t work.

I managed to find this solution online but when I boot systemrescuecd and choose ‘boot from first hard drive’ the same error occurs. There isn’t an option on systemrescuecd to ‘boot into installed linux’.

I’m trying to find another solution but so far the internet is firing blanks. Any help from you guys would be appreciated.

Oh yeah, I’m running Arch.

Have you booted to a LiveCD/LiveUSB and checked the contents of /dev/sda2 are accessible ?

Have you booted to a LiveCD/LiveUSB and run:

sudo fsck /dev/sda2

? (be sure the partition isn’t mounted)

If so, can you boot to a LiveCD/LiveUSB … then run:

sudo fdisk -l

and post the output.

can you also run:

sudo blkid

and post the output.

then can you post the contents of /boot/grub/grub.cfg

Question … does Arch use GRUB legacy, or GRUB2 ?

Have you booted to a LiveCD/LiveUSB and run:
sudo fsck /dev/sda2

? (be sure the partition isn’t mounted)

% fsck /dev/sda2
fsck from util-linux 2.20.1
e2fsck 1.42.3 (14-May-2012)
/dev/sda2: clean, 243737/6045696 files, 6589397/24178198 blocks
If so, can you boot to a LiveCD/LiveUSB .. then run:
sudo fdisk -l

and post the output.

% fdisk -l

[output omitted]

Disk /dev/sda; 115.0 GB, 115032071680 bytes
255 heads, 63 sectors/track, 13985 cylinders, total 224672015 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: 0xd72482d3

    Device  Boot           Start               End           Blocks   Id    System
/dev/sda1                      63      31246424    15623181   83    Linux
/dev/sda2      *   31246425   224672014    96712795   83    Linux

[output omitted]
can you also run:
sudo blkid

and post the output.

% blkid
/dev/loop0: TYPE="squashfs"
/dev/sdb1: LABEL="data_01" UUID="6EFE21B712CAEE3F" TYPE="ntfs"
/dev/sda1: UUID="3f1277d3-e29f-4130-a716-d536ff50a202" TYPE="swap"
/dev/sda2: UUID="df3ff109-97fc-404b-a9c1-8db12980a29d" TYPE="ext4"
/dev/sdc1: LABEL="data_02" UUID="2648C8CA6A5E3C08" TYPE="ntfs"
/dev/sdd1: UUID="853dfd2f-162d-489d-96d9-2bcc85af4269" TYPE="swap"
/dev/sdd2: UUID="001f212b-e777-40d3-ba7d-3a49d6469cf8" TYPE="ext4"
/dev/sde1: LABEL="windows" UUID="3AA65BA2A65B5E07" TYPE="ntfs"
/dev/sr0: LABEL="sysrcd-2.7.1" TYPE="iso9660"
then can you post the contents of [b]/boot/grub/grub.cfg[/b]

Question … does Arch use GRUB legacy, or GRUB2 ?


Apologies, I’m using syslinux not grub.

Output of sda2: /boot/dev/syslinux.cfg

# Config file for Syslinux -
# /boot/syslinux/syslinux.cfg
#
# Comboot modules:
#   * menu.c32 - provides a text menu
#   * vesamenu.c32 - provides a graphical menu
#   * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
#   * hdt.c32 - hardware detection tool
#   * reboot.c32 - reboots the system
#   * poweroff.com - shutdown the system
#
# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
# If /usr and /boot are on the same file system, symlink the files instead
# of copying them.
#
# If you do not use a menu, a 'boot:' prompt will be shown and the system
# will boot automatically after 5 seconds.
#
# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
# The wiki provides further configuration examples

DEFAULT arch
PROMPT 0        # Change to 1 if you do not want to use a menu
TIMEOUT 50
# You can create syslinux keymaps with the keytab-lilo tool
#KBDMAP de.ktl

# Menu Configuration
# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux 
UI menu.c32
#UI vesamenu.c32

# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
MENU TITLE Arch Linux
#MENU BACKGROUND splash.png
MENU COLOR border       30;44   #40ffffff #a0000000 std
MENU COLOR title        1;36;44 #9033ccff #a0000000 std
MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel        37;44   #50ffffff #a0000000 std
MENU COLOR help         37;40   #c0ffffff #a0000000 std
MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07        37;40   #90ffffff #a0000000 std
MENU COLOR tabmsg       31;40   #30ffffff #00000000 std

# boot sections follow
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*

# (0) Arch Linux
LABEL arch
    MENU LABEL Arch Linux
    LINUX ../vmlinuz-linux
    APPEND root=/dev/sda2 ro
    INITRD ../initramfs-linux.img

# (1) Arch Linux Fallback
LABEL archfallback
    MENU LABEL Arch Linux Fallback
    LINUX ../vmlinuz-linux
    APPEND root=/dev/sda2 ro
    INITRD ../initramfs-linux-fallback.img

# (2) Windows
#LABEL windows
#COM32 chain.c32
#APPEND hd0 0

LABEL hdt
    MENU LABEL HDT (Hardware Detection Tool)
    COM32 hdt.c32

LABEL reboot
    MENU LABEL Reboot
    COM32 reboot.c32

LABEL off
    MENU LABEL Power Off
    COMBOOT poweroff.com

Cheers for the help.

Sounds like someone’s bootloader has screwed up. ::slight_smile: Either that, or your filesystem has went and corrupted itself.

Are you able to mount your drives when using a LiveCD?

Yeah I can mount it fine and access them without any problems. I thought it was corrupted at first as well but I don’t think it is now.

I can’t see any problems with the bootloader either.

Luckily I back everything up onto another hard drive, the one I normally use is my SSD. I want to try and fix the problem first though instead of just giving up! :stuck_out_tongue:

OK, looks like this has been popping up in Arch quite a lot recently.

See posting 4 here:
https://bbs.archlinux.org/viewtopic.php?id=135288
for a possible fix

Similar in post 6 here, but with added stuff for people with seperate /boot partitions etc.
https://bbs.archlinux.org/viewtopic.php?pid=1060681

[EDIT]

Don’t ask me what those pcman commands are doing though ???

OK, this is helping it make sense (a bit)
https://wiki.archlinux.org/index.php/Mkinitcpio

Cheers Mark. I ran through that solution, and everything else in that topic but I’m still not able to boot up. It’s the same error.

The problem seems to be an update of colorizer.

So try removing /usr/bin/cw and then do:

sudo mkinitcpio -p linux

then

pacman -S linux

See bug report here

Oddly enough, if you follow some of the links is post 18 here:
https://bbs.archlinux.org/viewtopic.php?pid=1062638#p1062638

They seem to suggest a downgrade of mkinitcpio so that ties in well with BkS’s bug link.

Others suggest downgrading BOTH mkinitcpio and the kernel … but it may be that they didn’t know which of those fixed the issue.

Apologies, I'm using syslinux not grub.
Would you consider replacing syslinux with grub2 to see if it makes any difference? HowTo on installing GRUB2 From a linux live CD: http://my.opera.com/nikbhardwaj/blog/show.dml/9678911 I have also read somewhere that changing boot order in bios can upset the actual booting sequence.

Cheers for the help guys.

I’m too tired to try anything now. I’ll try it again tomorrow and let you know how I get on.

Okey dokey … good luck :slight_smile:

SOLVED!

I was away all weekend, got roped into helping a friend move shops… friends eh!!

Anyway I managed to go through everything again. It didn’t seem to work the first time.

I had to run

pacman-key --init

before I could update the system properly but then I ran the following a second time

cd /mnt/arch
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
chroot . /bin/bash
dhcpcd eth0
                      <-- [inserted pacman-key --init here]
pacman -Syy
pacman -Syu
pacman -S udev
pacman -S mkinitcpio
mkinitcpio -p linux
reboot

Source: https://bbs.archlinux.org/viewtopic.php?id=135288&p=1

Thanks for all the help guys, glad I could get it sorted with out dragging out my backups!

So am I cause this pacman stuff is gibberish to me :wink:

This is why I stay firmly in my roots with Nautilus… XD

Glad you got it sorted. :smiley:
The “pacman-key --init” bit seems strange. Did you update pacman before you went away?

@BkS

This is why I stay firmly in my roots with Nautilus... XD
[b]pacman[/b] is to Arch what [b]apt[/b] is for Ubuntu (or any other Debian based distro) ;D

Yeah I update almost every other day. Everything was working fine.

I think it might have something to do with having the hard drive mounted via a live distro.