Como altero a ordem de inicialização do GRUB?

336

Eu tenho o Windows 7 e o Ubuntu instalados em uma máquina compartilhada. Como muitos dos não desenvolvedores usam o Windows, gostaria de alterar a ordem de inicialização para facilitar para eles.

Atualmente, a ordem de inicialização é semelhante à seguinte:

  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (inicialização segura)
  • Teste de memória
  • Teste de memória
  • Windows 7 ativado /dev/sda6

Como altero a ordem padrão para que o Windows 7 esteja no topo da lista?

  • Windows 7 ativado /dev/sda6
  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (inicialização segura)
  • Teste de memória
  • Teste de memória
chrisjlee
fonte
5
Perguntas e respostas semelhantes: askubuntu.com/questions/52963/…
fossfreedom
Você fez um 'sudo update-grub' depois de alterar o arquivo grub?
Tinellus
sim, acho que esqueci de fazer isso, obrigado! Vou tentar atualizar com os resultados.
27612 jeffery_the_wind
Kubuntu 14.04 sudo apt-get install kde-config-grub2, em seguida, na configuração do sistema de desligamento de inicialização Goto
n611x007

Respostas:

295

Você pode usar um aplicativo GUI fácil de usar chamado Grub Customizer para facilitar sua vida. Como o nome sugere, você pode fazer muito mais do que apenas reordenar as entradas do menu GRUB com ele.

Você pode instalá-lo:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

(Consulte a pergunta Pergunte ao Ubuntu. O PPA é seguro para adicionar ao meu sistema e quais são algumas das "bandeiras vermelhas" a serem observadas? )

Há um artigo de instruções sobre o tópico, Como configurar o menu de inicialização do Linux GRUB 2 da maneira mais fácil . Dê uma olhada se estiver interessado. Além disso, há um tópico resolvido nos Fóruns do Ubuntu, Alterar ordem de inicialização no GRUB 2, que menciona essa ferramenta.

Aqui estão algumas capturas de tela:

screen_1

screen_2

screen_3


Algumas soluções de problemas:

As configurações do Grub Customizer podem funcionar apenas na instalação mais recente do Linux / Ubuntu, aquela que instalou o Grub.

Por exemplo, se alguém tiver dois sistemas operacionais instalados (Windows e Ubuntu) e depois instalar um terceiro sistema operacional (Manjaro, etc) e tentar seguir a resposta acima, as alterações do Grub Customizer não funcionarão quando feitas no segundo sistema operacional ( Ubuntu, no exemplo). O programa precisa ser instalado no terceiro sistema operacional, pois parece que o Grub Customizer pode editar apenas os arquivos Grub criados pela instalação do sistema no qual ele está instalado.

Os arquivos que determinam o menu de inicialização do Grub vêm na maioria dos casos com o sistema mais recente instalado em uma máquina, portanto, o Grub Customizer deve ser instalado e usado nesse sistema Linux.

Nitin Venkatesh
fonte
4
Muito bem-vindo :) As capturas de tela vêm do post do blog acima: P
Nitin Venkatesh
2
Isso não funciona com o Ubuntu mais recente. Podemos obter uma postagem atualizada aqui?
AT
7
Eu acho que sua resposta é boa e útil, então, por favor, não me interpretem mal. Embora as ferramentas da GUI sejam organizadas e fáceis, elas ocultam os fatos. A resposta de Marve abaixo discute os arquivos em uso e como atualizá-los manualmente, fornecendo informações sobre como o Grub funciona. Quando a GUI falha e, para alguns, ao menos dá uma olhada nos fundamentos - eles não são tão difíceis, afinal, e a manipulação manual provavelmente será mais fácil a longo prazo.
precisa saber é o seguinte
1
Eu também tive problemas ao usar esta ferramenta. Parece que ele atualiza a correção / etc / default / grub, mas depois diz core dump e abortado.
Mauricio Gracia Gutierrez
1
Isso precisa de uma atualização relacionada aos níveis duplos do menu grub atual.
Hannu
244

Você também pode alterar a entrada de inicialização padrão do grub na linha de comando sem precisar instalar nenhuma ferramenta adicional. Isso não muda a ordem da lista, mas permite que um sistema operacional diferente seja inicializado por padrão, o que parece o que você deseja.

