Come si esegue update-grub?


25

Sono andato su Live CD e ho attivato Terminal. Quindi, ho digitato gksu nautilusper ottenere l'accesso temporaneo alla mia directory principale. Una volta aperta la finestra di Manager, ho fatto clic su File System e sono passato alla /etc/default/grubdirectory. Ho quindi fatto doppio clic sul file Grub per apportare modifiche a TIMEOUTe TIMEOUT_QUIET.

Ho salvato il file dopo aver apportato le modifiche. Quindi sono tornato alla modalità terminale e ho digitato:

gksu update-grub

Il messaggio di errore che ho ricevuto è stato:

Non riesci a trovare un dispositivo per / (è / dev montato?)

Non sono sicuro di cosa fare a questo punto. Come posso eseguire update-grubper aggiornare le modifiche? Grazie in anticipo per il vostro aiuto. Si prega di essere molto dettagliati e specifici con la vostra risposta poiché sono totalmente nuovo in questo ambiente.

Risposte:


24

Fase 1 - Nota: non utilizzare un Live CD.

  • Nel tuo Ubuntu apri un terminale (premi Ctrl+ Alt+ Tcontemporaneamente)
  • Tipo gedit admin:///etc/default/grub
    Questo eseguirà gedit dell'editor di testo , se ne stai usando un altro basta digitare il nome di esso invece di gedit.
  • Apporta le modifiche che desideri apportare e salvale.
  • Chiudi gedit.
    Il tuo terminale dovrebbe essere ancora aperto.
  • Nel tipo di terminale sudo update-grub, attendere il completamento dell'aggiornamento.
  • Riavvia il tuo computer.

Fase 2: dopo aver effettuato l'accesso al sistema

  • Apri di nuovo un terminale ( Ctrl+ Alt+ T).
  • Digita il terminale gksu gedit /etc/default/grub
  • Per visualizzare il menu di grub all'avvio,
    commentare o rimuovere la seguente riga:GRUB_HIDDEN_TIMEOUT=0
    • Per commentare, aggiungi #all'inizio di questa riga, il risultato sarà#GRUB_HIDDEN_TIMEOUT=0
  • Salva il file.
  • Ancora una volta in esecuzione terminale sudo update-grub.

Se vedere il menu di grub all'avvio è l'unica cosa che desideri, dovresti annullare le modifiche precedenti al file.


Grazie per la risposta. Il problema originale che sto cercando di risolvere è che non riesco ad aprire il menu di grub. Quindi ho pensato che dovevo usare il Live CD per accedere al file di configurazione di grub e apportare le mie modifiche. Ho letto che se cambio TIMEOUT su 10 e TIMEOUT_QUIT su true, sarò in grado di accedere al menu di Grub. Quando avvio il sistema, tengo premuto il tasto Maiusc. Vedo le parole GRUB MENU apparire solo per una frazione di secondo. Quindi, senza essere in grado di utilizzare il Live CD per accedere a Terminal, non riesco a modificare il file di configurazione di GRUB. Qualche suggerimento su come realizzare questo?
newbietoubu,

Penso che jeroen abbia risposto direttamente a questo. Forse stai provando a modificare il menu di grub mentre sei in grub ???
pfeiffep,

2
Vedi la mia risposta migliorata.
jeroen,

6

Stai ricevendo quel messaggio perché il Live CD non monta un filesystem scrivibile. È pensato solo per essere usato per provare Ubuntu o per salvare un sistema danneggiato. L'esecuzione di un sudo update-grubfunziona solo su una versione installata di Ubuntu, in cui hai accesso in scrittura ai file GRUB sottostanti (e su un Live CD, non lo fai).


4
Buone informazioni, ma l'OP vorrebbe anche sapere come può apportare le modifiche che desidera /etc/default/grube poi update-grub.
Chaskes,

2

