após a atualização (13.04) acabou com um grub.cfg que o grub diz ter comandos inválidos

0

Instalado o ubuntu 12.10 em um Asus vivobook (X202E, mas com muitos modelos semelhantes ao redor), redimensionando a partição original do windows8, desativando a inicialização segura e instalado no modo EFI.

esta é minha tabela de partições

Model: ATA Hitachi HTS54505 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system     Name                          Flags
 1      0.00GB  0.32GB  0.31GB  fat32           EFI system partition          boot
 2      0.32GB  0.94GB  0.63GB  ntfs            Basic data partition          hidden, diag
 3      0.94GB  1.08GB  0.13GB                  Microsoft reserved partition  msftres
 4      1.08GB  201GB   200GB   ntfs            Basic data partition
 5      201GB   210GB   8.39GB  linux-swap(v1)  Basic data partition
 6      210GB   262GB   52.4GB  ext4            Basic data partition
 7      262GB   479GB   217GB   ext4            Basic data partition
 8      479GB   500GB   21.5GB  ntfs            Basic data partition          hidden, diag

No começo eu não conseguia inicializar o windows 8. mas uma pesquisa aqui me indicou para editar o arquivo custom40 em /etc/grub.d para adicionar

insmod part_gpt
insmod ntfs
root '(hd0,gpt4)'
(and here i think it was Chainloader +1, not sure)

tudo estava bem, até a atualização 13.04. Agora eu tenho o seguinte no grub.cfg:

cat /boot/grub/grub.cfg
...
menuentry 'Windows 8 (loader) (on /dev/sda4)' --class windows --class os $menuentry_id_option 'osprober-chain-BEE60B1AE60AD317' {
    insmod part_gpt
    insmod ntfs
    set root='hd0,gpt4'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  BEE60B1AE60AD317
    else
      search --no-floppy --fs-uuid --set=root BEE60B1AE60AD317
    fi
    drivemap -s (hd0) ${root}
    chainloader +1
}

E meu arquivo 40_personalizado desapareceu! bem, não se foi, mas tem o conteúdo inicial ...

Quando seleciono essa opção, recebo can't find command 'drivemap' e invalid EFI file path

Acho que há algumas perguntas agora:

1) por que a atualização removeu meu arquivo personalizado do grub?

2) Por que o grub gera um arquivo de configuração com um comando sobre o qual não tem nenhuma pista?

3) o que eu faço para consertar isso?

Para o número 3, se eu puder ser exigente, gostaria de algo com um pouco mais de visão do que instalar o reparo de inicialização e realmente gostaria de começar a desenvolver meu conhecimento de GPT e EFI no nível que eu tinha com partições (sãs).

agradeço qualquer entrada aqui.

    
por gcb 20.06.2013 / 08:54

1 resposta

1

As opções drivemap e chainloader +1 são usadas para inicializar os sistemas operacionais BIOS-mode de uma versão BIOS do GRUB; mas seu sistema é baseado em EFI e tem uma instalação do Windows modo EFI , portanto, qualquer entrada do GRUB com essas opções está fadada ao fracasso. Em vez disso, você precisaria de algo assim:

menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Eu não faço promessas de que isso vai funcionar, no entanto; O GRUB é muito complicado quando se trata de inicializar o Windows, e o que funciona em um computador geralmente falha em outro.

Não sei porque seu arquivo /etc/grub.d/40_custom foi limpo. Esta é a primeira vez que ouço isso acontecer. Meu único palpite é que o Boot Repair, ou alguma outra ferramenta destinada a ajudar a corrigir problemas do GRUB, pode ser responsável.

Você pode ter mais sorte em substituir ou complementar o GRUB com outro gerenciador de inicialização, como o gummiboot ou o meu próprio rEFInd. Esses programas são menos exigentes quanto à inicialização do Windows, e também podem inicializar os kernels do Linux que incluem o stub loader EFI, o que significa a maioria 3.3. 0 e kernels posteriores. No caso do rEFInd, a instalação do pacote binário do Debian deve configurar tudo corretamente, desde que você não execute o Reparo de Inicialização. Se você tiver executar o Reparo de Inicialização, deverá desfazer o ato de fazer malabarismo antes de prosseguir; se você não fizer isso, você receberá o GRUB ao tentar iniciar o Windows.

Como você diz que quer aprender mais sobre esse assunto, recomendo a minha página da Web nos gerenciadores de inicialização da EFI. , confira o blog de Matthew Garrett; ele aborda muitos tópicos, incluindo algumas discussões (principalmente técnicas) sobre problemas de inicialização da EFI.

    
por Rod Smith 20.06.2013 / 19:14