Dove dovrebbe essere installato il bootloader quando voglio eseguire Ubuntu da un HDD esterno?


9

Ho un laptop che esegue Windows 10 e voglio installare Ubuntu su un HDD esterno e ogni volta che ne ho bisogno posso semplicemente collegarlo e avviarlo dall'unità esterna.

Ho seguito un tutorial, in realtà due, ed entrambi hanno detto che il bootloader deve essere installato sull'HDD esterno. Ciò ha avuto come conseguenza che ho potuto accedere a Windows solo quando avevo collegato l'HDD esterno. Ogni volta che non l'avevo collegato al laptop non si avviava e ottenevo solo uno schermo nero con una linea bianca. Dopo aver corretto il mio record di avvio principale ho potuto accedere a Windows.

Ora voglio riprovare, ma temo che se installo il bootloader sull'unità interna, potrei in qualche modo eliminare la mia partizione di Windows o avrò problemi con il mio avvio.

Quindi cosa dovrei fare?


Possibile bug e soluzione alternativa a bugs.launchpad.net/ubuntu/+bug/1835639
Bellera,

Risposte:


10

Innanzitutto, è CRITICO comprendere la modalità di avvio. I computer moderni possono avviarsi in due modi:

  • BIOS : questo è il vecchio metodo di avvio, utilizzato sulla maggior parte dei computer introdotti prima del 2011. I computer moderni supportano l'avvio in modalità BIOS tramite una funzione denominata Compatibility Support Module (CSM), nota anche come "supporto di avvio in modalità legacy" o un termine simile. Pertanto, questo metodo può essere indicato con tre nomi: BIOS, CSM o legacy. Implica il codice del boot loader a 16 bit diviso nel Master Boot Record (MBR) e in altri luoghi. È un metodo non elegante ma maturo di avvio e la maggior parte dei siti che non menzionano esplicitamente la modalità di avvio descrivono l'avvio in modalità BIOS. Se il tuo computer è dotato di Windows 8 o versioni successive, tuttavia, è probabile che non usi questo metodo di avvio.
  • EFI / UEFI - Questa è la modalità di avvio nativa per la maggior parte dei computer introdotta dalla metà del 2011 ed è completamente diversa dall'avvio in modalità BIOS, quindi dovresti ignorare qualsiasi consiglio che affermi esplicitamente che è per l'avvio in modalità BIOS o qualsiasi cosa che non menziona la modalità di avvio (poiché è probabile che sia vecchia o scritta da qualcuno che non conosce la differenza). Un'eccezione: confusamente, molte persone, e persino i produttori di computer, si riferiscono ai loro EFI come "BIOS". Questa pratica crea molta confusione.

Dato che menzioni Windows 10, è probabile che il tuo computer sia basato su EFI e si avvii in modalità EFI. Procederò in base a tale presupposto. Se ciò non è corretto, ignora il resto di questa risposta.

Per avviare un disco interno in modalità EFI, il sistema operativo in genere memorizza un caricatore di avvio come file sulla partizione di sistema EFI (ESP) sul disco. Questo nome file può essere legale, ma per Ubuntu lo sarà EFI/ubuntu/shimx64.efi, che a sua volta si avvia EFI/ubuntu/grubx64.efi. Il programma di installazione del sistema operativo registra il nome del boot loader con il boot manager integrato di EFI, che memorizza quel nome in NVRAM. Se EFI funziona correttamente (non tutti lo fanno), questo si traduce in un processo di avvio funzionante.