Puoi fare update-grub da un CD live su un Ubuntu Distro installato (anche se suppongo che funzioni con qualsiasi distribuzione Linux [basata su debian?]. È "obbligatorio" (ci possono essere altri metodi ma conoscendo questo, io non lo so se ne frega affatto) se clonate il vostro disco e avete già installato quello nuovo nel computer. Cito qui la clonazione ampiamente, perché in un certo senso il passo update-grub è un sottoinsieme di esso e gli approcci hanno lo stesso durante una sessione live. Anche questo metodo è stato scoperto attraverso la ricerca nel contesto della clonazione. Se non si esegue la clonazione, è possibile ottenere ciò di cui si ha bisogno e il processo sarà semplificato.

Dovrei qualificarlo qui; soprattutto per la clonazione, non ancora per l'aggiornamento-grub: l'ho fatto solo su sistemi BIOS. Non l'ho provato su un sistema UEFI. Il sistema UEFI richiede una partizione FAT per il caricamento di avvio e non ho testato se questa partizione dovesse venire durante la corsa durante le fasi di copia della clonazione. Mi aspetto che influisca sul montaggio richiesto [bind-] che sintetizza l'ambiente di grub nativo durante la sessione live ...

Questo è dettagliato in questa pagina: http://frugaltech.happystoic.com/ssdlinux . Ho usato questo metodo molte volte e puoi scambiarlo con i dischi rigidi ad-infinitum. Lo scambio di dischi rigidi fisici diventa così banale in questo modo, si è tentati di farlo diventare un hobby e / o provare a riparare i computer incasinati di altre persone.

Quanto segue può essere una parafrasi utile di ciò che troverai lì:

  1. Ctrl+ Alt+ Tper il terminale Bash e immettere una shell superutente ( sudo -s) durante una sessione live.

  2. montare la partizione completa dell'unità di installazione (quella che è [o diventerà] la directory principale permanente del filesystem Linux).

    2a. Se l'installazione completa esiste già sul disco rigido, passare a (2). SE STAI CLONANDO: [basato sul presupposto che non stai eseguendo una nuova installazione, poiché in questo caso è del tutto completamente automatico] se la tua installazione completa non esiste già su questa partizione, ora è il momento di semplicemente

    rsync -a /existing/linux/filesystem/live-mount-point/ /new/linux/filesystem/live-mount-point/ 
    

    [questi punti di montaggio sono puramente relativi all'ambiente di sessione live - in Ubuntu sono generalmente nella forma "/ media / ubuntu / ???"] sulla nuova unità [partizione].

    2b. Altre installazioni complete del sistema operativo possono essere gestite allo stesso modo qui. In genere ho usato una risorsa basata su Windows per copiare in anticipo partizioni Windows su nuove unità in anticipo, ma ho anche usato rsync e ha funzionato per Win XP (supponendo che tu abbia il supporto per il formato di partizione corretto, come ntfs; Penso che il i media di sessioni live generalmente comprendono il supporto di formati alternativi). Fai solo attenzione all'ortografia e usa il trailing /nella directory di origine se stai nominando completamente la destinazione.

  3. bind-mount delle directory live /dev, /proce, /sysnelle rispettive directory sulla partizione di installazione completa permanente [montata] che si desidera utilizzare. Lo script dettagliato nel link sopra lo compie molto elegantemente con un'istruzione "for". Inoltre, lo script fornito non deve essere eseguito come script di per sé. Può essere inserito dal prompt di bash, riga per riga.

  4. chrootalla partizione di installazione completa permanente. Dopo aver eseguito (3) e (4), il sistema ora "risiede virtualmente" nel "filesystem finale" e GRUB funzionerà in modo omogeneo. Senza questi passaggi, grub supporrà che il tuo sistema sia semplicemente una sessione live e non so esattamente cosa fa in quel caso, ma sufficientemente non è il risultato desiderato, su quale è stato accennato sopra in questo thread.

  5. eseguire grub-install sul /dev/sdX(drive, non mount point) corrispondente all'installazione permanente (o qualunque drive ospiterà GRUB se un sistema multi-drive [, multi-boot]). La flessibilità qui può dipendere dalla tua annata e dal BIOS. Per quanto ne so l'esecuzione di "grub-install" non fa nulla di dannoso se non necessario, quindi lo faccio sempre se sto usando questo metodo di sessione live.

  6. esegui update-grub e funzionerà come se il sistema in esecuzione fosse nidificato nella futura partizione permanente, scoprendo tutti i kernel e i sistemi operativi di avvio che potresti avere disponibili.

  7. Se non hai modificato fisicamente i dischi rigidi, passa a (5). Altrimenti modifica o verifica il tuo /new/linux/filesystem/live-mount-point/etc/fstabfile per garantire la corretta struttura del file system per il tuo [nuovo] ambiente. Se sei a questo livello sicuramente sai già come usarlo blkid per raccogliere gli UUID per fstab.

    IMHO: dovresti sempre usare gli UUID in formato fstab (non "dev / sdXY") dal momento che nel suo ambito è immune alla riconfigurazione del disco rigido fisico, oltre al grado in cui ciò richiede aggiornamenti letterali dei valori UUID (come se a qualche punto in futuro installerai un HDD aggiuntivo per la tua directory / home, ecc.). È semplicemente l'approccio più fondamentale, solido e invariante.

  8. esci dal chroot, esci da supershell, esci da bash, spegni e avvia il sistema senza il live media. Ora dovresti essere dove volevi.

    Nota importante: gli argomenti per mount e chrootsono directory (generalmente, PUNTI DI MONTAGGIO come /mnt/??o /media/??) corrispondenti alla sessione live. Nella maggior parte se non in tutti i casi, un'installazione completa risiede nella propria partizione, quindi i termini "directory" e "mount point" sono essenzialmente sinonimi qui. L'argomento per grub-install è un DRIVE FISICO (generalmente /dev/sdX, dove "X" è una lettera corrispondente all'unità nel tuo sistema, sda, sdb, ecc. E non dovrebbe dipendere dalla sessione).

Ora dovresti aver finito. Ho clonato simultaneamente Windows (XP e 7) in varie permutazioni insieme a Ubuntu e Puppy usando questo metodo e non mi ha deluso. Penso che puoi usare un supporto live di una distro diversa (ho usato solo diversi gusti Ubuntu e Mint per questo) purché forniscano la versione di GRUB che intendi utilizzare. Puoi spostare le partizioni, scambiare unità, combinare altre installazioni del sistema operativo e clonare da o verso SSD usando questo. Posso solo parlarci lavorando nella stessa macchina, comunque. Presumo che i driver che potrebbero essere richiesti per una macchina diversa potrebbero essere stati saltati durante la precedente installazione completa. La mia regola empirica è che cambiare unità in un computer richiede questo metodo, ma cambiare computer con un'unità richiede una [re] installazione completa.

Forse qualcuno può sfatare questo ..?


1
Benvenuto in Ask Ubuntu! :-) Ottima prima risposta! +1
Fabby,
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.