Come posso creare un ambiente multiboot usando LVM per i vostri * sistemi operativi buntu su un'unità di sistema formattata GPT, in un sistema basato su UEFI?


9

Il motivo per cui utilizzo LVM è che reinstallo, eseguo l'aggiornamento e in genere scherzo con le installazioni del mio sistema operativo così tanto che ho scoperto che LVM mi offre una grande flessibilità nello spostamento, nell'espansione, nella clonazione e nel backup delle partizioni del sistema operativo a mio piacimento senza i rischi associati con altri metodi di partizionamento. Tuttavia, rende il multibooting dei sistemi operativi un po 'complicato e imprevedibile a volte, soprattutto su hardware più recente, in cui il processo acquista un altro livello di complessità.

Quello di cui sto parlando sono le nuove schede madri UEFI (al contrario del BIOS), che ti consentono di sfruttare tutto il potenziale e di avviare da 3 TB + dischi rigidi (quando formattato in GPT rispetto a MBR). Le cose possono diventare incredibilmente complicate e incasinate perché ogni volta che installi un nuovo sistema operativo sul tuo computer, sovrascriveranno i file EFI bootloader (.efi) della tua installazione precedente e finirai con una serie di voci rotte nel tuo EFI Bootlist "BIOS" e un carico di bootloader grub praticamente ridondanti sparsi per le tue partizioni. Questo mi offende su così tanti livelli, non ultimo dei quali esteticamente.

Risposte:


6

NOTA: questa è stata la risposta del PO. L'ho spostato qui come CW in modo che non si chiudesse. Se una mod vede questo, per favore rispedisci la proprietà al PO come una risposta automatica.

Di seguito, descriverò in dettaglio come far funzionare tutto in modo un po 'armonioso e per risolvere il disordine, in una certa misura.

Prima parte: installazione.

Se hai intenzione di installare Windows 7 (o 8?) Sul tuo computer, probabilmente dovrai prima installarlo , preferibilmente sul suo disco rigido, e non sarai in grado di inserirlo nel tuo gruppo di volumi logici. Questo perché il programma di installazione GPT / EFI di Windows 7 è molto semplice e non ti consente di fare il genere di cose che farai qui. Dopo l'installazione di Windows, è possibile ridimensionare e ripartizionare, aggiungendo le partizioni necessarie per un'installazione multi-boot. La partizione di sistema EFI creata da Windows può sempre essere riutilizzata per le installazioni di Linux, utilizzando una variante del metodo descritto di seguito.

In primo luogo , aiuta a cancellare l'unità di sistema desiderata utilizzando gparted (o simili) e inizializzandolo come disco GPT, prima di fare qualsiasi altra cosa. Se sei un po 'nervoso nell'utilizzare un partizionatore non grafico per configurare il tuo disco da zero, allora questo è sicuramente utile e viene fatto facilmente da un programma di installazione standard USB USB o CD dal vivo. Non farlo in Windows. Non sono sicuro che sia assolutamente necessario, ma è quello che ho fatto. In questa fase puoi anche eseguire il partizionamento di base per le partizioni non LVM, poiché non danneggerebbe e ti fornirà un framework per l'installazione corretta.

Ora masterizza i tuoi CD / USB di installazione. Se si utilizza Ubuntu Alternate Desktop ISO (consigliato), è necessario masterizzarlo su un CD, poiché semplicemente non funzionerà con una chiavetta USB. Se utilizzato per un'installazione LVM, si interrompe con un errore critico quando tenta di avviare il caricamento e l'installazione del software con aptitude / taskel, quindi usa un CD se sai cosa è buono per te!

  • Ubuntu Server si installa assolutamente bene da una USB in tutti i casi (AFAIK), ma trovo che se voglio costruire un sistema desktop Ubuntu / Mythbuntu sopra Server, introduce ogni sorta di stranezze non intenzionali che necessitano quindi di tempo impiegato a sistemare. Quindi segui Desktop, se è quello che stai cercando.

  • Quantal (12.10) ha LVM come opzione nell'installer grafico (il che è fantastico!) E quindi l'ISO alternativo è stato eliminato. Tuttavia, ho trovato l'interfaccia di partizionamento manuale non flessibile, priva di opzioni LVM e semplicemente non ha funzionato per l'avvio multiplo. Ciò potrebbe essere stato dovuto al problema USB menzionato in precedenza, ma ad essere sincero, ho avuto così tanti problemi con un sistema Quantal che ho provato, che ho rinunciato abbastanza rapidamente e sono tornato a Precise (12.04.1).

  • L'altra opzione principale è quella di utilizzare il programma di installazione di Net-boot, di cui non ho alcuna esperienza reale (tranne sul mio Raspberry Pi), ma credo che ci siano mini ISO con programmi di installazione basati su testo e GUI (GTK), che può essere masterizzato e avviato. Questi estraggono la maggior parte dei file di installazione direttamente da un repository e sono altamente personalizzabili.

