1

I have been booting from USB for awhile, and every time I reboot or start after a shutdown, the startup scripts (grub?) get stuck. It seems that the USB drive is unmounted at some point in the script, and I have to physically remove it and put it back in. When I do, everything proceeds normally. It took me awhile to figure out that I had to do this, but now that I know, I find it pretty annoying. I'd like it to start up without me having to do anything but press the power button or reboot from terminal.

I'm an amateur and don't really know where to start on this one. What would be helpful to the community for answering this question?

To start, here are the relevant results from dmesg | less:

[    8.480549] xhci_hcd 0000:00:10.0: Command completion event does not match command
[    8.480577] xhci_hcd 0000:00:10.0: Timeout while waiting for setup device command
[   13.691888] xhci_hcd 0000:00:10.0: Timeout while waiting for setup device command
[   13.927619] usb 6-2: device not accepting address 2, error -62
[   14.071777] usb 6-2: new SuperSpeed USB device number 3 using xhci_hcd
[   14.124771] usb 6-2: New USB device found, idVendor=0781, idProduct=5583
[   14.159833] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   14.194996] usb 6-2: Product: Ultra Fit
[   14.229838] usb 6-2: Manufacturer: SanDisk
[   14.264258] usb 6-2: SerialNumber: 4C530001050109104530
[   14.305206] usb-storage 6-2:1.0: USB Mass Storage device detected
[   14.340050] scsi4 : usb-storage 6-2:1.0
[   14.373775] usbcore: registered new interface driver usb-storage
[   14.409265] usbcore: registered new interface driver uas
[   15.371253] scsi 4:0:0:0: Direct-Access     SanDisk  Ultra Fit        1.00 PQ: 0 ANSI: 6
[   15.404649] sd 4:0:0:0: Attached scsi generic sg4 type 0
[   15.436657] sd 4:0:0:0: [sde] 60751872 512-byte logical blocks: (31.1 GB/28.9 GiB)
[   15.469096] sd 4:0:0:0: [sde] Write Protect is off
[   15.499375] sd 4:0:0:0: [sde] Mode Sense: 43 00 00 00
[   15.499924] sd 4:0:0:0: [sde] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   15.557688]  sde: sde1 sde2 < sde5 >
[   15.588601] sd 4:0:0:0: [sde] Attached SCSI removable disk
[   15.618843] random: nonblocking pool is initialized
[   16.104407] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)

Somewhere between 8.5 and 13 seconds, I removed the thumb drive and then pushed it back in.


Update 17 Apr

Here's the content of grug.cfg, if that helps.

