A instalação do GRUB-EFI falha durante a instalação do Kali Linux no disco rígido externo

2

Eu estava tentando instalar o Kali Linux de um USB ao vivo para um disco rígido externo de 1 TB. No começo eu era incapaz de inicializar o USB ao vivo com o meu BIOS H2O Insyde. Então eu converti minha tabela de partições do pen drive para GPT e criei uma partição FAT32 de 500MB chamada EFI e copiei BOOTX64.efi e grubx64.efi para a inicialização de diretório dentro da minha partição EFI. Eu criei o USB ao vivo usando um Ubuntu em um VirtualBox (quando eu criei com o unetbootin e instalador universal, ele não inicializa.) E só então consegui inicializar o USB ao vivo.

Então eu tentei instalar o Kali Linux no meu disco rígido externo. todo o procedimento de instalação é bem-sucedido com a partição guiada e a partição manual, mas a instalação do GRUB falha. Eu mencionei fóruns on-line e wikis para corrigir isso, mas nada funciona.

Eu tentei instalar o GRUB-EFI manualmente a partir do terminal usando o USB ao vivo. Eu segui wiki.archlinux.org e Como reinstalar o GRUB2 EFI? , mas ambos falharam. Para o primeiro link, estou tendo sucesso, mas mesmo incapaz de inicializar o Kali Linux. Para o segundo, quando tento instalar o pacote grub-efi após montar as partições e fazer chroot , ele pede para inserir o CD / DVD Kali Linux na partição cdrom0. Como estou instalando a partir de um USB ao vivo, não tenho em CD / DVD.

Eu tentei fazer o mesmo processo que segui para o meu USB ao vivo, criando uma partição EFI FAT32 no disco rígido externo e copiando esses 2 arquivos, mas sem sucesso.

Eu fiz uma pergunta aqui antes. Recebi sugestão para editar o UEFI-BIOS codificado. mas eu quero instalar todo o sistema operacional Linux com o carregador de boot e a partição EFI, tudo no meu disco rígido externo. e defina o primeiro dispositivo de inicialização como dispositivo externo. Então, quando meu disco rígido estiver conectado, ele irá inicializar do Linux do Windows 7. Como eu consegui inicializar o USB ao vivo, eu acho, não há problema com o UEFI-BIOS codificado.

Eu tentei o mesmo processo com o Ubuntu criando um Live USB, mas a instalação não continua depois que ele pede para selecionar a rede durante a instalação. Embora eu selecione não usar a rede ou usar a rede, ela não prossegue para o particionamento.

Eu recebi outra sugestão para instalar o Linux usando o BIOS no modo herdado e depois instalar o GRUB-EFI para convertê-lo para inicialização usando UEFI. Mas com a minha partição GPT, ele não inicializa no modo Legacy e com a minha partição MBR ele não inicializa no UEFI. Portanto, quando eu for instalar usando o modo Legado, não posso inicializar em UEFI sem limpar a instalação e converter o disco em partição GPT. Então não adianta.

Alguém por favor pode ajudar?

meu disco rígido é 1TB da Seagate. (convertido para partição GPT).

    
por RatDon 09.02.2014 / 12:55

3 respostas

1

Você provavelmente não precisa de grub . A coisa é - seu firmware UEFI é seu bootloader - ele já é. Quando você inicializa através de grub você realmente carrega chainload - isto é redundância desnecessária. Eu uso rEFInd - é apenas um gerenciador de inicialização - ele apenas permite que você escolha o que inicializar, então retransmite isso de volta para o firmware e o firmware faz a inicialização. Não é muito mais que um cardápio.

Isso é bom porque o kernel do linux é um binário executável da própria EFI - você pode inicializar o linux sem nenhum gerenciador de inicialização / carregador, apenas executando-o a partir do firmware. Eu recomendaria essa opção também, mas não é tão flexível quanto um gerenciador de menu interveniente como rEFInd porque você tem que confiar nos desenvolvedores de firmware para fornecer essa interface - e isso pode ser duvidoso. Mas se você estiver interessado, procure na interface efibootmgr - isso exigirá a configuração de variáveis de firmware persistentes.

O seguinte é um tutorial sobre como usar primeiro dd then gdisk para garantir que você tenha uma partição do sistema EFI inicializável.

Só para garantir que a tabela de partições esteja completamente limpa antes de começar, você deve escrever sobre alguns dos primeiros blocos do disco:

dd ibs=4M count=1 if=/dev/zero of=/dev/${USB_DISK}

Agora entramos em gdisk . Substitua qualquer arquivo de dispositivo /dev/... em que seu disco usb esteja em /dev/${USB_DISK} :

gdisk /dev/${USB_DISK}
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present
Creating new GPT entries.
Command (? for help): ?

Use ? para o menu para visualizar todas as opções primeiro, mas a primeira em que você precisa escrever uma tabela de partição limpa da GPT é o :