Primeiro, faça uma cópia de segurança de /etc/default/grub. Caso algo dê errado, você pode facilmente reverter para a cópia em bom estado:

sudo cp /etc/default/grub /etc/default/grub.bak

Em seguida, edite o arquivo usando vimou o editor de texto de sua escolha:

sudo vim /etc/default/grub

Encontre a linha que contém

GRUB_DEFAULT=0

e configure para

GRUB_DEFAULT=x

onde xé o índice do item de menu grub no qual você deseja inicializar por padrão. Observe que os itens de menu são indexados em zero. Isso significa que o primeiro item da lista é 0e que o sexto item é realmente 5. Portanto, para inicializar no sexto item da lista, a linha seria:

GRUB_DEFAULT=5

Se você esqueceu a ordem dos itens, dê uma olhada /boot/grub/grub.cfg. Cada entrada do menu é especificada por uma linha do tipo:

menuentry 'Ubuntu' [options] {

Você também pode escolher o padrão pelo nome em vez do índice, por exemplo:

GRUB_DEFAULT='Ubuntu'

se houvesse uma menuentry 'Ubuntu'linha ligada /boot/grub/grub.cfg. Esse pode ser um método melhor, pois não depende da ordem das entradas, o que pode mudar.

Para usar um kernel no submenu "Versões anteriores do Linux", use:

GRUB_DEFAULT="Previous Linux Versions>x"

(inclua as citações), onde xestá o índice do kernel antigo no submenu ou o nome do kernel como ele aparece /boot/grub/grub.cfg. Por exemplo,

GRUB_DEFAULT="Previous Linux Versions>4.13.0-43-generic"

Em seguida, crie o menu grub atualizado:

sudo update-grub
dcharles
fonte
5
Última vez que olhei, o grub2 gera tantas entradas em tempo real que é realmente difícil descobrir qual número usar para uma entrada.
21312 Joe
52
O uso de um índice pode ser bastante complicado - a lista de sistemas operacionais pode mudar após uma atualização. Mas você pode dar uma olhada em /boot/grub/grub.cfg e procurar o nome do sistema operacional padrão desejado. Em seguida, use o nome entre aspas em vez de um índice. Exemplo: em GRUB_DEFAULT="Microsoft Windows XP Professional (on /dev/sda1)"vez deGRUB_DEFAULT=7
geekQ 9/12/12
1
Isso precisa de uma atualização relacionada aos níveis duplos do menu grub atual.
Hannu
5
Com a versão atual do Ubuntu 16.04, se você quiser selecionar um kernel específico para inicializar, você precisa adicionar ao Advanced options for Ubuntusub-menu, assim:GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-34-generic'
Geoff Williams
1
@BandaMuhammadAlHelal Isso tentará inicializar o 7º item da sua lista - é isso que você quer? Se você deseja o sexto item da sua lista, use GRUB_DEFAULT=5.
Nick
39

Do local tombuntu (artigo por Tom ):

O GRUB pode ser configurado usando o /etc/default/grubarquivo Antes de fazer alterações, pode ser uma boa ideia fazer backup criando uma cópia:

sudo cp /etc/default/grub /etc/default/grub.bak

Você pode restaurar a cópia do backup sobre o original:

sudo cp /etc/default/grub.bak /etc/default/grub

Abra o arquivo usando o editor de texto com privilégios de root:

gksu gedit /etc/default/grub

A linha GRUB_DEFAULT=0significa que o GRUB selecionará o primeiro item de menu para inicializar. Mude isso para GRUB_DEFAULT=saved. Essa alteração facilitará a alteração do item padrão posteriormente.

Salve e feche o arquivo. Execute este comando para aplicar suas alterações na configuração do GRUB:

sudo update-grub

A alteração na configuração que fizemos permite que os comandos grub-set-default e grub-reboot sejam usados ​​a qualquer momento. Isso permite que você altere o item de inicialização padrão permanentemente ou apenas para a próxima inicialização, respectivamente.

Execute grub-set-defaultou grub-reboot(com sudo) com o número do item de menu para inicializar (o primeiro item é 0). Este comando alterará o padrão para o segundo item:

sudo grub-set-default 1
silenTK
fonte
15
Esta resposta é obtida quase literalmente em tombuntu.com/index.php/2011/09/25/… . Por favor dar crédito onde o crédito é devido.
James McMahon
Esta resposta parece não alterar a ordem dos itens de inicialização.
Sparhawk 26/05
Estou usando o Linux Mint Debian Edition. Eu não tinha um / etc / default / grub, mas encontrei o valor GRUB_DEFAULT a ser modificado em /etc/grub.d/00_header. Depois de modificar GRUB_DEFAULT no 00_header com o meu nome de entrada de inicialização desejado, simplesmente executei "sudo update-grub" e pronto, sucesso.
Análise Difusa
Eu vi esses mesmos comandos no tipsonubuntu.com/2016/07/20/grub2-boot-order-ubuntu-16-04 . Percebi que esses comandos só funcionarão se forem emitidos pelo sistema na ordem de inicialização 0 primeiro.
22718 Sun Bear
-2

Eu tentei o seguinte e obtive bons resultados.

Abra uma janela do terminal ( Ctrl+ Alt+ T),

Digite sudo gksu nautiluse pressione Enter. Digite sua senha de usuário.

Navegue até o arquivo /boot/grub/grub.cfg. Copie e cole o arquivo no mesmo diretório, deve criar uma cópia do arquivo grub.cfg para fins de backup. Em seguida, clique duas vezes em grub.cfg para abrir o arquivo em um editor de texto.

No arquivo você encontrará a linha ( set default="0"). Edite o 0 para o número da linha no Grub que você deseja carregar. A minha era a sexta linha, então usei 5, pois a primeira linha é considerada 0. Salve o arquivo. Reinicie o PC e se você escolher a linha correta, ela será destacada quando o Grub carregar.

Boa sorte

Outkast
fonte
10
como você pode ver no início do arquivo, ele diz que você não deve fazer isso. em vez disso, edite /etc/default/grube execute update-grub.
sazonal 23/10/12
7
e eu também não recomendaria o gksu nautilus. É muito fácil jogar uma bomba no seu sistema a partir daí.
sylvainulg
verifique esta publicação: psychocats.net/ubuntu/bootmenu
tqjustc
Por algum motivo, esta resposta é mostrada como "resposta automática" no google ao pesquisar: "grub change order boot".
Lepe
@lepe, não se preocupe, para mim padrão é linuxandubuntu.com/home/...
vladkras
-5

Abra uma janela do terminal ( Ctrl+ Alt+ T) ou pressione Alt+ F2.

Digite gksu nautiluse pressione Enter.

Isso abrirá o navegador de arquivos Nautilus com permissão para alterar os arquivos pertencentes à raiz.

Navegue até o arquivo /boot/grub/grub.cfge clique duas vezes para abrir o arquivo em um editor de texto.

Recorte, mova e cole as seções desse arquivo que pertencem a diferentes sistemas operacionais. Você deve ter muito cuidado ao fazer isso, como se estivesse fazendo errado, então não poderá mais inicializar. A inicialização do Windows sempre pode ser reparada com as ferramentas de um disco de instalação do Windows ( FIXMBR), que substitui o GRUB-MBR por um Windows-MBR típico.

Eu testei do Ubuntu 9.04 a 12.04 e funcionou bem o tempo todo.

Mas apenas tentei mover a seção de inicialização do Windows para o topo da lista para torná-la o padrão.

Se minha memória está correta, cada seção do menu de inicialização no arquivo começa com um begin... e termina com uma ... end. E abrange várias linhas de texto.

O texto nesse arquivo se tornou um pouco mais complicado e não parece o mesmo na última versão do Ubuntu, como nas versões anteriores. Portanto, use seu cérebro para evitar que você cometa um erro.

Curt Jonsson
fonte
4
Você não precisa correr sudo update-grubem algum momento?
Eliah Kagan 06/07/12
4
/boot/grub/grub.cfgestá sendo substituído em cada pacote instalado / atualizado, acionando uma atualização do Grub, efetivamente invocando update-grub. E isso gera um novo grub.cfg. Portanto, a configuração do Grub é feita nos arquivos do /etcdiretório, conforme explicado pelas outras respostas, para garantir que seja persistente.
gertvdijk