Instale o grub2 no usb-drive para inicializar o Ubuntu 13.04 x64 instalado em disco rígido no modo UEFI

3

Eu tenho tentado encontrar uma maneira de instalar o grub2 em uma unidade USB, de tal forma que eu possa inicializar um PC no modo UEFI no Ubuntu, sem modificar as configurações de firmware da UEFI de nenhuma maneira ou substituindo as configurações anteriores. instalado bootloader do Windows 7 x64 com grub. Aqui está o layout atual da partição gpt da unidade SSD interna, conforme fornecido pelo gparted, quando executado a partir de uma sessão de live-dvd do Ubuntu 13.04 x64:

/dev/sda1 100mb fat32 /boot (efi system partition)

/dev/sda2 128mb --- /msfres (Windows 7 reserved partition)

/dev/sda3 100gb ntfs (Windows 7 system partition)

/dev/sda4 10gb ext4 (Ubuntu root '/' partition)

Até agora, eu tentei inicializar meu live-dvd no modo UEFI, criando uma partição raiz para o Ubuntu (como visto acima), e então dizendo ao instalador para colocar o grub em uma pen drive usb de 512mb (/ dev / sdi) que eu tinha anteriormente formatado no gparted da seguinte forma: 1) criar um layout de partição gpt; 2) crie uma única partição primária; 3) formate a partição como fat32; 4) defina o sinalizador de partição como '/ boot'.

Eu instruí o instalador do Ubuntu para instalar o grub em / dev / sdi1 (a partição que eu criei acima - desde que o 1mb anterior era espaço não utilizado). No entanto, quando reiniciei o PC, após a conclusão do instalador do Ubuntu, com a caneta usb conectada, o menu de inicialização do firmware detectou a caneta como um dispositivo UEFI, mas iniciou o Windows 7 - sem menu Ubuntu ou grub.

Experimentei o Google para obter soluções e, embora existam muitos sites com detalhes sobre como inicializar o Windows e Linux em sistemas UEFI, todos eles pressupõem que você poderá modificar as configurações de firmware UEFI ou substituir o bootloader do Windows 7 (nenhuma das opções está disponível para mim, pois não possuo o PC).

Portanto, alguém poderia me fornecer um método passo a passo detalhado para instalar o grub2 em uma caneta USB para que eu possa inicializar na partição Ubuntu no modo UEFI, sem alterar as configurações de firmware do sistema ou modificar / substituir o gerenciador de inicialização do Windows 7 existente?

A placa de sistema é uma ASUS Z87-K (bios rev 0412), a SSD é uma OCZ-Vertex3 de 120 gb (firmware rev 2.15)

Uma atualização: Acontece que meu firmware UEFI possui inicialização segura ativada (porque o Windows 7 (e outros sistemas operacionais no 'modo ao vivo') inicializou bem, presumi que estava desativado). Minhas desculpas se eu tenho levado as pessoas para o caminho errado! Como não possuo este PC, não posso desligar o boot, por isso vou ter que abandonar a tentativa de instalação do Ubuntu por enquanto. Embora, de acordo com a documentação canônica, o Ubuntu 12.04.2 e posterior deva ser capaz de inicializar em um PC com inicialização segura ativada? Como não consigo desativar a inicialização segura para restringir o problema que está me impedindo de inicializar com êxito o Ubuntu, deixarei essa questão em aberto, mas qualquer instalação futura que eu tentar será feita em meu próprio hardware, para que eu tenha a liberdade de experimente em maior profundidade.

Obrigado, mais uma vez, a todos que responderam!

    
por Paul H 06.08.2013 / 21:30

3 respostas

1

Você está quase lá. Mídia removível como usb será inicializada a partir de uma partição EFI inicializável (e isso é uma partição EFI PERÍODO inicializável, não total), usando o bootloacer /EFI/Boot/bootx64.efi (para arquiteturas x64). Simplesmente copie seu /EFI/ubuntu/grubx64.efi para /EFI/Boot/bootx64.efi e tenha uma cópia do grub.cfg em /EFI/ubuntu/grub.cfg e ele deve inicializar. Naturalmente, o grub.cfg deve ser configurado para inicializar o disco rígido como você deseja. Simplesmente copiar o grub.cfg da instalação do disco rígido funcionará, mas você precisará recopiar toda vez que você atualizar os kernels, então você pode fazer com que o /EFI/ubuntu/grub.cfg algumas linhas importem o arquivo / boot / grub / grub.cfg (como 13.04 eu acho). * Para inicialização segura, use shim.efi para o /EFI/Boot/bootx64.efi e tenha uma cópia do SIGNED grubx64.efi em / EFI / Boot também. O grub.cfg está no mesmo lugar, / EFI / ubuntu. Sua mídia ao vivo usa esse mecanismo para inicializar, então, se funcionar, esse método funcionará.

    
por ubfan1 06.08.2013 / 22:23
1

Você não pode definir duas partições / boot com o sinalizador de inicialização! Existe apenas um sinalizador de inicialização necessário para o grub2 na partição / boot - então simplesmente desative o sinalizador de inicialização em sua partição / dev / sda1

