View previous topic :: View next topic |
Author |
Message |
aggieben n00b
Joined: 11 Dec 2008 Posts: 16
|
Posted: Thu Apr 03, 2014 7:32 pm Post subject: grub2 -> initrd -> kernel with wrong root [SOLVED] |
|
|
I've followed the handbook and finished each step according to the documentation, but when I reboot the system, the kernel blows up with a message that says:
Code: |
>> Activating mdev
>> Determining root device...
>> Mounting root...
mount: mounting /dev/sda3 on /newroot failed: Invalid argument
!! Could not mount specified ROOT, try again
!! Could not find the root block device in .
Please specify another value or: press Enter for the same, type "shell" for shell, or "q" to skip...
root block device() ::
|
This makes no sense because /dev/sda3 is my swap partition, and I specified root=/dev/sda4 in my grub.cfg, shown below. It looks like the initramfs is trying to determine the root automatically instead of just passing through the kernel options as specified in grub...so where did I go wrong?
Here are my partitions:
Code: |
livecd ~ # parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA Maxtor 6V250F0 (scsi)
Disk /dev/sda: 251GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3146kB 2097kB grub bios_grub
2 3146kB 137MB 134MB ext2 boot
3 137MB 8727MB 8590MB linux-swap(v1) swap
4 8727MB 251GB 242GB ext4 rootfs
(parted)
|
Here is my fstab:
Code: |
/dev/sda2 /boot ext2 noauto,noatime 1 2
/dev/sda4 / ext3 noatime 0 1
/dev/sda3 none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0
|
Here's my grub.cfg:
Code: |
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if loadfont unicode ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ceda62bb-6332-45cd-8028-9d9d57b4a91f' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 ec47d9cb-5ddd-40f6-8d05-48f1d6132b3a
else
search --no-floppy --fs-uuid --set=root ec47d9cb-5ddd-40f6-8d05-48f1d6132b3a
fi
echo 'Loading Linux x86_64-3.12.13-gentoo ...'
linux /kernel-genkernel-x86_64-3.12.13-gentoo root=/dev/sda4 ro rootfstype=ext4
echo 'Loading initial ramdisk ...'
initrd /initramfs-genkernel-x86_64-3.12.13-gentoo
}
submenu 'Advanced options for Gentoo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-ceda62bb-6332-45cd-8028-9d9d57b4a91f' {
menuentry 'Gentoo GNU/Linux, with Linux x86_64-3.12.13-gentoo' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-3.12.13-gentoo-advanced-ceda62bb-6332-45cd-8028-9d9d57b4a91f' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 ec47d9cb-5ddd-40f6-8d05-48f1d6132b3a
else
search --no-floppy --fs-uuid --set=root ec47d9cb-5ddd-40f6-8d05-48f1d6132b3a
fi
echo 'Loading Linux x86_64-3.12.13-gentoo ...'
linux /kernel-genkernel-x86_64-3.12.13-gentoo root=/dev/sda4 ro rootfstype=ext4
echo 'Loading initial ramdisk ...'
initrd /initramfs-genkernel-x86_64-3.12.13-gentoo
}
menuentry 'Gentoo GNU/Linux, with Linux x86_64-3.12.13-gentoo (recovery mode)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-3.12.13-gentoo-recovery-ceda62bb-6332-45cd-8028-9d9d57b4a91f' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 ec47d9cb-5ddd-40f6-8d05-48f1d6132b3a
else
search --no-floppy --fs-uuid --set=root ec47d9cb-5ddd-40f6-8d05-48f1d6132b3a
fi
echo 'Loading Linux x86_64-3.12.13-gentoo ...'
linux /kernel-genkernel-x86_64-3.12.13-gentoo root=/dev/sda4 ro single rootfstype=ext4
echo 'Loading initial ramdisk ...'
initrd /initramfs-genkernel-x86_64-3.12.13-gentoo
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
|
Last edited by aggieben on Fri Apr 04, 2014 10:58 pm; edited 1 time in total |
|
Back to top |
|
|
DONAHUE Watchman
Joined: 09 Dec 2006 Posts: 7651 Location: Goose Creek SC
|
Posted: Thu Apr 03, 2014 8:41 pm Post subject: |
|
|
edit /etc/fstab substituting the device name (nominally /dev/sda3) for the placeholder ROOT . same for BOOT placeholder (nominally /dev/sda1) use your values if different from nominal. _________________ Defund the FCC. |
|
Back to top |
|
|
aggieben n00b
Joined: 11 Dec 2008 Posts: 16
|
Posted: Thu Apr 03, 2014 10:39 pm Post subject: |
|
|
I realize my post was long, but near the top I posted my fstab, which shows that I have real devices specified rather than the default placeholders. Here it is again:
My /etc/fstab (/mnt/gentoo/etc/fstab):
Code: |
/dev/sda2 /boot ext2 noauto,noatime 1 2
/dev/sda4 / ext3 noatime 0 1
/dev/sda3 none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0
|
|
|
Back to top |
|
|
vaxbrat l33t
Joined: 05 Oct 2005 Posts: 731 Location: DC Burbs
|
Posted: Fri Apr 04, 2014 1:23 am Post subject: When did you run grub2-mkconfig? |
|
|
I don't use genkernel myself but the likely culprit is that the initramfs archive may be doing something stupid to override the root=/dev/sda4 on the kernel line. That's a gzip compressed cpio archive so you can extract the files from it out by hand to a directory to inspect inside it. |
|
Back to top |
|
|
DONAHUE Watchman
Joined: 09 Dec 2006 Posts: 7651 Location: Goose Creek SC
|
Posted: Fri Apr 04, 2014 5:54 pm Post subject: |
|
|
'Could not find the root block device in .' suggests the initramfs did not install/activate/enable driver modules for your hard drives
apologies for my knee jerk reaction to the capital word ROOT _________________ Defund the FCC. |
|
Back to top |
|
|
aggieben n00b
Joined: 11 Dec 2008 Posts: 16
|
Posted: Fri Apr 04, 2014 11:00 pm Post subject: |
|
|
Looks like this was just a stupid thing - there was another disk in my system that apparently had an old MBR and grub installation pointed to it. I unplugged it and everything is fine. |
|
Back to top |
|
|
|