Con l’abbassarsi dei costi dei dischi , spesso ci troviamo davanti a qualche terabyte da gestire o meglio ancora da installarci un sistema operativo.
La gestione del boot dei dischi con capacità superiore a 2TiB è impossibile per i limiti dell’MBR, infatti capita sempre più spesso di trovarsi davanti a storage con tabella di partizioni GUID (GPT).
Un documento esplicativo dell’architettura GPT è riportato su wikipedia, dal quale si nota anche la difficoltà di boot dei sistemi windows su questo tipo di storage, ma questa è un’altra storia, dentro “Inside the Linux boot process“, troviamo invece una bella analisi del processo di boot.
Sempre sul sito IBM c’è un bel documento che analizza e spiega i limiti di MBR e i vantaggi di GPT:
Make the most of large drives with GPT and Linux
Preparing for future disk storage with the GUID Partition Table
Una prima cosa da tener presente è che molte distribuzioni hanno problemi, o meglio li hanno gli installers usati, per installarsi su dischi con tabella GPT
Ad esempio anaconda su CentOS va patchato per poter superare il warning della tabella GPT, cosi come ben descritto in questo post, mentre l’uso di tools come fdisk, cfdisk e sfdisk non è supportato. Con fdisk per esempio otteniamo
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Ci viene suggerito di usare gparted, o meglio parted.
Un altro tool che gestisce tabelle GPT è gdisk, presente in sysrescuecd e usato nel test seguente.
Per simulare uno storage GPT ho usato VirtualBox (qualcuno sta pensando che esagero? 😀 ) gdisk e parted presenti in SystemRescueCd su un disco da 500GB virtuale.
Prima con gdisk si crea una nuova tabella GPT (tasto ‘o’)
o create a new empty GUID partition table (GPT)
alla fine ci dovremmo trovare questo output:
% gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.7.1
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
dopo possiamo creare le partizioni con parted:
(parted) mkpart primary 0 100M (parted) name 1 boot (parted) mkpart primary 100M 495G (parted) name 2 root (parted) mkpart primary 495G 100% (parted) name 3 swap (parted) set 1 boot on (parted) p Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 537GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 100MB 100MB boot boot 2 101MB 495GB 495GB root 3 495GB 537GB 41.9GB swap Quindi verifichiamo con gdisk cosa è successo: % gdisk -l /dev/sda GPT fdisk (gdisk) version 0.7.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 1048576000 sectors, 500.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 976C6EF7-9802-415C-A7CC-E6CD272223EF Partition table holds up to 128 entries First usable sector is 34, last usable sector is 1048575966 Partitions will be aligned on 8-sector boundaries Total free space is 3310 sectors (1.6 MiB) Number Start (sector) End (sector) Size Code Name 1 34 195312 95.4 MiB EF00 boot 2 196608 966797311 460.9 GiB 0700 root 3 966797312 1048573951 39.0 GiB 8200 swap
Come si nota dalla colonna ‘Code’ i codici sono EF00 (EFI boot),
0700 (linux/windows data) e 8200 (swap)
Non ci resta che installare la nostra distribuzione, personalizzando durante l’installazione specificando /dev/sda1 come boot e /dev/sda2 come root /
Ciao,
io ho un pc asus su cui è installato windows 7 ma partizionato in GPT.
Vorrei installarci sopra anche ubuntu e avere la possibilità di scegliere il sistema operativo con grub.
Ovviamente l’instalalzione guidata di ubuntu mi vede l’hd totalmente vuote e da formattare
Nella guida hai spiegato come risolvere il problema ma mi chiedo se poi grub riuscirebbe a rilevare windows o meno
@Francesco
il problema non è grub, Ubiquity tentra di usare fdisk immagino.
Credo che tu debba prima partizionare il disco magari usando gparted e poi l’installazione dovrebbe rilevare le corrette partizioni.
Non mi assumo la responsabilità, ma potresti fare il boot con sysrescuecd che contiene gparted aggiornato e con questo ridimensionare il disco.
Ovvio che ci potrebbe sempre essere una percentuale di rischio.
Prova prima a vedere se usando il comando
gdisk -l /dev/sda
riesci a vedere lo stato del disco con la tabella GPT 😉
Fammi sapere.
Ciao,
Antonio