Dare un senso alle tabelle delle partizioni


17

Questo è l'output di fdisk:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT
/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

E questo è l'output di cfdisk:

Name         Flags       Part Type   FS Type           [Label]         Size (MB)
--------------------------------------------------------------------------------
                                     Unusable                               1.05  *
sda1                      Primary    ext4                              214744.18  *
sda2                      Primary    ext4                              429499.88  *
sda5         NC           Logical    swap                                8586.79  *
                          Logical    Free Space                         12889.10  *
sda4         Boot         Primary    ntfs                              209715.20  *
                                     Unusable                          124768.71  *

Dovrei avere 2 partizioni Linux, 1 partizione Windows con partizione estesa di circa 20 GB con partizione di scambio logica da 8 GB e circa 130 GB di spazio non partizionato.

Come se non bastasse, anche l'output di gpartedè un po 'diverso. inserisci qui la descrizione dell'immagine

Sono confuso dalle uscite che ho pubblicato qui.

  1. Perché è /dev/sd4contrassegnato come avviabile se avvio su GRUB2?
  2. Che cos'è / dev / sda3? Di che tipo è (primario / logico)? Perché non viene visualizzato in cfdisk?
  3. Perché quello spazio libero (suppongo 124768 pollici cfdisk) è contrassegnato come inutilizzabile?
  4. Cosa significa flag NC cfdiskper partizione di swap?

Risposte:


26

Perché / dev / sd4 è contrassegnato come avviabile se avvio su GRUB2?

Il bootable è un flag nell'MBR (in realtà un byte rispetto a 0x80). Quella voce è contrassegnata come avviabile. Un bootloader "tradizionale" legge l'MBR, cerca una voce con il flag di avvio e gli passa il controllo. Mentre stai usando grub, fa qualcosa di completamente diverso, poiché usa invece il suo file di configurazione. Ma gli strumenti ti dicono come sono configurate le partizioni (in realtà, potresti avere un bootloader nell'MBR che ti porta su / dev / sda4 e grub2 installato lì).

Che cos'è / dev / sda3? Di che tipo è (primario / logico)? Perché non viene visualizzato in cfdisk?

/ dev / sda3 è una partizione primaria di tipo partizione estesa . È una partizione utilizzata come contenitore per altre partizioni. gparted lo mostra abbastanza bene sul suo grafico.

Si potrebbe obiettare se in realtà è una partizione oppure no, da un lato occupa uno slot nell'MBR, dall'altro è un contenitore di partizioni , non si inserisce lì un filesystem.

Gli strumenti di partizione li trattano in modo speciale, quindi cfdisk sembra preferire non mostrarlo. fdisk ad esempio, inoltre, non consente alcune azioni su quelle partizioni.

Perché quello spazio libero (suppongo 124768 in cfdisk) è contrassegnato come inutilizzabile?

Penso che quelli siano i 116.20 GiB mostrati da gparted alla fine

Puoi avere solo fino a 4 partizioni primarie (contando la partizione estesa). Ciò deriva dal numero di slot alla fine dell'MBR. Dato che ne hai già 4, quello spazio non allocato alla fine non può essere partizionato (non puoi inserire una partizione logica lì, poiché puoi avere solo una singola partizione estesa e deve essere contigua).

Le tue (facili) opzioni per usare quello spazio sarebbero:

  • ext / dev / sda4 per usarlo
  • estendere / dev / sda3 per includere / dev / sda4 (e preferibilmente anche fino alla fine del disco) e rendere / dev / sda4 una partizione logica

Che cosa significa flag NC in cfdisk per la partizione di swap?

Citando la pagina man di cfdisk : "I flag possono essere Boot, che designa una partizione avviabile, o NC, che sta per" Non compatibile con DOS o OS / 2 "." Non è qualcosa di cui preoccuparsi


11

Cominciamo ...

  1. È contrassegnato come avviabile, in modo che Windows possa caricare da esso il proprio caricatore di avvio. Anche se Grub può essere caricato per primo, "caricherà a catena" nel caricatore di avvio di Windows, se Windows è selezionato dall'elenco. Perché il Bootloader di Windows funzioni, deve trovarsi su una partizione di avvio (qualcuno potrebbe ricontrollare questo per me? Non ho mai provato a rimuovere il flag di avvio su un'installazione di Windows 7 ...)

  2. SDA3 è in realtà una partizione estesa . Il disco è formattato come MBR , anziché GPT . Una delle restrizioni è che MBR può avere solo fino a 4 partizioni primarie . Per ovviare a questo, è possibile utilizzare una partizione primaria estesa, quindi creare più partizioni logiche più piccole all'interno (ottenendo più di 4 partizioni).

  3. A causa della limitazione dell'MBR, non può creare una quinta partizione primaria al di fuori della partizione Logica estesa . E 'normale. Se estendi la partizione estesa, dovresti essere in grado di creare una nuova partizione al suo interno e utilizzare il resto del disco.

  4. Dalle pagine man di cfdisk :

I flag possono essere Boot , che designa una partizione avviabile o NC , che sta per "Non compatibile con DOS o OS / 2".


