Adiciona o modo de inicialização console / texto ao menu grub

6

Eu quero ter a opção de modo de inicialização de texto na tela do menu grub. Como faço para criar esta entrada de menu?

    
por Flint 02.07.2012 / 10:31

2 respostas

6

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.

  1. 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
  2. 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
    

    }

  3. 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 de linux line. Substitua quiet splash por text
    • Caminho para a imagem initrd na linha initrd . Substitua /boot/initrd.img-3.8.0-31-generic por /initrd.img
  4. O motivo pelo qual fazemos as substituições em vmlinuz e initrd 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.

  5. É isso. Execute sudo update-grub para gerar o menu personalizado e pronto

por Flint 08.07.2012 / 12:11
1

Veja:

O Guia do Grub 2

Se eu tiver algum tempo, tentarei documentar como ...

    
por david6 02.07.2012 / 10:51