...
Proceed? (Y/N): y

Em seguida, você precisará de uma partição do sistema EFI. Use o comando n para criar uma partição n ew. Nos prompts abaixo, em que você não vê a chave digitada, é porque acabei de acessar ENTER para concordar com o padrão:

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-1331166, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-1331166, default = 1331166) or {+-}size{KMGTP}: 500M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef00

Se você pressionar L no último prompt acima, você obterá uma lista de todos os tipos de partição disponíveis, mas o que você precisa é digitar ef00 para a partição do sistema efi. Do n quantas vezes você precisar para criar qualquer outra partição que você possa precisar para / ou swap ou qualquer outra coisa. Mais uma vez, use L para ver os diferentes tipos, mas o defaul 8300 deve funcionar para todos menos para swap.

Dê uma olhada na sua nova tabela de partições com p e siga-a com w se você gostar dela para escrever suas alterações pendentes:

...
Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y

Agora crie um sistema de arquivos fat em sua partição do sistema EFI. -n nomeia a partição. Eu gosto de usar ESP :

mkfs.vfat -n ESP /dev/${USB_DISK}1
mkfs.fat 3.0.26 (2014-03-07)

Use mkfs.${desired_file_system} /dev/${USB_DISK}[num] para todas as outras partições que você possa exigir. Seria melhor se você usasse o --help do sistema de arquivos para descobrir como especificar um rótulo GPT para a partição também.

Pegue o refind.bin.*.zip e encontre aqui e descompacte-o no disco e depois vamos instalar o seu bootloader:

mkdir /tmp/refind
unzip ~/Downloads/refind-bin-0.7.9.zip -d $_  
...
$_/ref*/install.sh --usedefault /dev/${USB_DISK}
Not running as root; attempting to elevate privileges via sudo....
Installing rEFInd on Linux....
UnmountEsp = 1
Copied rEFInd binary files
Copying sample configuration file as refind.conf; edit this file to configure
...

Então agora você tem um gerenciador de inicialização. Depois de instalar o seu sistema Linux no disco, você precisará fazer o seguinte:

mkdir -p /mnt/bootdisk/
mount /dev/${USB_DISK}1 /mnt/bootdisk
mkdir -p /mnt/bootdisk/EFI/kali_linux/
cp ${kali_root}/boot/vmlinuz-* \
    /mnt/bootdisk/EFI/kali_linux/
cp ${kali_root}/boot/initrd-* \
    /mnt/bootdisk/EFI/kali_linux/

printf %s\n "LABEL=${GPT_LABEL} /esp vfat defaults 0 1" \
             "/esp/EFI/kali_linux /boot none bind,defaults 0 0" \
      | sudo tee -a /etc/fstab
mkdir /esp
mount -a

Isso quase faz isso. Você precisará configurar rEFInd um pouco. Substitua o rótulo GPT do sistema de arquivos raiz por ${GPT_LABEL} abaixo:

echo '"Kali" "root=LABEL=${GPT_LABEL} rootwait"'\
    >/mnt/bootdisk/EFI/kali_linux/refind_linux.conf

Isso deve fornecer um sistema inicializável. Por favor, olhe através do principal refind.conf in ../BOOT - é muito bem comentado e praticamente se documenta. Você também vai querer ir para rodsbooks.com e ler os documentos lá.

    
por 09.06.2014 / 18:50
0

No momento, instalei o grub-pc em um pen drive particionado do MBR. Instalou o Kali Linux em um disco rígido externo particionado pela GPT. cada vez que eu quero usar o Kali Linux, eu estou mudando as configurações do BIOS para Legacy e insiro o pen drive para inicializar. A corrente do GRUB carrega no meu disco rígido onde o Linux está instalado e está funcionando bem para mim no momento. Mas é um método alternativo e ainda espera que meu problema seja resolvido.

    
por 22.02.2014 / 07:38
0

Como você tem dificuldade para inicializar um dispositivo na interface EFI, pode usar o carregador de inicialização do Windows existente.

Existem 2 coisas para fazer | 1. Instale o Linux OS (Kali) como de costume, mas na etapa de instalação do GRUB, selecione sua partição raiz para instalar o GRUB em vez de todo o disco. ou seja, sda7 não sda (Assumindo que o sda7 está selecionado como raiz para instalação)
2. Faça o download do grub2win e copie para a raiz do sistema operacional Windows.
3. Faça uma entrada do Linux no seu gerenciador de inicialização do Windows, por Chainload, para a partição raiz do grub. Para abrir o
grub2win - > gerenciar - > adicionar novo - > os - > ubuntu - > chainload - > partição

Alterar
Ubuntu para o seu sistema operacional, se necessário.
Partição para corrigir o número da partição (lembre-se de sda7).
Salve as alterações, reinicie. Agora você pode selecionar o GRUB no gerenciador de inicialização do Windows e depois no Linux.

    
por 20.02.2014 / 11:30