Successivamente , è necessario avviare il sistema da CD o USB utilizzando la voce di avvio UEFI da "BIOS" o dal menu di avvio (in genere uno dei [F8] - [F12] sulla tastiera).

Lascio a te passare attraverso i preliminari del processo di installazione, ma una volta arrivato alla parte di partizionamento, scegli Partizionamento manuale e quindi crea (o modifica se ne hai già creati alcuni) queste partizioni:

  1. Una singola partizione di dimensioni 200 MB, FAT32, partizione di sistema EFI, denominata / etichettata "EFI", avviabile, formato.

  2. Diverse partizioni: dimensioni 256 MB, EXT2, avvio, formato;

    • Dovresti nominarli / etichettarli ciascuno per il sistema operativo che rappresenteranno, cioè "OS_01_Boot" ... "OS_03_Boot" ... ecc.

    • Inizia montando il primo di questi come "/ boot" e tutti gli altri come "non usare".

    • Crea una partizione per ogni SO che intendi installare.

  3. Una partizione, che occupa il resto dello spazio dell'unità, come volume per LVM.

    • Configura LVM sul volume che hai appena partizionato, creando un gruppo di volumi per tutti i tuoi sistemi operativi, dandogli un nome adatto e molto spazio per tutti. Consiglierei il factoring in almeno 40 GB per ciascuno, a seconda del tipo di installazione che stai pianificando per ognuno.
  4. Crea un volume logico delle stesse dimensioni della RAM fisica nel tuo sistema, ad esempio 8 GB, chiamalo "Scambia", usa come scambio, formatta.

  5. Creare un volume logico per ciascuno dei sistemi operativi all'interno del gruppo di volumi, dimensionandoli come suggerito sopra e assegnando a ciascuno di essi un nome, ad esempio "Ubuntu_12.04" ecc.

    • Formatta ciascuno su EXT4, denominando / etichettando le partizioni mentre procedi.

    • Inizia montando il primo di questi come "/" (root) e tutti gli altri come "non usare".

Questo è tutto! Ora hai una partizione di swap, "/ boot" e "/" (root) per il tuo sistema e parti di ricambio per le tue installazioni successive. È ora possibile eseguire il commit delle modifiche nella tabella delle partizioni e continuare con il resto dell'installazione.

Quando si tratta di installare il tuo prossimo SO, assicurati di montare rispettivamente la successiva "/ boot" e "/" (root) partizione. Assicurati di contrassegnare tutti gli altri come "non utilizzare", compresi quelli che hai usato l'ultima volta.

Parte seconda: backup dei file di avvio UEFI.

Dopo l'avvio nel nuovo sistema operativo, è necessario eseguire il backup del caricatore di avvio UEFI per un uso successivo e per assicurarsi che non venga sovrascritto nella prossima installazione. Questo può essere trovato in "/ boot / efi / EFI", all'interno della sua cartella, di solito chiamato "ubuntu". Il file in questione avrà un nome simile a "grubx64.efi", a seconda dell'architettura del PC; quindi "/boot/efi/EFI/ubuntu/grubx64.efi", per la mia macchina.

Nel mio caso, per eseguirne il backup l'ho copiato tramite la console, in questo modo:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

Sarebbe sicuramente utile fare un'altra copia nella tua cartella home o in un altro posto sicuro, nel caso in cui:

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

Una volta fatto, puoi installare in sicurezza il tuo prossimo sistema operativo (seguendo i consigli sopra), che molto probabilmente sovrascriverà il file e la cartella originali e diventerà anche la voce di avvio UEFI predefinita in "BIOS". Ripeti nuovamente il processo e tutte le volte che è necessario, assegnando a ogni cartella un nome diverso, ma rappresentativo:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

Parte terza: modifica delle voci UEFI nel "BIOS" UEFI.

