O GRUB 2 não aparece no arranque

2

Sei que existem toneladas de perguntas referentes a GRUB , mas tenho um problema específico que não consigo resolver por um bom tempo.

Meu disco rígido é exibido usando formato GPT (não MBR - consulte a lista abaixo. Eu tenho dois sistemas operacionais de 64 bits:

  1. Windows 10 ,
  2. Debian Stretch ( Sid ).

O problema é que depois de uma das atualizações do sistema (não tenho certeza se foi a falha de atualização do Debian do Windows), o GRUB parou de aparecer na inicialização, fazendo com que o Windows iniciasse o padrão. Para iniciar o Debian, eu uso o prompt de comando do GRUB usando o LiveCD do Debian :

grub> root=(hd0,6)
grub> linux /vmlinuz-4.3.0-1-amd64 root=/dev/sda8
grub> initrd /initrd.img-4.3.0-1-amd64
grub> boot

O que eu tentei até agora

Eu tentei resolver o problema de muitas maneiras diferentes:

  • Eu removi todos os pacotes com grub string em seus nomes e instalei grub-efi-amd64 grub-common , grub2-common , grub-efi-amd64-bin . Como resultado, todos esses pacotes foram instalados.
  • Eu fiz as seguintes alterações em /etc/default/grub (como sugerido na resposta @ gilles ' para esta pergunta) e correu update-grub (ou update-grub2 que é um link simbólico para update-grub one-liner bash):
    • GRUB_HIDDEN_TIMEOUT_QUIET=false ,
    • GRUB_HIDDEN_TIMEOUT= ,
    • GRUB_TIMEOUT=10 .
  • desativado Windows Fast Startup e hibernação.
  • grub-install --target=x86_64-efi && update-grub

Informação de diagnóstico

  • Minha placa-mãe é GIGABYTE GA-Z77-D3H com UEFI DualBIOS ™ , o que significa que ( quote ) 'ele tem um modo de compatibilidade de BIOS - o menu de boot embutido mostra duas entradas para cada dispositivo, um prefixado com UEFI e outro sem' . A inicialização no modo UEFI ou no modo herdado do BIOS não funciona.

  • efibootmgr resultado do comando:

    root@mycomp:/home/me# efibootmgr 
    BootCurrent: 0007
    Timeout: 1 seconds
    BootOrder: 0002,0003,0004,0005,0000,0007
    Boot0000* Windows Boot Manager
    Boot0002* UEFI: ST1000DM003-9YN162
    Boot0003* Hard Drive 
    Boot0004* CD/DVD Drive 
    Boot0005* Removable Drive 
    Boot0007* UEFI: USB USB Hard Drive
    
  • Resultado do comando

    parted :

    root@mycomp:/home/me# parted /dev/sda print
    Model: ATA ST1000DM003-9YN1 (scsi)
    Disk /dev/sda: 1000GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system     Name                          Flags
     1      1049kB  316MB   315MB   ntfs            Basic data partition          hidden, diag
     2      316MB   420MB   105MB   fat32           EFI system partition          boot, esp
     3      420MB   555MB   134MB                   Microsoft reserved partition  msftres
     4      555MB   268GB   268GB   ntfs            Basic data partition          msftdata
     5      268GB   805GB   537GB   ntfs            Basic data partition          msftdata
     6      805GB   806GB   500MB   ext4                                          msftdata
     7      806GB   830GB   24,4GB  ext4                                          msftdata
     8      830GB   838GB   8000MB  ext4                                          msftdata
     9      838GB   853GB   15,0GB  ext4                                          msftdata
    10      853GB   863GB   10,0GB  linux-swap(v1)
    11      863GB   1000GB  137GB   ext4                                          msftdata
    
  • /etc/fstab content (anotei UUID s abaixo para fins de privacidade):

    root@mycomp:/home/me# cat /etc/fstab
    # <file system>                           <mount point>     <type>  <options>          <dump>  <pass>
    # / was on /dev/sda8 during installation
    UUID=00000000-0000-0000-0000-000000000000 /                 ext4    errors=remount-ro   0       1
    # /boot was on /dev/sda6 during installation
    UUID=00000000-0000-0000-0000-000000000000 /boot             ext4    defaults            0       1
    # /boot/efi was on /dev/sda2 during installation
    UUID=0000-0000                            /boot/efi         vfat    defaults            0       1
    # /home was on /dev/sda11 during installation
    UUID=00000000-0000-0000-0000-000000000000 /home             ext4    defaults            0       2
    # /tmp was on /dev/sda9 during installation
    UUID=00000000-0000-0000-0000-000000000000 /tmp              ext4    defaults            0       2
    # /usr was on /dev/sda7 during installation
    UUID=00000000-0000-0000-0000-000000000000 /usr              ext4    defaults            0       2
    # swap was on /dev/sda10 during installation
    UUID=00000000-0000-0000-0000-000000000000 none              swap    sw                  0       0
    # CD-ROM
    /dev/sr0                                  /media/cdrom0     udf,iso9660 user,noauto     0       0
    # Added for Google Chrome (see: https://unix.stackexchange.com/questions/116400/google-chrome-no-space-on-rootfs-partition)
    /usr/opt                                  /opt              none   bind                 0       0
    # C: Windows partition
    UUID=0000000000000000                     /media/Windows/C  ntfs   ro                   0       0
    # D: Windows partition
    UUID=0000000000000000                     /media/Windows/D  ntfs   ro                   0       0
    
  • fdisk -l result:

    root@mycomp:/home/me# fdisk -l
       Device       Start        End    Sectors    Size Type
    /dev/sda1        2048     616447     614400    300M Windows recovery environment
    /dev/sda2      616448     821247     204800    100M EFI System
    /dev/sda3      821248    1083391     262144    128M Microsoft reserved
    /dev/sda4     1083392  524290047  523206656  249,5G Microsoft basic data
    /dev/sda5   524290048 1572866047 1048576000    500G Microsoft basic data
    /dev/sda6  1572866048 1573842943     976896    477M Microsoft basic data
    /dev/sda7  1573842944 1621499903   47656960   22,7G Microsoft basic data
    /dev/sda8  1621499904 1637124095   15624192    7,5G Microsoft basic data
    /dev/sda9  1637124096 1666420735   29296640     14G Microsoft basic data
    /dev/sda10 1666420736 1685952511   19531776    9,3G Linux swap
    /dev/sda11 1685952512 1953523711  267571200  127,6G Microsoft basic data
    
  • Referindo-se às informações do sistema do Windows em msinfo32 , meu sistema BIOS mode é UEFI .

Se você precisar de mais informações para diagnosticar meu problema, coloque sua solicitação no comentário.

Atualizar

Eu removi o pacote grub-efi-amd64 de todas as dependências instaladas grub-pc e agora o GRUB está carregando com sucesso somente se eu inicializar no modo BIOS. O segue o comando :

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

exibe BIOS , mas eu ainda quero inicializar no modo UEFI!

Links úteis

Links que podem ser úteis:

por patryk.beza 30.10.2016 / 15:52

3 respostas

2

O problema é que o EFI é bios-init, e você tem que escolher a imagem do efi (windows ou linux-grub)

Se você não configurar o grub, ele inicializará o boot-padrão, então entre no BIOS e desative as inicializações seguras.

Depois disso ... o Grub será atualizado corretamente. (depois de inicializar corretamente)

Sabendo agora que você odeia ubuntus "auto magic" (tudo bem, tudo bem) ainda assim você poderia fazer engenharia reversa dessas configurações por causa da compreensão ...

Inicialização EFI = Definido no Firmware (BIOS)

  • Tipo de inicialização = uefi
  • 1º boot = Selecione EFI: Disk e EFI: boot (Gerenciador de inicialização do Windows) ou (Debian / Ubuntu / Etc ...)

Grub = deve ser efi [nome do disco aqui]

ou algo da combinação de ... Agora você pode instalar o grub pelo Root - > kernel, ramdisk, etc ... e windows devem ser hd0,1 ... 2 ... efi / boot ou algo-algo carregadores de inicialização do Windows.

Defina o bios forçado para verificar a inicialização - ou Debian.

Reparo de inicialização.

link

  • cria um disco ao vivo
  • Inicialize ao vivo.
  • Conecte-se à internet.
  • Pressione Go

... deve funcionar.

    
por 01.11.2016 / 17:57
2

Isso é um monte de partições!

"GRUB stopped showing up at start up making Windows start default."

Indica que (provavelmente) o windows alterou os flags de inicialização.
de seu parted output, a partição 2 está inicializando. É onde o / boot / grub é? ... Parece que o sda6 é uma partição / boot para sua instalação nix?

Use cfdisk ou similar para garantir que a partição marcada de inicialização seja aquela em que o / boot / grub está presente.

E não vejo dificuldade em reinstalar o grub:

grub-install /dev/sda && update-grub && shutdown -r now
    
por 02.11.2016 / 00:57
0

Para que o menu grub2 apareça em um sistema uefi , basta adicionar uma entrada de menu com efibootmgr :

sudo efibootmgr --create --disk /dev/xxxx --part 1 --write-signature --loader /EFI/Manjaro/grubx64.efi --label "MANJARO" --verbose
  • Você deve ter montado a partição EFI em /boot/efi & a arquivos sob este ponto de montagem lhe darão o path correto para o --loader acima, apontando para grubx64.efi .

  • substitua --disk xxxx & o número da partição em --part com seu dispositivo EFI real.

Em um sistema de inicialização dupla, isso mostrará algo como:

[stuart@manjaro ~]$ efibootmgr
BootCurrent: 0003
Timeout: 10 seconds
BootOrder: 0003,0000,0001
Boot0000* Windows Boot Manager
Boot0001  Hard Drive 
Boot0003* MANJARO
  • O ISO do Arquiteto de Manjaro se estiver escrito como uma imagem para USB (por exemplo, com dd ) pode inicializar no modo UEFI & tem uma opção no menu inicial para procurar loaders EFI . Isso pode ser usado para obter seu sistema até executar o comando efibootmgr acima. Se a opção do menu não aparecer, significa que você inicializou a partir do USB no modo MBR .
por 30.07.2018 / 20:03