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

Help with issues regarding installation of Debian

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

Postby zarenzeit » 2018-06-28 18:47

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
zarenzeit
 
Posts: 4
Joined: 2018-06-28 17:53

Re: Gave up waiting for root file system device.

Postby Head_on_a_Stick » 2018-06-28 19:25

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?
Charlie don't hack
User avatar
Head_on_a_Stick
 
Posts: 7651
Joined: 2014-06-01 17:46
Location: /dev/chair

Re: Gave up waiting for root file system device.

Postby zarenzeit » 2018-06-29 02:00

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
zarenzeit
 
Posts: 4
Joined: 2018-06-28 17:53

Re: Gave up waiting for root file system device.

Postby Head_on_a_Stick » 2018-06-29 04:54

zarenzeit wrote:They are different

:o

Does this fix things:
Code: Select all
# update-grub
Charlie don't hack
User avatar
Head_on_a_Stick
 
Posts: 7651
Joined: 2014-06-01 17:46
Location: /dev/chair

Re: Gave up waiting for root file system device.

Postby zarenzeit » 2018-06-30 02:42

That did it, and it persists. Thanks! I wonder what is weird about my system?! Maybe something in the BIOS settings?
User avatar
zarenzeit
 
Posts: 4
Joined: 2018-06-28 17:53

Re: Gave up waiting for root file system device.

Postby Head_on_a_Stick » 2018-06-30 16:10

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
Charlie don't hack
User avatar
Head_on_a_Stick
 
Posts: 7651
Joined: 2014-06-01 17:46
Location: /dev/chair

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

Postby zarenzeit » 2018-07-05 03:31

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.
User avatar
zarenzeit
 
Posts: 4
Joined: 2018-06-28 17:53


Return to Installation

Who is online

Users browsing this forum: No registered users and 2 guests

fashionable