Come posso ottenere grub2 per avviare un'opzione diversa solo al prossimo avvio?


19

Sto installando una macchina Linux / Windows senza testa dual boot. Voglio principalmente che la macchina si avvii sempre su Ubuntu, tranne occasionalmente quando ho bisogno di testare qualcosa in Windows.

Ho installato Windows e Ubuntu e attualmente si avvia sempre su Ubuntu. Vorrei essere in grado di dirlo per l'avvio a Windows solo all'avvio successivo e quindi quando riavvio da Windows il sistema torna all'avvio di Ubuntu.

Ho trovato Grub Legacy - sezione 4.3.1 - Avvio una sola volta ma sto usando il server Ubuntu 14.04 che ha la versione più recente di grub. Da quello che ho letto, ho bisogno di apportare alcune modifiche /etc/default/grube utilizzare sudo grub-set-defaultquando voglio avviare Windows.

Penso che quei cambiamenti inizino con l'aggiunta di questo a /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=false

Ogni volta che vengono apportate modifiche, /etc/default/grubso che devo eseguire
sudo update-grube che risulta in:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-43-generic
Found initrd image: /boot/initrd.img-3.13.0-43-generic
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

Poiché Windows è la settima opzione in quell'elenco, credo che avrei eseguito sudo grub-set-default 6(conteggio basato su 0) - è corretto ed esiste un metodo diverso per ottenere un elenco numerato di scelte di avvio dopo che il sistema è già stato avviato?

Inoltre, le linee sono /etc/default/grubsufficienti per raggiungere questo comportamento o devo aggiungere una configurazione aggiuntiva?

Risposte:


19

Devi assicurarti di avere GRUB_DEFAULT=savednella tua configurazione di grub (che è generata automaticamente, puoi cambiare questa parte modificando / etc / default / grub). sudo update-grubper rendere attive le modifiche e quindi utilizzare sudo grub-reboot $1.

grep -i "menuentry '" /boot/grub/grub.cfg

Ti fornirà i menu che puoi tagliare e incollare per $ 1. Oppure, come si nota, le opzioni sono indicizzate a zero, quindi è possibile ottenere l'ennesima voce di menu passando (n-1) a grub-reboot.

Vedi ad es

Non testato da me poiché non ho un'installazione 'Windows 7'.


grazie penso che questo sia ciò di cui ho bisogno (con ulteriori dettagli che ho trovato su help.ubuntu.com/community/Grub2 )
cwd

Se ti è capitato di provare questo senza cambiare la riga in GRUB_DEFAULT=saved, devi farlo manualmente in seguito come spiegato qui nel secondo paragrafo per Grub2 e poigrub-set-default 0; grub-reboot 0
rubo77

1
un comando per mostrare i numeri della voce:grep -i "menuentry '" /boot/grub/grub.cfg|sed -r "s|--class .*$||g"|nl -v 0
rubo77

1
Come da askubuntu.com/questions/838704/grub-reboot-to-specific-kernel , menuentryi messaggi sotto un submenuin /boot/grub/grub.cfgdevono essere passati a grub-rebootcome SUBMENU>MENUENTRY. Quindi, ad esempio, usando alcuni bash-fu simili a quelli di @ rubo77, volevo avviare menuentry7, tuttavia questa voce era sotto una submenuche era la seconda voce nel menu di livello superiore, quindi dovevo passare '1>6'invece (virgolette singole per evitare l'interpretazione della shell>).
Trent Nelson,

1
ATTENZIONE: questo non funziona se si avvia una partizione BTRFS. Grub deve essere in grado di scrivere su grubenv mentre avvia Windows, non può scrivere su BTRFS. Il file è generalmente archiviato in / boot / grub e può essere visualizzato con grub-editenv. Ho risolto il mio sistema montando BTRFS in /, una partizione EXT4 in / boot, e poi la partizione EFI in / boot / efi.
Nathan,

-2

Prova a installare grub-customizer (guida all'installazione di seguito) sul tuo sistema Ubuntu. Questo strumento GUI ti fornirà un bel set di opzioni con cui puoi configurare le tue impostazioni di GRUB, inclusi nomi e ordine delle opzioni di avvio, sistema predefinito, risoluzione dello schermo, caratteri, sfondo ecc ...
Non sono sicuro che abbia il possibilità di impostare direttamente ciò che vuoi, ma almeno può mostrarti i numeri di sistema operativo. A loro si può fare riferimento anche con il loro nome, credo.

Come installare grub-customizer:

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

(fonte: launchpad - daniel richter )


Ho visto quello strumento, ma sto usando il server Ubuntu 14.04 (nessuna GUI) quindi mi piacerebbe avere una soluzione a riga di comando.
Cwd,

Oh, non lo sapevo. Uso lo standard 14.10 (Unity) e preferisco personalmente le GUI per lavori come questi. Conosci questo sito? Descrive ciò che hai scritto nella tua domanda, ma se differisce dalla tua prima fonte, forse lì trovi quello che ti serve esattamente.
Byte Commander

-1 - Sto sottovalutando la tua risposta perché mi chiedo se hai letto la domanda. Posso capire che potresti aver perso 'Ubuntu Server' lì dentro ma hai appena pubblicato lo stesso link che ho incluso nella mia domanda nel tuo ultimo commento ...
cwd,

Ops. Ma pensi che ogni volta che scrivo un nuovo commento o una risposta rileggo l'intera domanda e i precedenti post, controllando ogni link !? Inoltre, puoi anche installare i DE sulle distribuzioni dei server! Ammetto di non essere (ancora) un esperto, ma almeno cerco di aiutare gli altri dove posso, anche se le risposte non sono sempre corrette o utili al 100%. Dovresti essere contento che qualcuno stia cercando di aiutarti a risolvere questo problema, ma se vuoi farmi incazzare, ci sei riuscito. Un'ultima cosa: ne hai parlato GRUB_SAVEDEFAULT=false, ma non riesco a trovarlo sul nostro link. E hai dimenticato altre righe menzionate lì!
Byte Commander
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.