Sommario:
- Terminologia
- Conversione
- Configurazione (+ avvio doppio)
Terminologia
BIOS = sistema di input / output di base
(U) EFI = (Unified) Extensible Firmware Interface
MBR = Master Boot Record
GPT = Tabella delle partizioni GUID
UEFI / EFI / BIOS = Interfaccia firmware
MBR / GPT = In che modo il computer conosce (per disco rigido) quali partizioni si trovano sull'unità e come eseguirne l'avvio.
UEFI / BIOS
Un'interfaccia del firmware è il modo in cui il firmware (il software all'interno dei dispositivi) e il sistema operativo interagiscono. Inizializza l'hardware, quindi esegue il sistema operativo e garantisce che i driver del sistema operativo possano far funzionare l'hardware.
Il BIOS è stata la solita interfaccia firmware che è stata utilizzata. UEFI è un'interfaccia più recente che ha diverse funzionalità, come essere più veloce, avere una GUI e essere in grado di avviare la scheda di rete e ottenere un indirizzo IP. UEFI sostituisce EFI. (Coloro che hanno sviluppato EFI hanno visto che c'erano altri che facevano qualcosa di simile e quindi si sono uniti a loro, portando con loro le idee di EFI. Questo è diventato UEFI).
Un BIOS richiede che il bootloader sia all'inizio del disco, tuttavia una UEFI utilizza una partizione per questo e può scegliere tra più bootloader da usare.
MBR / GPT + GRUB
L' MBR è una sezione di codice all'inizio del disco che contiene un caricatore di avvio (per il BIOS), nonché la mappa delle partizioni e un identificatore del disco univoco.
Per installare GRUB su un disco con un MBR, GRUB inserisce un piccolo programma nell'MBR per caricare il resto di GRUB da un'altra parte del disco. (Questo perché l'MBR è troppo piccolo per contenere tutto GRUB). Lo spazio scelto è lo spazio tra l'MBR e la prima partizione, che di solito esiste.
GPT è uno standard per come vengono specificati i partitoni. Ha un MBR "protettivo", tuttavia questo è solo per consentire ai computer basati su BIOS di avviare e arrestare strumenti che conoscono solo MBR dal tentativo di eliminare GPT. Può avere
(Il modo in cui viene gestita la GPT dipende dal fatto che si stia avviando utilizzando un BIOS (o un sistema UEFI in modalità di emulazione BIOS) o UEFI. Mi concentrerò su UEFI in relazione alla domanda).
I boot loader per i sistemi operativi sono archiviati in una partizione denominata EFI System Partiton, che è formattata (di solito) con FAT32. Qui è installato GRUB.
Conversione
Primo...
Stiamo giocando con la tabella delle partizioni, quindi la sicurezza garantita non è possibile. È un'operazione rischiosa. Tuttavia, il metodo non deve perdere i dati.
Altri si imbattono in questo: non utilizzare su Mac Apple.
Adesso...
Dovrai farlo su un CD live (o su un'altra installazione di Linux installata su un altro disco).
Quando si ha a che fare con dischi GPT, è necessario utilizzare un programma compatibile con GPT. 'GPT fdisk' è un buon strumento da usare e quello che userò. Può essere chiamato gptfdisk
o in
gdisk
base alla distribuzione (Ubuntu lo chiama gdisk
). Parted (e Gparted) è anche a conoscenza di GPT, quindi può essere "sicuro" con i dischi GPT.
Per convertire è necessario:
- Ridimensiona le partizioni per adattarle ai dati GPT e alla partizione di sistema EFI.
- Converti il disco e aggiungi partizioni
- Installa GRUB sulla partizione di sistema EFI.
1) Ridimensiona la partizione
Utilizzare parted
(riga di comando) o gparted
(GUI) per ridimensionare la prima e l'ultima partizione. La prima partizione dovrebbe avere circa 200 MiB prima di essa, e l'ultima partizione dovrebbe avere 1MiB a 2MiB (o lo farà) rimosso alla fine.
2) Converti il disco
Correre
gdisk /dev/sdx
la modifica del dispositivo che si desidera convertire è /dev/sdx
.
Dovrebbe dirti che convertirà la tabella dei partiton.
GPT fdisk (gdisk) version 0.6.14
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help):
Ora aggiungi una nuova partizione, rendendola di tipo "Sistema EFI". Dovrebbe trovare lo spazio libero all'inizio (suggerisco un numero di settore basso come 34) e utilizzare automaticamente tutto lo spazio libero. Gli esempi utilizzano un'unità flash USB da 4 GB con 1 partizione già presente, ridimensionata come sopra.
Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-7831518, default = 34) or {+-}size{KMGTP}:
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-421887, default = 421887) or {+-}size{KMGTP}:
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): L
0700 Linux/Windows data 0c01 Microsoft reserved 2700 Windows RE
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8301 Linux reserved 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery be00 Solaris boot bf00 Solaris root
bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup
bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se
bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3
bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data
c002 HP-UX service ef00 EFI System ef01 MBR partition scheme
ef02 BIOS boot partition fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 0700): ef00
Changed type of partition to 'EFI System'
Ora dovresti avere la partizione EFI.
Command (? for help): p
Disk /dev/sdd: 7831552 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 669247F2-37F7-4797-98F9-9CE56F7EA8C8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7831518
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 421888 7829503 3.5 GiB 0700 Linux/Windows data
2 2048 421887 205.0 MiB EF00 EFI System
Quindi esci gdisk
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed, possibly destroying your data? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
Ora usa Gparted (o riga di comando mkfs.vfat
) per formattare la partizione come FAT32.
3) Installa GRUB
Questo viene fornito con meno garanzie che la parte precedente non l'ho provata da sola.
Non sono sicuro di questo passaggio, quindi indovinerò usando le istruzioni di RAOF :
Per passare a grub-efi che vorresti
- Trova la tua partizione EFI; montalo in / boot / efi. Aggiungi questo a / etc / fstab¹
- Installa il pacchetto grub-efi
- Cambia la priorità di avvio del BIOS da UEFI e Legacy a UEFI (o un'opzione simile)
Dovresti capire con quale versione di grub-efi installare
ioreg -l -p IODeviceTree | grep firmware-abi
Se dice EFI32
installa il grub-efi-ia32
pacchetto, se dice EFI64
installa il grub-efi-amd64
pacchetto. È possibile installare i pacchetti con
sudo apt-get install <package name>
Questo probabilmente funzionerà solo se è stato avviato in modalità EFI.
Se non funziona, è possibile provare queste istruzioni dettagliate (sotto "Installa GRUB2 in (U) sistemi EFI") una volta grub-efi
installato.
Configurazione (+ avvio doppio)
Se le istruzioni di RAOK funzionano, dovresti essere in grado di aggiungere la seguente riga a
/etc/grub.d/40_custom
menuentry "Windows 7" {
set root='(hd0,gpt1)'
chainloader /EFI/microsoft/bootmgfw.efi
}
Presuppone che Windows sia riconosciuto come hd0
da GRUB. Potrebbe essere necessario modificarlo hd1
per funzionare.
Adesso corri
update-grub
per aggiornare il file di configurazione.
Riferimenti e ulteriori letture
Ho usato diverse fonti.