Ordem de inicialização do UEFI dependendo se o stick USB estiver conectado

2

Eu quero experimentar o Ubuntu 14.04 LTS. Porque eu não quero reinstalar o windows depois disso eu instalei via DVD-ROM no meu stick usb 3.0 (64GB). Isso funcionou bem.

A primeira coisa que quando eu reiniciei o computador, eu estava pensando sobre que o Windows não estava mais começando, quando o stick usb não estava conectado. Eu descobri por que e mudei a ordem de boot na partição GPT usando o efibootmgr parâmetro.

Agora eu tenho que pressionar F9 para entrar no menu de inicialização UEFI do meu laptop HP e, em seguida, eu posso selecionar o Ubuntu. Tudo bem.

Uma coisa que me incomoda: Posso configurar, que o ubuntu inicia automaticamente quando o pen drive USB está conectado? Sem o stick USB, as janelas devem iniciar normalmente sem exibir o grub?

sudo efibootmgr -v
[sudo] password for alex: 
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0001,0000,0004,9999
Boot0000* ubuntu    HD(2,145800,82000,1ec11f19-24da-44cd-8ac6cd26205992d2)File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,145800,82000,1ec11f19-24da-44cd-8ac6-cd26205992d2)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0004* Internal Hard Disk    ACPI(a0341d0,0)PCI(11,0)SATA(0,ffff,0)HD(2,145800,82000,1ec11f19-24da-44cd-8ac6-cd26205992d2)..BO
Boo9999* USB Drive (UEFI)   ACPI(a0341d0,0)PCI(1d,0)USB(10,0)..BO

alex@alex-desktop:~$ sudo parted -l
Modell: ATA SAMSUNG SSD 830 (scsi)
Festplatte  /dev/sda:  256GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: gpt
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Dateisystem  Name                          Flags
 1      1049kB  683MB   682MB   ntfs         Basic data partition          versteckt, diag
 2      683MB   955MB   273MB   fat32        EFI system partition          boot, esp
 3      955MB   1089MB  134MB                Microsoft reserved partition  msftres
 4      1089MB  232GB   231GB   ntfs         Basic data partition          msftdata
 5      232GB   256GB   24,0GB  ntfs         Basic data partition          versteckt, msftdata


Modell: SanDisk Extreme (scsi)
Festplatte  /dev/sdb:  32,0GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Typ       Dateisystem  Flags
 1      1049kB  28,4GB  28,4GB  primary   ext4         boot
 2      28,4GB  32,0GB  3652MB  extended
 5      28,4GB  32,0GB  3652MB  logical
    
por Alex 07.06.2015 / 21:25

1 resposta

1

Histórico: a EFI usa uma variável de ordem de inicialização armazenada na NVRAM para determinar o que inicializar. (Esta é a linha BootOrder: na saída efibootmgr .) Essas entradas apontam para arquivos de programa EFI armazenados em uma partição do sistema EFI ( ESP), para dispositivos de rede e assim por diante. Você pode ter vários ESPs e cada ESP pode ter vários arquivos de inicialização EFI. Se um arquivo de inicialização falhar, o ESP deve retornar para o próximo em sua lista.

Seu problema é que, embora o Ubuntu esteja instalado na sua unidade flash USB, essa unidade flash não tem ESP, e parece que o GRUB foi instalado no ESP no disco rígido. Infelizmente, sua configuração do GRUB depende de arquivos de configuração na unidade USB, portanto, se a unidade USB for desconectada quando o GRUB for iniciado, o GRUB retornará para um prompt grub> , mas não falhará no sentido de retornar ao EFI para que o EFI possa iniciar o próximo gerenciador de inicialização. Quando você instalou o Ubuntu pela primeira vez, este GRUB foi configurado como o carregador de boot padrão, então você viu o tipo de falha que descreve. Você alterou o padrão para o Windows, o que faz com que ele inicialize corretamente, mas dificulta a inicialização do Ubuntu. Existem várias maneiras de limpar isso:

  • Você pode viver com ela como está e usar o gerenciador de inicialização interno do computador (a tecla F9 mencionada) para selecionar o sistema operacional a ser inicializado. Essa solução é a mais segura, já que não envolve mudanças que possam piorar as coisas.
  • Você pode tentar reconfigurar o GRUB para ler seu arquivo de configuração do ESP, e não do diretório /boot do Ubuntu, e redefinir o GRUB como padrão. O GRUB deve então apresentar um menu de inicialização, que permitirá que você selecione o sistema operacional desejado com mais facilidade. Estou um pouco enferrujado sobre como fazer isso, no entanto. Verifique esta antiga página de documentação para todos os detalhes (e depois alguns). Observe que o GRUB não selecionará automaticamente o Ubuntu se e somente se a unidade USB estiver conectada - ou, pelo menos, se puder ser configurada para fazer isso, não sei como.
  • Você pode reparticionar seu disco rígido interno para incluir uma partição /boot do Ubuntu e copiar seus arquivos para lá. Você precisará reinstalar o GRUB. Em teoria, deve funcionar se a unidade USB está ou não conectada, mas não selecionará automaticamente o Ubuntu quando a unidade USB estiver conectada e o Windows quando não estiver conectado. Essa opção é uma das mais arriscadas, já que envolve redimensionar suas partições no disco.
  • Crie um ESP em sua unidade flash USB e instale o GRUB lá usando o nome de arquivo de retorno de EFI/BOOT/bootx64.efi . (No entanto, o procedimento de instalação pode ser um pouco confuso.) Você pode usar o gerenciador de inicialização (F9) para alternar entre a unidade USB (GRUB / Ubuntu) e o Windows. Algumas EFIs podem permitir que você configure a unidade USB como padrão se ela estiver conectada, o que permitiria a inicialização automática do Ubuntu quando estiver disponível, mas não posso prometer que esse detalhe funcionará como você deseja. Você definitivamente precisará reparticionar a unidade USB (o que acrescenta um pouco de risco), e talvez seja necessário converter o disco de MBR para GPT . Uma vantagem dessa abordagem é que a unidade USB deve ser inicializável independentemente em praticamente qualquer computador baseado em EFI da mesma arquitetura.
  • Você pode instalar o meu gerenciador de reinicialização no seu ESP. Com alguns ajustes de configuração (principalmente definindo default_selection vmlinuz,Windows ou algo semelhante em seu arquivo refind.conf ), ele deve inicializar o Ubuntu por padrão quando a unidade USB estiver conectada e o Windows quando a unidade USB não estiver conectada.

Também pode haver outras soluções possíveis, mas estas são as que vêm à mente. Os melhores provavelmente estão deixando-o como estão, criando um ESP em sua unidade USB e reinstalando o GRUB nele e usando o rEFInd.

    
por Rod Smith 08.06.2015 / 15:30