#
# 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 recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; 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_msdos
insmod lvm
insmod ext2
set root='lvmid/DehE9E-YFth-qqZG-idrN-dOst-z0ri-jpUQRt/HA1lXV-84rk-flfT-yY1A-4g4s-q6t0-QCwfeE'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='lvmid/DehE9E-YFth-qqZG-idrN-dOst-z0ri-jpUQRt/HA1lXV-84rk-flfT-yY1A-4g4s-q6t0-QCwfeE'  e001841d-4c87-4b8f-bb0e-9736fb792477
else
  search --no-floppy --fs-uuid --set=root e001841d-4c87-4b8f-bb0e-9736fb792477
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=-1
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=2
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=2
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30,0; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="${1}"
    if [ "${1}" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e001841d-4c87-4b8f-bb0e-9736fb792477' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd4,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
    else
      search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
    fi
    linux   /vmlinuz-3.16.0-34-generic root=/dev/mapper/helmsDeep--vg-root ro   nomdmonddf nomdmonisw
    initrd  /initrd.img-3.16.0-34-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-e001841d-4c87-4b8f-bb0e-9736fb792477' {
    menuentry 'Ubuntu, with Linux 3.16.0-34-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-34-generic-advanced-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-34-generic ...'
        linux   /vmlinuz-3.16.0-34-generic root=/dev/mapper/helmsDeep--vg-root ro   nomdmonddf nomdmonisw
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-34-generic
    }
    menuentry 'Ubuntu, with Linux 3.16.0-34-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-34-generic-recovery-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-34-generic ...'
        linux   /vmlinuz-3.16.0-34-generic root=/dev/mapper/helmsDeep--vg-root ro recovery nomodeset 
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-34-generic
    }
    menuentry 'Ubuntu, with Linux 3.16.0-33-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-33-generic-advanced-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-33-generic ...'
        linux   /vmlinuz-3.16.0-33-generic root=/dev/mapper/helmsDeep--vg-root ro   nomdmonddf nomdmonisw
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-33-generic
    }
    menuentry 'Ubuntu, with Linux 3.16.0-33-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-33-generic-recovery-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-33-generic ...'
        linux   /vmlinuz-3.16.0-33-generic root=/dev/mapper/helmsDeep--vg-root ro recovery nomodeset 
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-33-generic
    }
    menuentry 'Ubuntu, with Linux 3.16.0-31-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-31-generic-advanced-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-31-generic ...'
        linux   /vmlinuz-3.16.0-31-generic root=/dev/mapper/helmsDeep--vg-root ro   nomdmonddf nomdmonisw
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-31-generic
    }
    menuentry 'Ubuntu, with Linux 3.16.0-31-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-31-generic-recovery-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-31-generic ...'
        linux   /vmlinuz-3.16.0-31-generic root=/dev/mapper/helmsDeep--vg-root ro recovery nomodeset 
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-31-generic
    }
    menuentry 'Ubuntu, with Linux 3.16.0-30-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-30-generic-advanced-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-30-generic ...'
        linux   /vmlinuz-3.16.0-30-generic root=/dev/mapper/helmsDeep--vg-root ro   nomdmonddf nomdmonisw
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-30-generic
    }
    menuentry 'Ubuntu, with Linux 3.16.0-30-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-30-generic-recovery-e001841d-4c87-4b8f-bb0e-9736fb792477' {
        recordfail
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd4,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
        else
          search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
        fi
        echo    'Loading Linux 3.16.0-30-generic ...'
        linux   /vmlinuz-3.16.0-30-generic root=/dev/mapper/helmsDeep--vg-root ro recovery nomodeset 
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-30-generic
    }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry 'Memory test (memtest86+)' {
    insmod part_msdos
    insmod ext2
    set root='hd4,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
    else
      search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
    fi
    knetbsd /memtest86+.elf
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
    insmod part_msdos
    insmod ext2
    set root='hd4,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd4,msdos1 --hint-efi=hd4,msdos1 --hint-baremetal=ahci4,msdos1  f7a56792-f935-40e0-b299-9cb3f5977054
    else
      search --no-floppy --fs-uuid --set=root f7a56792-f935-40e0-b299-9cb3f5977054
    fi
    linux16 /memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### 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 ###

UPDATE 2, 17 Apr 15

Here is the output of gparted --list It appears to be unfavorable.

gparted --list:

gparted --list
======================
libparted : 2.3
======================

(gpartedbin:3831): GLib-CRITICAL **: Source ID 7 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 6 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 26 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 25 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 29 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 28 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 34 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 33 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 38 was not found when attempting to remove it

(gpartedbin:3831): GLib-CRITICAL **: Source ID 37 was not found when attempting to remove it
Could not stat device --list - No such file or directory.

UPDATE 3, 17 Apr 15

My fstab file:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/helmsDeep--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sdc1 during installation
UUID=f7a56792-f935-40e0-b299-9cb3f5977054 /boot           ext2    defaults        0       2
/dev/mapper/helmsDeep--vg-swap_1 none            swap    sw              0       0
2
  • What kind of set up are you booting from? Is it a Live USB system or did you perform a full installation to the USB drive? What's the content of /boot/grub/grub.cfg? Did you change anything in /etc/grub.d/? Apr 4, 2015 at 18:49
  • And please add the output of gparted --list and the contents of your /etc/fstab file.
    – Fabby
    Apr 10, 2015 at 7:15

1 Answer 1

0

I saw this behavior once on a machine whose disk enumeration was not consistent. The generated grub.cfg had the wrong disk numbers, and wouldn't work until the USB was removed, and reinserted, forcing a new disk number, which then worked. Take a look at your grub.cfg and try just editing the hd numbers. When the USB worked, it was given sde, so try hd4. Once running, you can try for a permanent fix with

sudo update-grub

but since this is usually a timing issue, no guarantees anything is permanent. Also, you might try another USB, I only had the issue on one of mine, so maybe it was slow or something.

3
  • It would be even better to have grub detect the correct disk and partition indices during boot from the partition UUID. Apr 4, 2015 at 18:47
  • @DavidFoerster, how do I do that? I have the partition UUID called out in the grub.cfg file above, but maybe it's not detecting the partition at the right time?
    – homeServ
    Oct 7, 2015 at 21:48
  • The default scripts invoked by update-grub should already do that. You'll see a lot of sequences like set root='(hd1,msdos3)'; search --no-floppy --fs-uuid --set=root efbe1c17-a526-4308-861c-790121aa0365 in grub.cfg, where the latter statement replaces the effect of the former, if a block device with such a UUID exists. The former is just there, in case the device is reformatted with a new file system and new UUID, but retains its function (e. g. after restoring a backup). Oct 8, 2015 at 7:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .