Scheduled Maintenance: We are aware of an issue with Google, AOL, and Yahoo services as email providers which are blocking new registrations. We are trying to fix the issue and we have several internal and external support tickets in process to resolve the issue. Please see: viewtopic.php?t=158230

 

 

 

[SOLVED] Gave up waiting for root file system device.

Ask for help with issues regarding the Installations of the Debian O/S.
Post Reply
Message
Author
User avatar
zarenzeit
Posts: 4
Joined: 2018-06-28 17:53

[SOLVED] Gave up waiting for root file system device.

#1 Post by zarenzeit »

I'm installing Debian Stretch on an Intel Nuc NUC6CAYH with a 60GB Silicon Power SSD (SP060GBSS3S60S25AE). The only deviation from the default installation I am making is to not install a DE and to install the SSH server. No LVM, no encryption, all on one partition. Each time I install, I set up a new partition table on the SSD, and let the installer handle the partitioning. After installation, on first boot, grub loads, and then I get this output:

Code: Select all

[	6.6640371] ata1.00: failed to set xfermode (err_mask=0x40)
Gave up waiting for root file system device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/sdb2 does not exist. Dropping to a shell!

BusyBox v1.22.1 (Debian 1:1.22.0-19+b3) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs)
During installation, the install USB drive is sda and the SSD is sdb. It seems grub is expecting to boot from the SSD which it thinks is still sdb, but since the USB drive has been removed is now sda. I've tried installing with both UEFI and BIOS. I've tried installing with the netinstall iso and the DVD iso with non-free firmware using several USB drives. The system found the grub entry on the SSD. How is it possible that Debian is hardcoding the location of the root file system using sda and sdb identifiers which are assigned randomly? If this is how Debian worked, I would expect this to be an EXTREMELY common issue, but it isn't so it makes me think it is either user error or a hardware issue. The only weird thing I've done is I recently update the BIOS firmware to the latest version, but it completed successfully, so probably not the issue?

I can edit the grub entry, replacing mentions of "sdb" with "sda" and this will allow the system to boot, but this doesn't seem like a long-term solution..
Any help would be appreciated!
Last edited by zarenzeit on 2018-07-02 03:18, edited 1 time in total.

User avatar
Head_on_a_Stick
Posts: 14114
Joined: 2014-06-01 17:46
Location: London, England
Has thanked: 81 times
Been thanked: 132 times

Re: Gave up waiting for root file system device.

#2 Post by Head_on_a_Stick »

zarenzeit wrote:How is it possible that Debian is hardcoding the location of the root file system using sda and sdb identifiers which are assigned randomly?
My Debian stretch system does not do that:

Code: Select all

        linux   /boot/vmlinuz-4.9.0-6-amd64 root=UUID=e73c96cf-a22f-41fa-aaf5-45afff2a2fea ro
^ As you can see, root=UUID=$uuid is used for identification of the root device.

Get your system booted normally and then please post the output of

Code: Select all

# grub-mkconfig
How does the output compare to your /boot/grub/grub.cfg?
deadbang

User avatar
zarenzeit
Posts: 4
Joined: 2018-06-28 17:53

Re: Gave up waiting for root file system device.

#3 Post by zarenzeit »

They are different.

# grub-mkconfig

Code: Select all

