A resposta acima descreve como fazer uma inicialização de host / caixa do Linux / GRUB2 para o modo de usuário único como a opção padrão permanente . Também é possível tornar isso uma opção permanente, mas não {padrão, selecionável pelo menu}. Um procedimento para isso (que não é estúpido, como editar /boot/grub/grub.cfg
) é adicionar um menuentry a /etc/grub.d/40_custom
(mas veja nota @ end na ordem do menu):
1. (segurança 1st!) Faça o backup do seu atual /etc/grub.d/40_custom
. (IIUC, isso é parte de uma configuração padrão / genérica do GRUB2.) Um backup do sistema de arquivos real é ótimo aqui, mas também é possível usar o antigo backup para .0 idioma:
FP_TO_BACKUP='/etc/grub.d/40_custom'
BACKUP_FP="${FP_TO_BACKUP}.0"
sudo ls -al "${FP_TO_BACKUP}*" # checking that you don't already have one
cp "${FP_TO_BACKUP}" "${BACKUP_FP}"
sudo chmod a-wx "${BACKUP_FP}" # non-executable files not used by GRUB2
2. Em seu editor de escolha, abra seus atuais /boot/grub/grub.cfg
e /etc/grub.d/40_custom
. Em Emacs com TRAMP , você pode fazer isso de uma sessão normal com as seguintes strings (após C-x C-f
ou M-x find-file
)
/sudo::/boot/grub/grub.cfg
/sudo::/etc/grub.d/40_custom
3. Encontre sua atual entrada de menu padrão no grub.cfg pesquisando a partir do topo do arquivo com regexp = ^menuentry
4. Copie toda a sub-rotina desse menuentry (incluindo o terminal '}'!) para o seu 40_custom
5. No seu /etc/grub.d/40_custom
,
5.1. Dê ao menuentry um título útil. Por exemplo, anexe (console)
ao que você já tem.
5.2. Pelo menos por enquanto, exclua a maior parte do código do menuentry original, mantendo apenas as linhas que começam com set root
, linux
, initrd
e os 2% intervenientesecho
linhas. (Você também pode adicionar um comentário explicativo).
5.3. A parte importante: em sua linha que começa com linux
, substitua o código no final (normalmente após ro
) com single
. Por exemplo,
- linux /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/LVM2_crypt-root ro nomodeset nouveau.modeset=0
+ linux /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/LVM2_crypt-root ro single
Isso fará com que seu novo menu de entrada seja algo muito mais simples que seu antecessor, como
menuentry 'LMDE 2 Cinnamon 64-bit (console)' {
set root='hd0,msdos3'
echo 'Loading Linux 3.16.0-4-amd64 ...'
linux /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/LVM2_crypt-root ro single
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.16.0-4-amd64
}
5.3. Salve seu 40_custom
e saia do seu editor.
6. Não se esqueça de sudo update-grub
7. Reinicialização: você deverá ver um item persistente / menuentry ao final da tela inicial do GRUB2.
Observe na ordem do menu: o novo item é exibido no final do menu de inicialização GRUB2 gerado (por update-grub
), porque este procedimento edita (o pré-existente) /etc/grub.d/40_custom
. Pode-se alterar a posição do item no menu alterando o prefixo numérico do arquivo. Um GRUB2 /etc/grub.d/
genérico conterá nomes de arquivos como
-
00_header
que você provavelmente não deseja editar
- ... seguido por temas e outras decorações de menu
-
10_linux
- ... seguido por menuentries relacionadas ao Linux
-
30_os-prober
- ... seguido por sistemas operacionais não Linux para inicializar (por exemplo, Windows)
-
40_custom
- ... seguido por entradas de menu personalizadas que não se enquadram nas caixas de funcionalidades anteriores
Mas pode-se subverter o esquema acima à vontade. Por exemplo,
- para que seu menu personalizado seja exibido acima de todos os outros, forneça um prefixo numérico < 10. Por exemplo, crie um novo arquivo
09_custom
- para que o menu personalizado seja exibido após as entradas do menu do Linux, mas antes das do Windows, forneça um valor de 10 < prefixo numérico < 30. Por exemplo, crie um novo arquivo
29_custom
Note que
- os valores exatos de prefixo numérico que você deve usar para atingir uma determinada posição dependerão dos valores já em uso em seu host / caixa, por isso lembre-se de
ls -al /etc/grub.d/
- se você criar um novo arquivo, deverá torná-lo executável antes de você
update-grub