Depois disso, ative o sinalizador de inicialização na partição / boot de / dev / sdi - sure? isto está certo ? Você tem uma partição / boot em / dev / sdi? Então você precisa ativar o boot-flag (simplesmente com o gparted).

Como você diz ... o grub2 já está instalado em / dev / sdi? Se não seguir agora (necessário porque você modificou as flags de inicialização):

sudo grub-install /dev/sdi

sudo update-grub2

Antes disso, toda a sua máquina estava inicializando no Windows 7 do / dev / sda3 via / dev / sda1 - mas agora o boot-flag está desativado e configurado para a partição / boot de / dev / sdi - e sua máquina deve agora inicializar instalação do seu drive USB.

Apenas no caso de o modo UEFI a sua máquina não conseguir inicializar em um drive USB - então você deve desabilitar o modo UEFI nas configurações do BIOS e ativar o modo EFI no lugar.

    
por dschinn1001 06.08.2013 / 21:52
0

Não existe um "/ boot flag". GParted e parted têm um "sinalizador de inicialização" (sem barra inicial), mas essa terminologia é confusa na melhor das hipóteses. O GParted / parted "sinalizador de inicialização" é realmente uma maneira de definir o código de tipo em uma partição para identificá-lo como uma partição do sistema EFI (ESP), a partir do qual o firmware lê os gerenciadores de inicialização. Ao contrário do que o dschinn1001 parece estar dizendo, você deve não definir o código de tipo para sua partição /boot do Linux para o código ESP. É legal ter vários ESPs em um único disco, embora o Windows seja alérgico a essas configurações, por isso eu recomendo que não. O ESP deve ter um sistema de arquivos FAT (tecnicamente FAT32, embora o FAT16 geralmente funcione na prática), portanto, a menos que sua partição /boot do Linux use FAT, você deve não definir o GParted / parted "sinalizador de inicialização" na partição /boot .

Instalar o GRUB em uma unidade flash USB é tecnicamente possível, mas é um pouco limitante. O problema é a configuração codificada do GRUB, que oferece duas opções:

  • Você pode criar o GRUB de modo que ele procure grub.cfg no mesmo diretório que o grubx64.efi binário (isto é, na unidade flash USB). Isso normalmente funcionará em apenas um computador, já que grub.cfg contém todos os tipos de detalhes específicos do sistema.
  • Você pode criar o GRUB de forma que procure grub.cfg no disco rígido. Isso pode funcionar em mais computadores, mas exigirá que cada computador tenha um arquivo grub.cfg em funcionamento e no mesmo local em todos os sistemas. Assim, não funcionará em todos os computadores, apenas aqueles configurados de maneira semelhante.

O Ubuntu constrói seu binário grubx64.efi para funcionar da segunda maneira. Note que o procedimento do ubfan1 assume o primeiro método de construir o GRUB, então ele funcionará apenas com um binário do GRUB customizado (ou um binário do GRUB retirado do Fedora ou alguma outra distribuição que funcione dessa maneira). OTOH, o procedimento do ubfan1 pode funcionar da segunda maneira se os sistemas estiverem configurados corretamente - mas copiar grub.cfg para a unidade flash USB não terá sentido.

Se você estiver procurando por um disco de inicialização de emergência de uso geral, o GRUB não é realmente a melhor solução - pelo menos, a menos que Super O disco do GRUB 2 é lançado com o suporte da EFI ou alguém cria algo semelhante. No momento, a melhor opção para um disco de inicialização EFI de emergência é meu gerenciador de inicialização do rEFInd. Este programa cria uma lista de outros EFIs programas de inicialização em um computador, permitindo que você inicialize qualquer um deles. O resultado é que você poderá inicializar a partir de qualquer carregador de inicialização (GRUB, ELILO, o gerenciador de inicialização do Windows, etc.) instalado no disco rígido, mesmo que você tenha perdido suas entradas EFI NVRAM. O gerenciador de partida deve estar configurado corretamente.

Como os kernels Linux desde a versão 3.3.0 incluem carregadores de inicialização EFI internos, o rEFInd também pode iniciá-los diretamente. O problema é que o rEFInd precisa descobrir quais opções passar para o kernel - o mais importante, qual é o seu sistema de arquivos raiz do Linux. O rEFInd pode descobrir isso se o kernel estiver no sistema de arquivos raiz (isto é, se não houver uma partição /boot separada) ou se um arquivo de configuração específico do rEFInd ( refind_linux.conf ) existir no mesmo diretório do kernel. O Ubuntu normalmente não usa uma partição /boot separada, portanto, o rEFInd em uma unidade flash USB ou CD-R geralmente pode executar o Ubuntu diretamente, e deve ser mais flexível e fácil de configurar do que o GRUB para uso emergencial. (A página rEFInd inclui links para download para imagens em CD-R e unidade flash USB.) Se você tiver configuração mais complexa e você deve lembrar o nome do seu sistema de arquivos raiz (ou qualquer outra opção do kernel que você precisa inicializar), você pode editá-los ou adicioná-los pressionando F2 ou Insert duas vezes, o que abre um editor de linhas para que você possa modificar o opções do kernel.

    
por Rod Smith 07.08.2013 / 20:10