Il problema con questo processo, applicato a un disco rimovibile, è triplice:

  • Il programma di installazione di Ubuntu installerà GRUB su "ESP", ma potresti avere più ESP disponibili (quasi sicuramente uno sul disco rigido e forse uno sull'unità USB). Controllare dove l'installazione di GRUB può essere complicata. E ' non è fatto usando l'opzione contrassegnata con il titolo ovvio su dove installare GRUB. Invece, può essere fatto (AFAIK) solo dall'opzione di installazione "Something Else" contrassegnando l'ESP che si desidera utilizzare come "partizione di avvio EFI" o "Partizione di sistema EFI" (il cui nome dipende dalla versione di Ubuntu).
  • Se si installa GRUB su ESP sull'unità USB, quando si rimuove l'unità USB, EFI potrebbe notare che ha una voce del caricatore di avvio registrata che non è valida ed eliminare quella voce. Molte EFI lo fanno e ciò significa che se installi GRUB su un disco esterno e poi lo scolleghi, perdi la possibilità di avviarlo da quel disco, anche quando ricolleghi il disco.
  • Il modo in cui Ubuntu configura GRUB fa sì che faccia affidamento sui file di configurazione che si trovano nella /boot/grubdirectory Ubuntu , che probabilmente non si troverà sull'ESP. Pertanto, se Ubuntu installa GRUB sull'ESP sul tuo disco interno, eviterai il primo problema ma ti imbatterai in un altro perché quando si avvia con l'unità USB scollegata, GRUB si avvierà e non sarà possibile trovare i suoi file di configurazione. Il risultato è un grub>prompt che confonderà la maggior parte degli utenti.

Esistono diverse soluzioni a questi problemi, tra cui:

  • Installazione manuale di GRUB sul nome file di fallback sul disco esterno - Gli installatori del SO si avviano usando un nome file fallback di EFI/BOOT/bootx64.efi. Se si copia Shim (che lanci grub) a un certo file (copiando EFI/ubuntuper EFI/BOOTl'ESP e poi rinominare shimx64.efia bootx64.efiinEFI/BOOT), il tuo firmware sarà in grado di avviare il tuo GRUB basato su USB proprio come ha fatto il programma di installazione di Ubuntu. Questo funzionerà oltre entrambi i problemi che ho appena identificato, ma dovrai utilizzare il boot manager integrato del computer per selezionare il sistema operativo da avviare. Questo gestore di avvio integrato varia da inutilizzabile a tollerabile, quindi questa potrebbe o meno essere una soluzione accettabile. Potrebbe anche essere necessario modificare l'ordine di avvio dopo aver installato Ubuntu per impedire l'avvio di GRUB dall'ESP del disco interno o dall'ESP del disco esterno per impostazione predefinita.
  • Inserisci una /bootpartizione sul tuo disco interno - Se installi GRUB sul disco interno, puoi anche inserire una /bootpartizione sul disco interno. Ciò consentirà a GRUB di funzionare normalmente su tutti gli stivali; tuttavia, l'opzione Ubuntu apparirà sempre, anche quando il disco USB è scollegato. Questo può essere indesiderabile, specialmente se Ubuntu è l'impostazione predefinita. Inoltre, questa soluzione significa che l'unità USB esterna sarà avviabile solo sul computer su cui è stata preparata. Se si desidera poter utilizzare quel disco su altri computer, è necessario evitare questa soluzione.
  • Usa un boot manager più intelligente - Un boot manager ti offre una scelta di SO da avviare, mentre un boot loader carica un kernel in memoria. GRUB esegue entrambi i lavori e il boot manager integrato di EFI esegue solo il primo lavoro. Sono disponibili altri gestori di avvio, alcuni dei quali potrebbero aiutarti a evitare i problemi che ho identificato. Il mio rEFInd, ad esempio, se installato sull'ESP del disco interno e creato il programma di avvio predefinito, rileverà e presenterà un'opzione Ubuntu se e solo se è presente GRUB o un kernel Linux, cioè quando l'unità USB è collegata in. Impostando l' default_selectionopzione inrefind.confin modo appropriato, è possibile configurare rEFInd per l'avvio automatico di Ubuntu se l'unità USB Ubuntu è collegata e per l'avvio diretto su Windows se l'unità USB Ubuntu non è collegata. La mia risposta a questa domanda fornisce ulteriori dettagli su questo tipo di configurazione, anche se su un Mac anziché un PC.

Con un po 'di fortuna, uno di questi approcci ti farà funzionare.


0
  1. Avvia Ubuntu Live USB / CD
  2. Collega il tuo HDD esterno
  3. Installa Ubuntu su HDD esterno (avanzato, quindi puoi impostare dove installare il boot loader)
  4. Configura il BIOS per l'avvio dal tuo hdd esterno

Questa è una soluzione basata su BIOS che non funzionerà correttamente sulla maggior parte dei computer basati su EFI.
Rod Smith,

0

È necessario installare il bootloader su qualsiasi unità utilizzata dall'UEFI / BIOS per l'avvio. È possibile modificare questa unità nelle impostazioni del BIOS, che di solito si può accedere premendo qualcosa di simile F10, F12o Delsubito dopo l'avvio del computer. Quindi, come primo passo, puoi provare a impostare il tuo computer per l'avvio dall'unità esterna anziché dall'unità interna. Se il bootloader è installato correttamente sull'unità esterna, dovrebbe funzionare.

Per il normale uso quotidiano, probabilmente ti consigliamo di eseguire sempre l'avvio dalla stessa unità per comodità, quindi ti consigliamo di installare il bootloader sull'unità interna. Prima di fare ciò, tuttavia, è necessario eseguire un backup, preferibilmente un'immagine del disco completa dell'unità interna funzionante. Se riscontri problemi dopo l'installazione di Ubuntu insieme a Windows, lo strumento Boot-Repair può essere d'aiuto.


Ho già cambiato l'ordine di avvio per l'avvio da una USB prima dell'HDD interno. Quindi immagino che se installo Ubuntu sull'HDD esterno e installo il bootloader sull'HDD esterno, posso, ma come se avessi avviato dalla chiavetta USB, giusto?
capitano

Scusa, non sono sicuro di cosa esattamente stai chiedendo. Dovresti essere in grado di 1) installare il bootloader sull'unità esterna, 2) rimuovere l'unità USB e 3) impostare il BIOS per l'avvio dall'unità esterna, quindi avviare Ubuntu sull'unità esterna.
Ben