Nessun problema. Stavo postando le stesse risposte e quella era l'unica che non hai individuato meglio di me. ;)
Ƭᴇcʜιᴇ007,

3

Le partizioni da 1 a 4 sono per convenzione "fisiche" (erano gli unici tipi disponibili nel passato). Quindi hai:

Device    Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT

/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

... sda1è fisico, Linux. sda2è fisico, di nuovo Linux. sda3è una partizione logica in cui possono risiedere altre partizioni (dal 5 in poi). Finalmente sda4è una partizione di Windows, contrassegnata come avviabile - penso che solo Windows se ne occupi più. GRUB2 si avvia volentieri qualunque partizione desideri, ma Windows vuole trovarsi su una partizione avviabile.

Ora, all'interno della partizione logica sda3, che cfdisknon viene visualizzata come tale, esistono l'equivalente di più partizioni fisiche. Solo in questo caso sda5.

E dal momento che sda3va dal settore 1258M al settore 1300M, ma sda5li utilizza solo fino a 1275M, i settori da 1275062272 a 1300236287 sono gratuiti (ma allocabili a sda6).

Infine, la tua sda4(l'ultima partizione fisica possibile - l'MBR ne contiene solo quattro) non si riempie fino alla fine del disco. Lascia circa 116Gb fuori. Quello spazio è inutilizzabile perché non puoi creare una partizione fisica per coprirla (la partizione estesa sda3non può crescere, perché la sua estensione è "bloccata" da sda4):

[SDA3...(sda5)...| FREE    ][...sda4...][ UNREACHABLE SPACE ]end-of-disk

Soluzioni per recuperare lo spazio non disponibile

Nessuno indolore, temo. A seconda della geometria, è possibile eliminare sda4e annotare i suoi confini. Quindi crescere sda3per includere l'intero disco (stesso inizio, 1258291200, ma finire fino alla fine del disco), oppure eliminarlo e ricrearlo con lo stesso inizio e la fine massima. Ora puoi creare una partizione sda6all'interno sda3e farla terminare nel cilindro appena prima del settore 1300236288. Questo occuperà lo spazio libero attualmente rimasto nell'esistente sda3. Alla fine crei una partizione all'interno sda3, e lo sarà sda7, dicendo al sistema che si estende da 1300236288 a 1709836287 ed è di tipo 7.

Se non formattate quella partizione, il contenuto rimarrà così com'è ed è una partizione Windows valida. È

Naturalmente se le cose vanno male, perdi tutti i tuoi dati. Le partizioni fisiche (come quella di Windows ora è sda4) e le partizioni fisico-logiche (come accadrebbe una volta sda7) non si mescolano necessariamente; alcuni strumenti si rifiuteranno di crearli. Suggerirei di fare un test su un disco virtuale della stessa dimensione, creato all'interno di un file sparse (il file stesso sarebbe in realtà solo pochi gigabyte) o su un disco esterno.

Un altro modo, forse più sicuro, è quello di eliminare sda5(è solo scambiare) e sda3spostare i sda4parametri in sda3(questo potrebbe implicare la cancellazione sda4e la ricostruzione sda3con i vecchi sda4parametri), e questo lascerà lo sda4slot libero (e un "buco" nel mezzo del disco). La maggior parte dei BIOS consente tabelle di partizione fuori sequenza. Anche in questo caso non dovrebbe essere necessario copiare nulla. sda4ora diventa sda3e rimane una partizione fisica, quindi la sua geometria dovrebbe concordare meglio con le ipotesi di uno strumento di partizionamento.

Ovviamente il modo consigliato e più sicuro (e più lento) di tutti è quello di eseguire il backup di tutte le partizioni, riformattarle tutte e ripristinarle dopo averle "riposizionate" correttamente, con la partizione estesa per ultima e occupando l'intero disco rigido rimanente. Questo eliminerà lo spazio libero all'interno di sda3 e recupererà lo spazio non disponibile alla fine, senza rischi (se il backup viene eseguito correttamente - controllalo dopo il backup. Una volta ho eseguito il backup su un disco esterno difettoso, che è morto su di me su ripristinare. Non è stato affatto divertente).


0

Oltre a quanto già detto sul significato di tutto ciò, penso che la soluzione più indolore sarebbe quella di avere lo spazio di swap nella grande area alla fine e di aggiungere lo spazio vuoto nel mezzo al tuo /home.

Per farlo, devi

  • elimina il file di scambio non appena non viene utilizzato e anche la partizione estesa che lo contiene
  • estendi il tuo sda2per includere lo spazio vuoto completo dopo di esso (dovrai eliminarlo e ricrearlo).
  • ricrea la partizione estesa per sedersi dopo sda3e usala per contenere tutte le partizioni che vuoi (beh, entro certi limiti).

Ciò è più semplice grazie cfdiskalla gestione dinamica della partizione estesa. Ma fai attenzione a sda2mantenere la LBA iniziale, altrimenti perderai i suoi contenuti.

Dopo aver esteso le dimensioni della partizione, è necessario ridimensionare il file system incluso per sfruttare tutto lo spazio.

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.