Isso provavelmente já é funcional, mas é sempre bom saber configurar e instalar o carregador de inicialização em caso dele desaparecer da MBR (Master Boot Record). Isso pode ocorrer depois da instalação de outro sistema operacional, como o Windows. A seguinte informação pode também ajudar você a modificar a configuração do carregador de inicialização caso necessário.
8.8.1. Identificando os Discos
A configuração do carregador de inicialização tem que identificar os diferentes discos rígidos e suas partições. O Linux usa arquivos especiais “block” armazenados no diretório /dev/
, para esse propósito. Desde o Debian Squeeze, o esquema de nomeação para discos rígidos foi unificado pelo kernel Linux, e todos os discos rígidos (IDE/PATA, SATA, SCSI, USB, IEEE 1394) são agora representados por /dev/sd*
.
Cada partição é representada por seu número no disco no qual reside: por exemplo, /dev/sda1
é a primeira partição do primeiro disco, e /dev/sdb3
é a terceira partição do segundo disco.
A arquitetura PC (ou “i386”, incluindo seu primo mais moço "amd64") a muito tem sido limitada a usar o formato de tabela de partição "MS-DOS", que apenas permite quatro partições “primarias” por disco. Para ir além desta limitação, sob esse esquema, uma delas tem que ser criada como uma partição “estendida”, e assim conter partições “secundárias” adicionais. Essas partições secundárias são numeradas a partir de 5. Assim a primeira partição secundária poderia ser /dev/sda5
, seguida por /dev/sda6
, etc.
Outra restrição de um formato de tabela de partição MS-DOS é que ela apenas permite discos de até 2 TiB de tamanho, o que está se tornando um problema real com os discos recentes.
Um novo formato de tabela de partição chamado GPT (GUID Partition Table) relaxa essas restrições quanto ao número de partições (ele permite até 128 partições quando usando configurações padrão) e no tamanho dos discos (até 8 ZiB, o que é mais de 8 bilhões de terabytes). Se você tem a intenção de criar muitas partições físicas no mesmo disco, você deve portanto, garantir que está sendo criada a tabela de partição no formato GPT durante o particionamento de seu disco.
Nem sempre é fácil lembrar qual disco está conectado a qual controladora SATA, ou na terceira posição da cadeia SCSI, especialmente a partir da nomeação de discos rígidos "hotplugged" (que inclui, entre outros, a maioria dos discos SATA e discos externos) que podem mudar de uma inicialização para outra. Felizmente, o udev
cria, em adição ao /dev/sd*
, ligações simbólicas com um nome fixo, o qual você poderia, então, usar se você deseja identificar um disco rígido de maneira não ambígua. Essas ligações simbólicas são armazenadas em /dev/disk/by-id
. Em uma máquina com dois discos físicos, por exemplo, pode-se encontrar o seguinte:
mirexpress:/dev/disk/by-id#
ls -l
total 0
lrwxrwxrwx 1 root root 9 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root 9 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root 9 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root 9 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root 9 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part2 -> ../../sdc2
[...]
lrwxrwxrwx 1 root root 9 23 jul. 08:58 wwn-0x5000c50015c4842f -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 wwn-0x5000c50015c4842f-part1 -> ../../sda1
[...]
mirexpress:/dev/disk/by-id#
Perceba que alguns discos são listam várias vezes (porque se comportam tanto como discos ATA ou SCSI simultaneamente), mas a informação relevante se encontra principalmente no modelo e os números de série dos discos, desde onde se pode encontrar o arquivo periférico. Enquanto as ligações em /dev/disk/by-id/
são criadas utilizando o número de série do dispositivo e o caminho físico, há mais ligações de conveniência em, por exemplo /dev/disk/by-label/
(baseado em caminho físico mais curto), /dev/disk/by-uuid/
(baseado em identificadores únicos, que podem mudar ao reformatar um dispositivo usando mkfs.*
ou mkswap
), /dev/disk/by-path/
(baseado na caminho físico mais curto), e /dev/disk/by-partlabel/
e /dev/disk/by-partuuid/
(só partições com etiquetas GPT e seus identificadores únicos). Se usa estas ligações, por exemplo, em /etc/fstab
, sempre prefere identificadores únicos sobre etiquetas. Também pode obter e mudar esta informação para a cada partição ou dispositivo utilizando os comandos lsblk
e blkid
.
Os arquivos de configuração de exemplo dados nas seções seguintes são baseados na mesma configuração: um único disco SATA, onde a primeira partição é uma antiga instalação Windows e a segunda contém o Debian GNU/Linux.
8.8.2. Configuração do GRUB 2
GRUB (GRand Unified Bootloader) é mais recente. Não é necessário invocá-lo após cada atualização do núcleo; o GRUB sabe como ler o sistema de arquivos e achar a posição do núcleo no disco por conta própria. Para instalá-lo na MBR do primeiro disco, simplesmente digite grub-install /dev/sda
. Isto vai sobreescrever o MBR, portanto seja cuidadoso para não sobrescrever na localização errada. Embora seja também possível instalar o GRUB em um registro de boot de partição, fique atento que isto normalmente é um erro e fazer grub-install /dev/sda1
não faz a mesma coisa que grub-install /dev/sda
.
A configuração do GRUB 2 é armazenada no /boot/grub/grub.cfg
, mas esse arquivo (no Debian) é gerado a partir de outros. Tenha o cuidado de não modificá-lo a mão, já que modificações locais serão perdidas na próxima vez que o update-grub
for executado (o que pode ocorrer durante a atualização de vários pacotes). A modificações mais comuns no arquivo /boot/grub/grub.cfg
(adicionar parâmetros de linha de comando para o kernel ou alterar a duração que o menu é exibido, por exemplo) são feitas através de variáveis em /etc/default/grub
. Para adicionar entradas no menu, você pode tanto criar um arquivo /boot/grub/custom.cfg
quanto modificar o arquivo /etc/grub.d/40_custom
. Para configurações mais complexas, você pode modificar outros arquivos em /etc/grub.d
, ou adicionar outros arquivos; esses scripts devem retornar trechos de configurações, possivelmente fazendo uso de programas externos. Esses scripts são os que irão atualizar a lista de kernels a serem inicializados: 10_linux
leva em consideração os kernels Linux instalados; 20_linux_xen
leva em consideração sistemas virtuais Xen, e 30_os-prober
lista outros sistemas operacionais (Windows, OS X, Hurd).
8.8.3. Utilizando GRUB com EFI e Secure Boot
É bastante diferente usar
GRUB para iniciar um sistema BIOS tradicional (herdado ou UEFI-CSM) ou um sistema UEFI . Felizmente o usuário não precisa conhecer as diferenças porque o Debian proporciona pacotes diferentes para cada propósito e o instalador se preocupa automaticamente com qual(is) eleger. O pacote
grub-pc é escolhido para sistemas herdados, onde o
GRUB se instala no MBR, enquanto os sistemas UEFI requerem
grub-efi-arch, onde o
GRUB se instala na partição do sistema EFI (ESP). Este último requer uma tabela de partição GTP bem como uma partição EFI.
Para mudar um sistema existente (que admite UEFI) do modo de início herdado ao modo UEFI não só é necessário mudar os pacotes GRUB do sistema, mas também ajustar a tabela de partições e criar uma partição EFI (provavelmente incluindo a mudança de tamanho das partições existentes para criar o espaço livre necessário). Portanto, é um processo bastante elaborado e não podemos o incluir aqui. Felizmente, existem alguns manuais de blogueiros que descrevem os procedimentos necessários.
Se você está usando um sistema com "Secure Boot" habilitado e tem instalado
shim-signed (ver a barra lateral
CULTURA Secure Boot e o carregador de boot shim), instale também o
grub-efi-arquitetura-signed. Este pacote não vem automaticamente, só se você ativar a instalação do pacote recomendado.