@capitan Wright. Come ho detto, questo avrebbe funzionato.
Izzno,

0

Vorrei installare il boot loader sul dispositivo esterno! In questo modo non è possibile che l'installazione di Windows danneggi o rimuova il bootloader. Sarebbe un semplice compito impostare il BIOS per l'avvio:

USB-Key
USB-Disk
HDD
etc 
etc

NB: ASSICURATI DI DISATTIVARE SECUREBOOT (se trovi questa opzione)

In questo modo, se si scollega il dispositivo esterno per qualche motivo, non costituirà un problema con il computer.

E: se stai lontano dai driver proprietari, sarai in grado di eseguire questo sistema su altri computer ...

(A proposito, non consiglierei questo tipo di installazione per uso permanente in quanto sarà più lento di eSATA)


Ubuntu supporta Secure Boot. Sebbene ci siano incompatibilità occasionali, sono rare, quindi non dovrebbe essere necessario confondere con questa impostazione. Sotto EFI, le impostazioni dell'ordine di avvio sono in genere molto più complesse di quanto tu descriva, il che è sia buono che cattivo: fornisce più opzioni e un controllo più accurato; ma significa che c'è molto altro da imparare e che è improbabile che funzionino soluzioni semplici apprese nel mondo del BIOS.
Rod Smith,

Non ero a conoscenza del fatto che Ubuntu potesse "posare" come Windows poiché tutte le opzioni del BIOS di avvio sicuro che abbia mai visto affermano specificamente che disabilita tutte le capacità per modificare l'ordine di avvio in modo permanente o OS.
Izzno,

Ubuntu non "pone" come Windows. Secure Boot richiede semplicemente che un programma EFI sia firmato da una chiave privata la cui chiave pubblica è registrata con il firmware. Microsoft firma le chiavi per terze parti, incluso il binario Shim di Canonical, rendendole eseguibili su computer che includono la chiave di Microsoft. Non ho mai sentito parlare di un'implementazione di Avvio protetto che impedisce di modificare l'ordine di avvio, anche se suppongo che un fornitore possa scegliere di aggiungere tale restrizione. Vedi la mia pagina su Secure Boot per ulteriori informazioni su questo argomento.
Rod Smith,
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.