Na minha pesquisa, existem duas maneiras de fazer isso
Método 1
Copie o script 10_linux
em /etc/grub.d/
e insira códigos de geração para a entrada do menu de inicialização de texto
Vantagens:
- Gera a entrada do menu de inicialização de texto para todas as versões do kernel instaladas
- Cuida de menus novos ou redundantes quando você instala / purga kernels
Desvantagens:
- Requer compreensão profunda de scripts de shell
- O arquivo de origem do script pode variar de uma versão do grub para outra
- As edições precisam ser refeitas se as atualizações do pacote do grub substituírem o script modificado
Método 2
Use um script designado para adicionar menus personalizados do grub em /etc/grub.d
Vantagens:
- Mais fácil e menos complicado
- Nenhuma chance de ser sobrescrita, portanto, faça isso apenas uma vez
Desvantagens:
- Apenas se você quiser que cada uma das versões do kernel instaladas tenha texto
menuentry de inicialização:
- Muitos trabalhos e mais difíceis de manter
- Deixando para trás menus de menu redundantes quando você limpa antigas versões do kernel
Nesta pequena etapa, vou com method #2
, pois é o mais fácil de explicar aqui e criaremos menus de inicialização de texto apenas para a imagem mais recente do kernel que você usa.
- A primeira coisa que você precisa é o menuentry já gerado para
seu kernel mais recente. Nós vamos copiar e usar como base para nossa
cardápio personalizado, com uma pequena alteração. Para isso, você precisa
procure no seu arquivo
/boot/grub/grub.cfg
. Localize o primeiro menuentry stanza que aponta para o kernel mais recente no seu Ubuntu. Se vocês são inicialização dupla com outras distro linux, preste atenção extra para que você não iria misturar-se com os seus menus -
Depois de encontrá-lo, copie toda a sub-rotina menuentry e cole-o no arquivo /etc/grub.d/40_custom. Pode parecer um abaixo. Vamos use isso como exemplo
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-a4e6d610-122e-42e2-8497-39eae02816e8' { recordfail load_video gfxmode $linux_gfx_mode insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 a4e6d610-122e-42e2-8497-39eae02816e8 else search --no-floppy --fs-uuid --set=root a4e6d610-122e-42e2-8497-39eae02816e8 fi linux /boot/vmlinuz-3.8.0-31-generic root=UUID=a4e6d610-122e-42e2-8497-39eae02816e8 ro quiet splash $vt_handoff initrd /boot/initrd.img-3.8.0-31-generic
}
-
Agora, aqui estão algumas coisas que você precisa editar nesta estrofe antes que você possa salve o arquivo:
- O título do menuentry. Mudar 'Ubuntu' na linha de menuentry para 'Ubuntu (modo de texto)'
- Caminho para o arquivo vmlinuz na linha
linux
. Substitua/boot/vmlinuz-3.8.0-31-generic
por/vmlinuz
parâmetro de inicialização grub no final delinux
line. Substituaquiet splash
portext
- Caminho para a imagem initrd na linha
initrd
. Substitua/boot/initrd.img-3.8.0-31-generic
por/initrd.img
-
O motivo pelo qual fazemos as substituições em
vmlinuz
einitrd
lines é aproveitar as vantagens dos links simbólicos colocados em / which aponta para sua versão mais recente em/boot
dir para que nosso menuentry personalizado possa sempre aponte para o kernel mais recente e não precisará ser alterado se um novo kernel for introduzido. -
É isso. Execute
sudo update-grub
para gerar o menu personalizado e pronto