Entendendo o boot-update

A distribuição Funtoo gerencia a inicialização de vários sistemas através do boot-update. Veja neste artigo como ele funciona.

[ Hits: 5.670 ]

Por: Xerxes em 29/07/2015


Artigo



Durante a instalação da distribuição Funtoo, o usuário instala o pacote boot-update, que instala o GRUB junto. Tudo segue normal e sem problemas. As dúvidas sobre o boot-update podem surgir quando o usuário faz dual boot.

Primeiramente, o arquivo /etc/boot.cfg é o arquivo de configuração do boot-update. É esse único arquivo que precisa ser editado para gerenciar a inicialização de todos os sistemas instalados no HD. Isso é muito prático, pois tudo o que precisa ser alterado fica nesse arquivo de forma organizada. Não há dor de cabeça.

Aqui está um exemplo do meu boot.cfg atualmente:

boot {
        generate grub
        default "Funtoo Linux"
        timeout 3
}

"Funtoo Linux" {
        kernel kernel[-v]
        initrd initramfs[-v]
        params += real_root=auto rootfstype=auto
}

"Linux Arch Linux" {
        scan /mnt/arch/boot
        kernel vmlinuz-linux
        initrd initramfs-linux.img
        params root=/dev/sda1
}

A primeira entrada, no caso "boot", é criada automaticamente pelo boot-update e diz qual é o sistema padrão (default) do GRUB. Perceba que ele aponta para "Funtoo Linux", descrito logo abaixo.

É possível termos várias distribuições Linux, listadas abaixo, mas é necessário que seja especificado qual será a entrada padrão.

Dentro de cada entrada, como essa do boot, há uma série de parâmetros configuráveis. Quando esses parâmetros não são especificados, são usados os valores padrões.

Por exemplo, o valor do timeout está especificado para 3 no meu boot.cfg. Ou seja, três segundos de espera na tela do GRUB. Se eu remover o parâmetro "timeout" daquela entrada, o tempo de espera será, automaticamente, o valor padrão (cinco segundos).

Para ver todos os parâmetros e seus valores padrões use o comando:

# boot-update --showdefaults

Os principais parâmetros são: type, kernel, initrd e params.

O parâmetro "type", quando não especificado, usa como "default" o valor "linux". Por isso não precisa usá-lo se seu HD só tem Linux. Mas é necessário se for fazer dual boot com Windows.

O parâmetro "kernel" especifica o nome da imagem compactada do kernel, após a compilação. Normalmente o nome é bzImage (se for compactado com bzip2) e costuma ser copiada como vmlinuz.

Mas também pode ter o nome "kernel + versão". No meu caso, essa imagem está nomeada como " kernel-debian-sources-x86_64-3.19.3-1~exp1". Sim, estou usando o kernel do Debian por comodidade. Não preciso colocar o nome inteiro, basta colocar "kernel[-v]" para pegar a versão.

O uso do [-v] vai "pegar" ou "casar com" qualquer kernel que tenha o nome "kernel" seguido de algo. Isso é possível graças ao uso dos caracteres curinga. Para mais informações, veja:
Não é obrigatório usar caracteres curinga. Sempre pode-se usar o nome completo da imagem compactada do kernel.

Também é possível usar mais de um nome, por exemplo, para termos várias opções de kerneis:

kernel vmlinuz-linux vmlinuz-linux-2

Isso criará DUAS entradas no GRUB. Uma para "vmlinuz-linux" e outra para "vmlinuz-linux-2". Dois kerneis diferentes na mesma distribuição.

O parâmetro initrd (initial ramdisk) também precisa ser especificado para que o sistema escolhido no GRUB seja iniciado. A forma de fazer isso é quase idêntica ao do parâmetro "kernel". Há duas diferenças.
  • Primeira diferença é que só há a opção de usar "[-v]" se for usar caracteres curinga.
  • Segunda diferença é que pode-se usar "+=" para adicionar mais de uma entrada.

Por exemplo, tanto faz usar:

initrd initramfs-1.igz initramfs-2.igz

Como também:

initrd initramfs-1.igz
initrd += initramfs-2.igz

O parâmetro "params" é usado para adicionar uma série de parâmetros no comando da inicialização do kernel. Exemplo:

params += quiet

Para ver todos os parâmetros, acesse:

Dual boot com GNU/Linux e Windows

Para fazer dual boot com outra distribuição Linux é necessário montar a partição do outro Linux primeiro. Se você especificar isso no fstab do Funtoo fica mais fácil já que vai montar durante o boot. Exemplo no meu fstab:

/dev/sda1   /mnt/arch   ext4   noatime   0 1

Depois disso basta editar o "boot.conf" e acrescentar:

"Outra distribuição Linux" {
        scan <diretório de boot>
        kernel <nome da imagem do kernel>
        initrd <nome da imagem initrd ou initramfs>
        params root=<partição do sistema>
}

No meu caso, com Arch Linux em /dev/sda1, montado em /mnt/arch, ficou:

"Linux Arch Linux" {
        scan /mnt/arch/boot
        kernel vmlinuz-linux
        initrd initramfs-linux.img
        params root=/dev/sda1
}

Para dual boot com Windows, use, por exemplo:

"Windows 7" {
        type win7
        params root=/dev/sda6
}

Troque o "win7" por "win8" ou "winxp" se for o caso.

Após gravar o GRUB na MBR com "grub-install", editar o arquivo "boot.conf", pode executar o comando "boot-update" para salvar as modificações no GRUB.

O resultado será algo assim:

boot-update 1.7.2 /
Copyright 2009-2015 Funtoo Technologies

[use option "-l" for license info, "-h" for help]

* Generating config for grub...

DEFAULT > Funtoo Linux - kernel-debian-sources-x86_64-3.19.3-1~exp1
           Linux Arch Linux - vmlinuz-linux
* NOTE : Detected MBR boot. Configuring for Legacy MBR booting.
* Completed successfully.


Reinicie o sistema e seja feliz.

Para mais informações:

man boot.conf
man boot-update

   

Páginas do artigo
   1. Artigo
Outros artigos deste autor

Mamãe, quero Slack! (parte 3 - final)

Incentivo ao Funtoo

Conhecendo o Slpkg (gerenciador de pacotes para Slackware)

Como transformar Salix OS em Slackware

elementary OS Luna: linda, mas serve para sua mãe?

Leitura recomendada

Bind9 em chroot no Debian Lenny

Bluetooth descomplicado em notebook Toshiba / HP

Instalando e configurando ntfs-3g no CentOS 5.2 Linux

Rodando um aplicativo em modo Kiosk no Ubuntu Linux 20.04

Instalação do CRUX 3.0 em Virtualbox

  
Comentários
[1] Comentário enviado por ruantux em 13/08/2015 - 10:21h

Já conhecia sobre o boot-update mais como sempre você deixou ainda mais claro. Parabéns pelo artigo !!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts