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: 4.351 ]

Por: Xerxes em 29/07/2015 | Blog: https://static.vivaolinux.com.br/imagens/dicas/comunidade/300.jpg


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

MUGPIS 14.1

Como fazer hackergotchi (ou avatar de cabeça flutuante)

Gravando área de trabalho em MP4 e depois transformando o vídeo em GIF

Brutal DOOM no Linux (com Freedoom)

Instalação do Funtoo a partir do Debian já instalado

Leitura recomendada

MySQL + Apache + PHP + OCI8 + PHPMyAdmin no Ubuntu Server

PuTTY - Release 0.66 - Parte IV

Arch + Repositórios do Manjaro - Monarch

Bodhi Linux com o belíssimo Enlightnment

Instalando e configurando o Apache, PHP e MySQL no Slackware 10.1

  
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