O sistema não inicializa sem o pen drive USB inserido

1

Eu tive esse problema antes de experimentar o Linux Mint, mas não consegui nenhuma ajuda. Eu então levei a acreditar que era um problema relacionado a Mint, e não grub.

Eu instalei o Ubuntu 12.04 hoje à noite em uma segunda partição ao lado do Windows 7. Eu instalei de um pendrive, e tudo ficou peachy até que eu reiniciei sem o pau na minha torre. Agora diz:

error: no such device: 20cec6ca-4024-4237-84c3-2dba3c851497
grub rescue >

Eu verifiquei via ls -l /dev/disk/by-uuid que a minha unidade onde o Ubuntu está instalado corresponde ao UUID que supostamente não existe. O UUID do meu pen drive quando inserido passa a ser 06B3-9C68.

Não há menção ao UUID da minha unidade USB em qualquer lugar em /boot/grub/grub.cfg

Eu também tentei reinstalar o GRUB depois de inicializar no meu sistema, removendo o stick e executando grub-install /dev/sda . Ainda acontece, e não consigo inicializar sem a unidade USB inserida no computador. E o que realmente faz com que minha cabra seja a ordem de inicialização do meu sistema é o CDROM > Hard Drive > USB. Não está nem alcançando o USB para tentar arrancar a partir dele, então por que importa que não esteja lá?

Edit: Além disso, executei o grub-config sem o stick seguido por outro grub-install. Ainda não vai.

FWIW, aqui está meu arquivo 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
  set have_grubenv=true
  load_env
fi
set default="0"
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 {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd1,msdos5)'
search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd1,msdos5)'
  search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
  set locale_dir=($root)/boot/grub/locale
  set lang=en_CA
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=10
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; 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
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.2.0-25-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos5)'
    search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
    linux   /boot/vmlinuz-3.2.0-25-generic-pae root=UUID=20cec6ca-4024-4237-84c3-d2ba3c851497 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-25-generic-pae
}
menuentry 'Ubuntu, with Linux 3.2.0-25-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos5)'
    search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
    echo    'Loading Linux 3.2.0-25-generic-pae ...'
    linux   /boot/vmlinuz-3.2.0-25-generic-pae root=UUID=20cec6ca-4024-4237-84c3-d2ba3c851497 ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.2.0-25-generic-pae
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, with Linux 3.2.0-23-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos5)'
    search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=20cec6ca-4024-4237-84c3-d2ba3c851497 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
menuentry 'Ubuntu, with Linux 3.2.0-23-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos5)'
    search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
    echo    'Loading Linux 3.2.0-23-generic-pae ...'
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=20cec6ca-4024-4237-84c3-d2ba3c851497 ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
}
### 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='(hd1,msdos5)'
    search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos5)'
    search --no-floppy --fs-uuid --set=root 20cec6ca-4024-4237-84c3-d2ba3c851497
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 9014706714705268
    chainloader +1
}
### 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  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
    
por agent154 23.06.2012 / 03:50

2 respostas

2

Seu problema parece ser o hd1 aparecendo em seu grub.cfg. Para um sistema de disco único, eu esperaria que deveria ser hd0. Supondo que seus UUIDs estejam corretos, inicialize com o stick, altere as permissões em /boot/grub/grub.cfg para incluir w (sudo chmod + wgrub.cfg), edite o arquivo (sudo vi grub.cfg) e altere todos os hd1 para hd0. salve, desligue, remova o stick e reinicie. No menu do grub, você pode verificar os discos disponíveis - digite c para a linha de comando do grub, então digite "set root=" e então a aba para autocompletar. Múltiplas opções serão oferecidas se disponíveis, mas se somente hd0 estiver disponível, ele será preenchido para "set root = hd0", outra guia oferecerá as opções de partição, que devem incluir aquelas que você deseja. Talvez a correção de editar o hd1 para hd0 funcione diretamente a partir do menu grub, digite e para editar, e mude os hd1s e depois F10 (ou ctrl X) para reiniciar. Se isso funcionar, conserte as coisas permanentemente com o sudo update-grub.

    
por ubfan1 09.06.2013 / 22:34
1

Seu gerenciador de partida parece estar apontando para o endereço onde sua unidade do USD estava no momento da instalação.

Eu tive que lidar com isso no passado e consegui corrigir o problema usando:

Reparo de inicialização

% bl0ck_qu0te%

Outro método que usei para corrigir esse tipo de situação foi usando o Super Grub2 Disk para permitir que eu inicializasse dentro da partição Linux e, em seguida, use as ferramentas administrativas para corrigir o meu gerenciador de inicialização:

Disco Super Grub2

% bl0ck_qu0te%     
por Zuul 23.06.2012 / 04:55