Generating grub configuration file ...
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  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 [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
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  1f00a352-6ed0-459b-b12b-45cc50ebabfa
else
  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
Found linux image: /boot/vmlinuz-4.9.0-6-amd64
Found initrd image: /boot/initrd.img-4.9.0-6-amd64
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	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  1f00a352-6ed0-459b-b12b-45cc50ebabfa
	else
	  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
	fi
	echo	'Loading Linux 4.9.0-6-amd64 ...'
	linux	/boot/vmlinuz-4.9.0-6-amd64 root=UUID=1f00a352-6ed0-459b-b12b-45cc50ebabfa ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-4.9.0-6-amd64
}
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
	menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-6-amd64-advanced-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		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  1f00a352-6ed0-459b-b12b-45cc50ebabfa
		else
		  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
		fi
		echo	'Loading Linux 4.9.0-6-amd64 ...'
		linux	/boot/vmlinuz-4.9.0-6-amd64 root=UUID=1f00a352-6ed0-459b-b12b-45cc50ebabfa ro  quiet
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-4.9.0-6-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-6-amd64-recovery-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		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  1f00a352-6ed0-459b-b12b-45cc50ebabfa
		else
		  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
		fi
		echo	'Loading Linux 4.9.0-6-amd64 ...'
		linux	/boot/vmlinuz-4.9.0-6-amd64 root=UUID=1f00a352-6ed0-459b-b12b-45cc50ebabfa ro single 
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-4.9.0-6-amd64
	}
}

### 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/30_uefi-firmware ###
Adding boot menu entry for EFI firmware configuration
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### 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 ###
done
# cat /boot/grub/grub.cfg

Code: Select all

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  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 [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  1f00a352-6ed0-459b-b12b-45cc50ebabfa
else
  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	set root='hd1,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  1f00a352-6ed0-459b-b12b-45cc50ebabfa
	else
	  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
	fi
	echo	'Loading Linux 4.9.0-6-amd64 ...'
	linux	/boot/vmlinuz-4.9.0-6-amd64 root=/dev/sdb2 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-4.9.0-6-amd64
}
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
	menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-6-amd64-advanced-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  1f00a352-6ed0-459b-b12b-45cc50ebabfa
		else
		  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
		fi
		echo	'Loading Linux 4.9.0-6-amd64 ...'
		linux	/boot/vmlinuz-4.9.0-6-amd64 root=/dev/sdb2 ro  quiet
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-4.9.0-6-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-6-amd64-recovery-1f00a352-6ed0-459b-b12b-45cc50ebabfa' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  1f00a352-6ed0-459b-b12b-45cc50ebabfa
		else
		  search --no-floppy --fs-uuid --set=root 1f00a352-6ed0-459b-b12b-45cc50ebabfa
		fi
		echo	'Loading Linux 4.9.0-6-amd64 ...'
		linux	/boot/vmlinuz-4.9.0-6-amd64 root=/dev/sdb2 ro single 
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-4.9.0-6-amd64
	}
}

### 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/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### 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 ###

User avatar
Head_on_a_Stick
Posts: 14114
Joined: 2014-06-01 17:46
Location: London, England
Has thanked: 81 times
Been thanked: 132 times

Re: Gave up waiting for root file system device.

#4 Post by Head_on_a_Stick »

zarenzeit wrote:They are different
:o

Does this fix things:

Code: Select all

# update-grub
deadbang

User avatar
zarenzeit
Posts: 4
Joined: 2018-06-28 17:53

Re: Gave up waiting for root file system device.

#5 Post by zarenzeit »

That did it, and it persists. Thanks! I wonder what is weird about my system?! Maybe something in the BIOS settings?

User avatar
Head_on_a_Stick
Posts: 14114
Joined: 2014-06-01 17:46
Location: London, England
Has thanked: 81 times
Been thanked: 132 times

Re: Gave up waiting for root file system device.

#6 Post by Head_on_a_Stick »

zarenzeit wrote:I wonder what is weird about my system?
There is a GRUB_DISABLE_LINUX_UUID option[1] in /etc/default/grub that would cause the behavior you describe but your file has this option set to "false" so I really don't know what happened.

[1] https://www.gnu.org/software/grub/manua ... figuration
deadbang

User avatar
zarenzeit
Posts: 4
Joined: 2018-06-28 17:53

Re: [SOLVED] Gave up waiting for root file system device.

#7 Post by zarenzeit »

Update: I installed Ubuntu on this system as well, and it didnt't even try to find the MBR.

There was a problem with the stock BIOS versions on these NUCs. When I tried to update the BIOS, it didn't take. Updating to latest version fixed it in case anyone else has this issue.

Post Reply