Dal terminale, inserire:

sudo efibootmgr

Dovresti ottenere alcuni output in questo modo:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

È piuttosto autoesplicativo, davvero. Dovrebbe rispecchiare ciò che vedi nell'elenco di avvio del BIOS.

Leggi:

man efibootmgr

per vedere cosa fanno i comandi, quindi modificare i comandi di esempio seguenti per aggiungere e rimuovere le voci di avvio.

Innanzitutto , rimuovere quella riga "Boot0000 * ubuntu" con:

sudo efibootmgr -b 0000 -B

Produzione:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Quindi aggiungeremo alcune voci per tre sistemi operativi.

OS n. 1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \\EFI\\Ubuntu_12.04.1\\grubx64.efi

Produzione:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

OS n. 2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \\EFI\\Server_12.04.1\\grubx64.efi

Produzione:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

OS n. 3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \\EFI\\Mythbuntu_12.04.1\\grubx64.efi

Produzione:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

Per modificare l'ordine di avvio:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

Produzione:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Fatto!

C'è una sintassi piuttosto strana, specialmente attorno ai percorsi dei file, ma è abbastanza semplice se hai una buona guida (che spero sia).

Grazie per aver letto. :)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr


Grazie, AbrahamVanHelpsing. Stavo cercando di rispondere da solo, ma credo che io sia troppo un noob qui. Proverò a riordinarlo più tardi; la formattazione è terribile! Sono le 1:30 del mattino, quindi mi arrendo per il momento!
Rich.T.

2

Qualsiasi programma di installazione del sistema operativo che cancella i file del caricatore di avvio EFI precedenti o di altri sistemi operativi è gravemente danneggiato. Ubuntu aveva questo problema in passato, ma apparentemente era stato risolto con la versione 12.04. (Dico "presumibilmente" perché ho visto un paio di segnalazioni di problemi su questa linea che mi fanno pensare che il bug possa ancora esistere per una minoranza di sistemi.) Detto questo, il backup della partizione di sistema EFI (ESP) prima di un la nuova installazione del sistema operativo è una polizza assicurativa utile. Un backup a livello di file dovrebbe essere sufficiente, poiché EFI non si basa sul codice eliminato nei settori di avvio. (Si fa affidamento su GUID della partizione, però, quindi se qualcosa cancella l'ESP e ne crea uno nuovo, le voci del boot loader del EFI potrebbe smettere di funzionare.)

In generale, per il tuo tipo di configurazione, ti consiglio di creare un ESP, tutte le /bootpartizioni che ritieni possano essere necessarie e una grande partizione LVM. Se si prevede di installare distribuzioni Linux insieme ad altri sistemi operativi, creare tre o quattro partizioni LVM di dimensioni variabili che si uniscono in un gruppo di volumi; in questo modo, puoi estrarre una partizione (volume logico) dal tuo gruppo di volumi e dedicarla a un sistema operativo non Linux. Le /bootpartizioni non LVM offrono la possibilità di utilizzare boot loader che non comprendono LVM (ovvero boot loader non GRUB2).

Quando si installa un nuovo sistema operativo, probabilmente installerà il proprio boot loader come predefinito. In una configurazione complessa come la tua, questa è probabilmente la cosa sbagliata da fare la maggior parte delle volte. Per correggere, aiuta a disporre di un'unità flash USB o CD-R con il caricatore di avvio preferito installato su di esso. Qualcosa che è in grado di rilevare automaticamente altri bootloader , come rEFIt o la sua derivata rEFInd, probabilmente funzionerà bene in questo contesto. (Tieni presente che i file binari sul sito Web rEFIt funzionano solo su Mac; rEFInd è una scelta più sicura per i PC basati su UEFI.) In alternativa o in aggiunta, può essere utile un modo per avviare una shell EFI, poiché puoi spostare i file, regolare le opzioni di avvio e correggere una serie di problemi da una shell EFI. Molti boot loader e boot manager EFI possono avviare shell EFI. (Vederequesto wiki di Arch Linux per il download di collegamenti ad alcune shell EFI.) Sia le immagini CD rEFIt che rEFInd includono shell EFI.


2

Non è necessario utilizzare EFI per avviare un disco da 2 + TB; devi solo usare GPT e creare una partizione bios_grub da 1 MB sotto il segno da 2 TB. Se ritieni che EFI sia problematico, potrebbe funzionare meglio per te.

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.