- Adicione o desativar submenu
- Adicionado modificaçào de temas
Falta fazer
- Adicionar link memtest86+
- revisão
Pesquisados para o tuto:
https://www.gnu.org/software/grub/manual/grub.html#Security
Não é recomendado modificar as configurações diretamente no grub.cfg.
O grub2 já dispoẽm de alguns arquivos(scripts) para determinadas configurações, encontrados em /etc/default/ e /etc/grub.d.
1- Configuração do arquivo
/etc/default/grub
Neste arquivo estão as configurações padrões do grub.
Mais informação: www.gnu.org/software/grub/manual/html_node/Simple-configuration.html
ou comando : info -f grub -n ‘Simple configuration’
GRUB_DEFAULT
Define a entrada de menu padrão. Podem ser numéricas ou “saved”
- GRUB_DEFAULT=0 (O primeiro “menuentry” no grub.cfg é 0, o segundo é 1, etc…)
- GRUB_DEFAULT=saved (Inicia pelo último acessado )
GRUB_SAVEDEFAULT=“true”
Se verdadeiro essa configuração irá definir automaticamente o último sistema operacional selecionado. Nenhum comando precisa ser executado para definir o sistema operacional padrão. Para funcionar, a entrada GRUB_DEFAULT deve ser definido como saved.
GRUB_TIMEOUT = 10
Segundos antes da entrada padrão iniciar automaticamente.
GRUB_DISTRIBUTOR=“Arch”
Determina o nome descritivo da distribuição no menuentry. (Arch,Ubuntu, Xubuntu, Debian, etc)
GRUB_CMDLINE_LINUX_DEFAULT = “splash quiet”
A menos que GRUB_DISABLE_RECOVERY=true este opção adiciona entradas para o final da linha de comando ‘kernel’ no modo normal e modo de recuperação (recovery mode).
GRUB_CMDLINE_LINUX=“”
Se a opção adiciona as entradas para o final da linha de comando ‘kernel’ no modo normal.
GRUB_PRELOAD_MODULES=“part_gpt part_msdos”
Serve para definir os módulos que serão pré-carregados.
part_msdos=
GRUB_HIDDEN_TIMEOUT=5
Serve para definir a espera em segundos de uma tecla ser pressionada (tecla SHIFT) para mostrar o menu. Se nenhuma tecla for pressionada durante esse tempo, exibe o tempo definido no GRUB_TIMEOUT e inicia na entrada padrão.
GRUB_HIDDEN_TIMEOUT_QUIET=true
Em conjunto com GRUB_HIDDEN_TIMEOUT serve para ocultar o tempo do GRUB_TIMEOUT.
GRUB_TERMINAL_INPUT=console
GRUB_TERMINAL_OUTPUT=console ( Os usuários que utilizam o driver NVIDIA proprietário podem querer desativar framebuffer GRUB2, uma vez que pode causar problemas com o driver binário. Descomente esta opção )
Servem para setar os dispositivos de entrada e saida.
Ex. console (consoles PC BIOS e EFI), serial (serial terminal), gfxterm (modo gráfico de saída), ‘ofconsole’ (console Open Firmware), or ‘vga_text’ (saida de texto VGA , muito útil com Coreboot).
GRUB_DISABLE_SUBMENU=y
Se for y desativa o submenu, aparecendo a lista completa logo quando acessa o Grub
GRUB_GFXMODE=auto
A resolução usada no terminal gráfico (gfxterm).Note que você só pode usar modos que sua placa de vídeo suporta via VESA BIOS (VBE), talvez resoluções nativas do LCD não estão disponíveis.
Ex.1024x768
GRUB_GFXPAYLOAD_LINUX=keep
Permitir que o kernel use a mesma resolução usada pelo grub (GRUB_GFXMODE)
GRUB_DISABLE_LINUX_UUID=true
Aplicar no comando Kernel o formato “root=/dev/xxx” em vez de “root=/dev disco//by-uuid/xxx”
GRUB_DISABLE_RECOVERY=true
Desativar a geração de entradas do modo de recuperação (recovery mode)
GRUB_COLOR_NORMAL=“light-blue/black”
GRUB_COLOR_HIGHLIGHT=“light-cyan/blue”
Conjunto de cores do menu. Usado com ou sem papel de parede.
Entradas especificada como primeiro plano/segundo plano.
GRUB_THEME=“/path/to/gfxtheme”
Definir imagem de fundo ou um tema gfx (gfxtheme)
Ex. /boot/grub/themes/Archxion/theme.txt
GRUB_INIT_TUNE=“480 440 1”
Mais informação, use o comando: info grub --index-search play
Para obter um sinal sonoro no início do GRUB.
É particularmente útil para usuários que não conseguem ver a tela.
/etc/grub.d
Nesta pasta estão os arquivos de configuração.
00_header- como próprio nome já diz é o cabeçalho da configuração.(captura as configurações do /etc/default/grub[)
20_linux_xen- 20_linux_xen, contendo todos Kernels do Xen
30_os-prober-Procura outros sistemas operacionais e insere no menu. Necessário o pacote os-prober.
41_custom-Método alternativo de configuração personalizada. (/boot/grub2/custom.cfg )
10_linux-Arquivo padrão: Adiciona os kernel localmente e gera o menu .
20_memtest86 +- Se o pacote memtest86+ está instalado no sistema, o menu será automanticamente gerado.
40_custom- Usado para criar entradas personalizadas.
[color=red]Nota:[/color] Caso o 40_custom não funcione, você pode usar 41_custom. Crie e edite o arquivo /boot/grub2/custom.cfg. Se o arquivo existir custom.cfg, então será aplicado. Uma vantagem de se ter o custom.cfg, é que não há necessidade de executar o grub2-mkconfig.
2- Adicionar e remover entradas de configurações no grub.cfg
Para adicionar: sudo chmod +x
Para remover: sudo chmod -x
Ex.
Removendo as entradas dos arquivos 10_linux 20_memtest86+ 30_os-prober
sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober
Nota:
Toda modificação, exceto do custom.cfg (41_custom), é necessário executar o comando de atualização do grub.
grub2-mkconfig -o /boot/grub/grub.cfg
3- Segurança
Se quiser proteger o GRUB2, não permitindo qualquer um mudar os parâmetros de inicialização ou usar a linha de comando, você pode adicionar uma combinação de usuário/senha nos arquivos.
Para isso execute o comando: grub-mkpasswd-pbkdf2
Digite uma senha e confirme-a.
A saída será paraecida com esta
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.C8ABD3E93C4DFC83138B0C7A3D719BC650E6234310DA069E6FDB0DD4156313DA3D0D9BFFC2846C21D5A2DDA515114CF6378F8A064C94198D0618E70D23717E82.509BFA8A4217EAD0B33C87432524C0B6B64B34FBAD22D3E6E6874D9B101996C5F98AB1746FE7C7199147ECF4ABD8661C222EEEDB7D14A843261FFF2C07B12[/code]
Adicione no /etc/grub.d/00_header[code]cat << EOF
set superusers="username"
password_pbkdf2 username <password>
EOF
Onde é a string gerada pelo grub-mkpasswd_pbkdf2.
Ex.
set superusers=“root”
password_pbkdf2 root grub.pbkdf2.sha512.10000.*************
Sua linha de comando GRUB2, parâmetros de inicialização e todas as entradas de inicialização estão protegidos.
4- Módulos
Os módulos estão em /boot/grub/i386-pc
Para inserir módulos utilize insmod
Ex.
menuentry 'Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-ff4ewwer56-49d6-4dfd-ba65-3aqqqwefa2e' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos6'
echo 'Loading Linux core repo kernel ...'
linux /vmlinuz-linux root=UUID=ff4ewwer56-49d6-4dfd-ba65-3aqqqwefa2e ro quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
Para temas
Browse GRUB Themes | https://www.gnome-look.org/browse/cat/109/ord/rating/
Browse GRUB Themes | GRUB Themes - Gnome-look.org | A community for free and open source software and libre content
exemplo:
Grub-theme-vimix
A blur theme for grub2
download: Download/Install
Descompactar em /boot/grub/themes/
exemplo
/boot/grub/themes/Vimix/
/ $ cd /boot/grub/themes
themes $ ls -l
total 8
drwxr-xr-x 2 root root 4096 nov 26 18:18 starfield
drwxr-xr-x 3 root root 4096 nov 28 23:18 Vimix
themes $
depois edite o arquivo grub
sudo nano /etc/default/grub
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
GRUB_THEME="/boot/grub/themes/Vimix/theme.txt"
salve e depois atualize o grub
arch
~ $ sudo grub-mkconfig -o /boot/grub/grub.cfg
debian e derivados
~ $ sudo update-grub
Para Fedora
Informações adicionadas por @anon58028541 do Fedora : [TUTO] GRUB 2 - Configuração - #7 by anon58028541