Melhor maneira de reparar o grub neste caso

1

Inicialmente eu tinha dual boot, com o Windows 10 e o Ubuntu. Detalhes:
- arquivos EFI do Windows em / dev / sda1
- Ubuntu em / dev / sda8

Em busca do aprendizado, começo a seguir o Projeto Linux From Scratch para tentar criar meu próprio Linux. Eu usei a partição / dev / sda9 para isso. Depois de terminar, não consigo encontrar meu Windows e Ubuntu no menu do grub, apenas o Linux a partir do zero está disponível. Mas quando tento inicializar a partir do Live CD, tanto o Ubuntu quanto o Windows são exibidos junto com a opção Live CD. Com a opção Live CD, estes são os resultados de alguns comandos:

ls -l /dev/disk/by-label/

total 0
lrwxrwxrwx 1 root root 10 Mar 19 10:15 DELLSUPPORT -> ../../sda7
lrwxrwxrwx 1 root root 10 Mar 19 10:15 ESP -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 19 10:15 Image -> ../../sda6
lrwxrwxrwx 1 root root 10 Mar 19 10:15 New\x20Volume -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 19 10:15 OS -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 19 10:15 UBUNTU\x2017_1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Mar 19 10:15 WINRETOOLS -> ../../sda5


For command sudo fdisk -l

    Disk /dev/loop0: 1.3 GiB, 1425731584 bytes, 2784632 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: B128B55E-BDDA-4F19-8CBA-8FAD8E802736

Device          Start        End    Sectors   Size Type
/dev/sda1        2048    1026047    1024000   500M EFI System
/dev/sda2     1026048    1288191     262144   128M Microsoft reserved
/dev/sda3     1288192 1722216447 1720928256 820.6G Microsoft basic data
/dev/sda4  1722216448 2656086015  933869568 445.3G Microsoft basic data
/dev/sda5  3879495680 3880417279     921600   450M Windows recovery environment
/dev/sda6  3880417280 3904839679   24422400  11.7G Windows recovery environment
/dev/sda7  3904841728 3907028991    2187264     1G Windows recovery environment
/dev/sda8  2752610304 3879495679 1126885376 537.3G Linux filesystem
/dev/sda9  2656086016 2752610303   96524288    46G Linux filesystem

Partition table entries are not in disk order.




Disk /dev/sdb: 14.7 GiB, 15744892928 bytes, 30751744 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcf80b994

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1  *     2048 30751743 30749696 14.7G  c W95 FAT32 (LBA)


For command, sudo blkid:

/dev/sda1: LABEL="ESP" UUID="C496-69E5" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="4950763d-c24d-4680-927a-1e595c303648"
/dev/sda3: LABEL="OS" UUID="9254944E54943747" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="b16a3bfb-16fb-4275-a3fe-6e3dbcb689a1"
/dev/sda4: LABEL="New Volume" UUID="48103B2D103B20FC" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="25545acb-af8e-4230-a6d8-24337815dde9"
/dev/sda5: LABEL="WINRETOOLS" UUID="5018B15D18B14330" TYPE="ntfs" PARTUUID="c1f4defe-71d1-46fd-a501-cabfd279c132"
/dev/sda6: LABEL="Image" UUID="B23AB2C13AB281C1" TYPE="ntfs" PARTUUID="cfa18786-2f02-4b3a-ae6e-d44dc0364e50"
/dev/sda7: LABEL="DELLSUPPORT" UUID="6CE0AEC7E0AE973C" TYPE="ntfs" PARTUUID="82b58d3a-141a-4134-91cb-f41c3994121c"
/dev/sda8: UUID="972bea99-5b5f-410b-830b-b3c248d54062" TYPE="ext4" PARTUUID="3ee28255-1737-405c-8bf7-90695a0ce8b2"
/dev/sda9: UUID="180af068-75e7-4fb4-b459-271231cec69f" TYPE="ext4" PARTUUID="5dfc33a2-73a5-4ebb-994e-c1cc7d655d21"
/dev/sdb1: LABEL="UBUNTU 17_1" UUID="D29D-D873" TYPE="vfat" PARTUUID="cf80b994-01"
/dev/loop0: TYPE="squashfs"
/dev/sda2: PARTLABEL="Microsoft reserved partition" PARTUUID="6eec3d1c-1f7f-46a9-9d7a-fa7b75775a1f"

Depois de montar todo o sdaX e rodar o grub-install --boot-directory = /mnt/boot/dev/sda , o seguinte erro é dado:

Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.

Eu pesquisei muito e nada parece funcionar. Qualquer ajuda será ótima.

    
por Suraj Shah 19.03.2018 / 11:36

1 resposta

1

Seu sistema está usando UEFI e GPT e você está tentando instalar uma versão do GRUB destinada ao BIOS legado sem ter uma partição de inicialização do BIOS compatível com legado. Esta não é uma combinação válida.

Nenhum gerenciador de inicialização de estilo legado pode incluir sistemas operacionais que usam o esquema de inicialização UEFI, pois o UEFI está muito distante do contexto para o qual foi desenvolvido. Alguns carregadores de inicialização UEFI podem oferecer uma opção para inicializar um sistema operacional legado, se o método usado para invocar a compatibilidade legada nessa implementação UEFI específica fosse conhecido do gravador do carregador de inicialização UEFI. / p>

A melhor opção seria usar uma versão UEFI do GRUB (ele deve dizer algo como Installing for x86_64-efi platform em vez de i386-pc.)

Isso permitiria instalar o GRUB como um arquivo em / dev / sda1, em um diretório como \ EFI [nome de sua escolha] \ grubx64.efi, e não deve haver necessidade de truques no estilo BIOS como incorporação ou listas de bloqueio em todos. O comando grub-install da versão UEFI do GRUB deve lidar com isso automaticamente para você.

Quando você está inicializando a partir de um Live CD, você deve estar ciente de que seu sistema pode ter duas maneiras diferentes de inicializar a partir de um CD: o modo legado do BIOS e o modo UEFI. O truque é que as variáveis de inicialização do firmware UEFI, que são importantes para instalar um carregador de inicialização, estarão acessíveis somente se o sistema for inicializado no modo UEFI. Alguns instaladores do SO detectarão se as variáveis de inicialização do UEFI estão acessíveis ou não, e usarão isso para decidir se instalarão uma UEFI ou uma versão herdada do BIOS de um carregador de inicialização. Se você precisar instalar um sistema operacional inicializável com UEFI a partir de um CD / DVD inicializado, deverá encontrar alguma maneira de substituir essa decisão.

A criação de uma partição de inicialização do BIOS em um disco particionado pela GPT exige que você continue alterando as configurações de firmware: inicialização UEFI para Windows e inicialização em estilo legado para a instalação do Linux. Isso não é ideal, e nem todos os sistemas suportam a combinação BIOS + GPT.

Uma reinstalação completa do sistema para operação legada completa seria muito trabalhosa e contraproducente se o objetivo for aprender sobre os procedimentos para o novo hardware.

    
por 19.03.2018 / 13:01

Tags