Peguei um notebook antigo e fiz a instalação do Debian em modo UEFI uns dias atrás. Mas hoje vendo alguns “firmware bug” resolvi atualizar a firmware dele. Foi de uma de 2013 para a última disponível, de 2015. Eis que veio a surpresa ao reiniciar: A nova firmware não suporta UEFI!
Pois bem, vamos lá… Sei que possível transformar uma instalação em outra então aproveitei o próprio pendrive de inicialização do Debian e iniciei no modo de resgate (Rescue Mode). Segui nesse modo e montei a raiz do sistema instalado. O próprio instalador já me auxiliou e fez um chroot no sistema do disco. A ideia era reinstalar o grub, mas em modo legacy. Para tal, instalei o pacote grub-pc que automaticamente desinstalou o grub-efi. Ao rodar grub-install /dev/sda:
# grub-install /dev/sda
Instalando para a plataforma i386-pc.
grub-install: aviso: este rótulo de partição GPT não contém uma BIOS Boot Partition; a integração não será possível.
grub-install: aviso: Integração impossível. O GRUB só pode ser instalado nesta configuração usando listas de blocos. Contudo, as listas de blocos são instáveis e a sua utilização é desaconselhada..
grub-install: erro: não se continuará com as listas de blocos.
Só que eu sei que dá sim para colocar, basicamente eu precisava de uma partição bios_grub de 1MB. Só que o disco já estava totalmente preenchido pelas partições:
root@gp60:~# fdisk -l /dev/sda
Disco /dev/sda: 447,13 GiB, 480103981056 bytes, 937703088 setores
Modelo de disco: CT480BX500SSD1
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 512 bytes
Tamanho E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de rótulo do disco: gpt
Identificador do disco: D7911C59-EBA2-4C81-A7E7-4B333988F1F5
Dispositivo Início Fim Setores Tamanho Tipo
/dev/sda1 2048 585727 583680 285M Sistema EFI
/dev/sda2 585728 234960895 234375168 111,8G Linux sistema de arquivos
/dev/sda3 234960896 937701375 702740480 335,1G Linux sistema de arquivos
Ia dar um trabalho reduzir alguma partição, então pensei em usar exatamente o espaço inicial (aquele reserva que tem antes do bloco 2048 que alinha as partições) pro bios_grub. Tentei via fdisk mas ele não deixava (ao menos sem estar no modo expert). Procurei na net e tinha uma dica de fazer usando o parted, dizendo que ele “reclama mas faz”.
Reiniciei o computador, novamente entrei no modo de resgate, mas não montei nenhuma partição do disco, para poder fazer as alterações. Abri um shell do instalador e usei o parted:
# parted /dev/sda
GNU Parted 3.6
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mkpart grub 34s 2047s
Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
Ignore/Cancel? Ignore
(parted) print free
Model: ATA CT480BX500SSD1 (scsi)
Disk /dev/sda: 480GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
4 17,4kB 1049kB 1031kB grub
1 1049kB 300MB 299MB fat32 boot, legacy_boot, esp
2 300MB 120GB 120GB ext4
3 120GB 480GB 360GB
480GB 480GB 860kB Free Space
(parted) set 4 bios_grub on
(parted) print
Model: ATA CT480BX500SSD1 (scsi)
Disk /dev/sda: 480GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
4 17,4kB 1049kB 1031kB grub bios_grub
1 1049kB 300MB 299MB fat32 boot, legacy_boot, esp
2 300MB 120GB 120GB ext4
3 120GB 480GB 360GB
(parted) quit
Isso criou a partição 4 (fora de ordem) como partição do setor 34 até 2047. Saí do shell e usei o modo de resgate para novamente detectar o particionamento, montar a partição raiz e abrir um shell no sistema instalado. Aí foi só dar um grub-install /dev/sda e foi instalado com sucesso! Reiniciei o computador e o sistema iniciou no modo Legacy sem problemas!!!
Só para constar, ficou assim o particionamento do disco agora:
root@gp60:~# fdisk -l /dev/sda
Disco /dev/sda: 447,13 GiB, 480103981056 bytes, 937703088 setores
Modelo de disco: CT480BX500SSD1
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 512 bytes
Tamanho E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de rótulo do disco: gpt
Identificador do disco: D7911C59-EBA2-4C81-A7E7-4B333988F1F5
Dispositivo Início Fim Setores Tamanho Tipo
/dev/sda1 2048 585727 583680 285M Sistema EFI
/dev/sda2 585728 234960895 234375168 111,8G Linux sistema de arquivos
/dev/sda3 234960896 937701375 702740480 335,1G Linux sistema de arquivos
/dev/sda4 34 2047 2014 1007K BIOS inicialização
Partições lógicas fora da ordem do disco.