USB3 驱动器插入 PC 使计算机挂起“欢迎使用 grub”

USB3 驱动器插入 PC 使计算机挂起“欢迎使用 grub”


我有一个希捷 2TB USB2 硬盘,ext4 格式。如果我将其插入系统并启动,PC 就会卡在“欢迎使用 grub”处。如果我在未插入 USB 驱动器的情况下重新启动,系统会正常启动。然后我可以插入驱动器并使用它。

我正在使用Debian GNU/Linux jessie/sid更新到最新的。
Ubuntu livecds/usbs 启动正常。

lsusb(外部驱动器):

Bus 001 Device 006: ID 0bc2:3332 Seagate RSS LLC Expansion

grub-pc 版本:2.00-14

主板只有 USB2 端口(Intel H55TC)BIOS 是最新的(新旧固件都遇到同样的问题)。

可能是什么原因造成的?
(欢迎可测试的猜测,因为我没有想法了)。

注:在我发现USB驱动器是原因之前,我只是简单地启动了10次左右,最终就可以正常启动了。

这是我的 grub.cfg

#
# 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
load_env
fi
set default="0"

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
}

terminal_input console
terminal_output console
set timeout=5
### 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 ###
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2f0165f3-2087-4157-b1e6-f707a995827b' {
        load_video
        insmod gzio
        insmod part_msdos
        insmod part_msdos
        insmod diskfilter
        insmod mdraid09
        insmod ext2
        set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
        if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
        else
        search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
        fi
        echo    'Loading Linux 3.9-1-686-pae ...'
        linux   /boot/vmlinuz-3.9-1-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro  hdd=noprobe
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.9-1-686-pae
}
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-2f0165f3-2087-4157-b1e6-f707a995827b' {
        menuentry 'Debian GNU/Linux, with Linux 3.9-1-686-pae' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.9-1-686-pae-advanced-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.9-1-686-pae ...'
                linux   /boot/vmlinuz-3.9-1-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro  hdd=noprobe
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.9-1-686-pae
        }
        menuentry 'Debian GNU/Linux, with Linux 3.9-1-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.9-1-686-pae-recovery-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.9-1-686-pae ...'
                linux   /boot/vmlinuz-3.9-1-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro single 
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.9-1-686-pae
        }
        menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.2.0-4-686-pae-advanced-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.2.0-4-686-pae ...'
                linux   /boot/vmlinuz-3.2.0-4-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro  hdd=noprobe
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.2.0-4-686-pae
        }
        menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.2.0-4-686-pae-recovery-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.2.0-4-686-pae ...'
                linux   /boot/vmlinuz-3.2.0-4-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro single 
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.2.0-4-686-pae
        }
        menuentry 'Debian GNU/Linux, with Linux 3.2.0-3-686-pae' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.2.0-3-686-pae-advanced-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.2.0-3-686-pae ...'
                linux   /boot/vmlinuz-3.2.0-3-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro  hdd=noprobe
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.2.0-3-686-pae
        }
        menuentry 'Debian GNU/Linux, with Linux 3.2.0-3-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.2.0-3-686-pae-recovery-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.2.0-3-686-pae ...'
                linux   /boot/vmlinuz-3.2.0-3-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro single 
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.2.0-3-686-pae
        }
        menuentry 'Debian GNU/Linux, with Linux 3.2.0-2-686-pae' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.2.0-2-686-pae-advanced-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.2.0-2-686-pae ...'
                linux   /boot/vmlinuz-3.2.0-2-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro  hdd=noprobe
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.2.0-2-686-pae
        }
        menuentry 'Debian GNU/Linux, with Linux 3.2.0-2-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.2.0-2-686-pae-recovery-2f0165f3-2087-4157-b1e6-f707a995827b' {
                load_video
                insmod gzio
                insmod part_msdos
                insmod part_msdos
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
                if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
                else
                search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
                fi
                echo    'Loading Linux 3.2.0-2-686-pae ...'
                linux   /boot/vmlinuz-3.2.0-2-686-pae root=UUID=2f0165f3-2087-4157-b1e6-f707a995827b ro single 
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-3.2.0-2-686-pae
        }
}

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

### BEGIN /etc/grub.d/20_ipxe ###
menuentry "Network boot (iPXE)" --users "" --class network {
        insmod part_msdos
        insmod part_msdos
        insmod diskfilter
        insmod mdraid09
        insmod ext2
        set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
        if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
        else
        search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
        fi
        linux16 /boot/ipxe.lkrn
}
### END /etc/grub.d/20_ipxe ###

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

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

### BEGIN /etc/grub.d/20_memtest86 ###
### END /etc/grub.d/20_memtest86 ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
        insmod part_msdos
        insmod part_msdos
        insmod diskfilter
        insmod mdraid09
        insmod ext2
        set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
        if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
        else
        search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
        fi
        linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
        insmod part_msdos
        insmod part_msdos
        insmod diskfilter
        insmod mdraid09
        insmod ext2
        set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
        if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
        else
        search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
        fi
        linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
menuentry "Memory test (memtest86+, experimental multiboot)" {
        insmod part_msdos
        insmod part_msdos
        insmod diskfilter
        insmod mdraid09
        insmod ext2
        set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
        if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
        else
        search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
        fi
        multiboot       /boot/memtest86+_multiboot.bin
}
menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" {
        insmod part_msdos
        insmod part_msdos
        insmod diskfilter
        insmod mdraid09
        insmod ext2
        set root='mduuid/019e28032b26f1e0e368bf24bd0fce41'
        if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint='mduuid/019e28032b26f1e0e368bf24bd0fce41'  2f0165f3-2087-4157-b1e6-f707a995827b
        else
        search --no-floppy --fs-uuid --set=root 2f0165f3-2087-4157-b1e6-f707a995827b
        fi
        multiboot       /boot/memtest86+_multiboot.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 ###

答案1

引导顺序

听起来您的系统启动顺序已设置为系统正在尝试从 USB 驱动器启动或访问 USB 驱动器。我会仔细检查系统的 BIOS 以确保以下内容正确:

  1. 驱动器的启动顺序是这样的,任何 USB 驱动器都应该位于列表的底部。

尝试另一台计算机?

如果可能的话,我会通过测试插入的驱动器,同时另一台计算机在安装该驱动器的情况下启动,来确认这不是您的特定计算机和 USB 组合的 BIOS/硬件问题。

syslinux + BIOS + ext4 的问题

我遇到了这个标题为:[已解决] 从 USB 闪存驱动器启动的问题在 ArchLinux 论坛上。该线程中的 #8 评论提到了某些 BIOS 无法启动 ext4 分区驱动器的问题。

摘抄

根据 syslinux 维基条目:

虽然 ext4 格式的 USB 驱动器可以在较新的计算机上启动,但如果包含内核和 initrd 的启动分区不在 fat16 分区上,某些计算机可能会挂起

答案2

我建议检查MBR分区表,看看物理驱动器映射是否有问题。很少有网站和工具,您只需粘贴您的 mbr 内容,他们就会为您分析它。另外,请确保您的 USB 不可启动(运行fdisk /dev/sdX,按p并检查没有分区具有可启动标志)

要获取 mbr 的内容,请运行以下命令:sudo dd if=/dev/sda of=mbr.bin bs=512 count=1 conv=notrunc 然后发出hexdump [-C] mbr.bin以极客可读格式查看 mbr 代码:D

现在是时候做一些研究了......

从你的描述来看,我觉得这个问题很有可能存在。

相关内容