Perché le dimensioni della partizione e l'output df sono diversi?


16

Ho una partizione / dev / sda1.
L'utilità disco mostra che ha una capacità di 154 GB.
df -h mostra

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             123G  104G   14G  89% /
devtmpfs             1006M  280K 1006M   1% /dev
none                 1007M  276K 1006M   1% /dev/shm
none                 1007M  216K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

Perché i risultati sono diversi? Dove sono i 31 GB mancanti?


3
Pubblica l'output di fdisk -l /dev/sda(esegui come root).
Gilles 'SO- smetti di essere malvagio' il

2
Quale filesystem stai usando? Se è ext2 / 3/4, puoi usarlo tune2fs -l /dev/sda1per esaminarlo. Guarda il conteggio dei blocchi e le dimensioni dei blocchi e moltiplicali per ottenere le dimensioni del file system. Inoltre, fdisk -s /dev/sda1per ottenere la dimensione della partizione in blocchi da 1k. Moltiplicalo per 1024 per ottenere la dimensione in byte. Quel numero dovrebbe essere solo leggermente più grande del filesystem. Sulla mia partizione ext4 da 40 GB, è più grande di 3072 byte. Se il tuo filesystem è stranamente più piccolo, puoi provare a ridimensionarlo. Per ext2 / 3/4, utilizzare resize2fs /dev/sda1. Puoi farlo mentre usi normalmente il computer.
penguin359,

@Gilles sudo fdisk -l / dev / sda shows (sto pubblicando solo la partizione sda1, perché altri non ci interessano). ID blocco avvio avvio blocchi sistema / dev / sda1 1 18706 150253568 83 Linux
xralf

@ penguin359 Ho un filesystem ext4. conteggio blocco = 32668162, dimensione blocco = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632. Sembra stranamente più piccolo. Posso ridimensionarlo senza perdita di dati? Che cosa ha causato che è più piccolo?
xralf,

@xralf: il ridimensionamento dovrebbe essere sicuro, non ho mai perso i dati nel farlo. Potrebbe essere leggermente più sicuro farlo su una partizione non montata, ad esempio con un cd live. Ma comunque, procurati prima un backup. Ottieni sempre un backup prima di eseguire importanti operazioni amministrative su sys.
Faheem Mitha,

Risposte:


25

Un motivo per cui le capacità della partizione possono differire è che parte dello spazio è riservato per il root, nel caso in cui le partizioni si riempiano. Se non c'è spazio riservato per root e le partizioni si riempiono, il sistema non può funzionare. Tuttavia, questa differenza è generalmente dell'ordine dell'1%, quindi non spiega la differenza nel tuo caso. Dalla pagina man di df

Se un argomento è il nome file assoluto di un nodo del dispositivo disco contenente un file system montato, df mostra lo spazio disponibile su quel file system anziché sul file system contenente il nodo del dispositivo (che è sempre il file system radice).

Quindi df mostra davvero la dimensione del tuo filesystem, che di solito è la dimensione del dispositivo, ma questo potrebbe non essere vero nel tuo caso. Il tuo filesystem si estende su tutta la tua partizione?

fa

resize2fs /dev/sda1

fare qualche differenza? Questo comando tenta di aumentare il file system per coprire l'intera partizione. Assicurati di avere un backup se provi questo.


>> Il tuo filesystem si estende su tutta la partizione? Credo di si. È ext4. <br> Cosa devo fare per il backup? Non ho alcun disco secondario per fare un backup più grande.
xralf,

@xralf: (Ok, questo è fuori tema in termini di questa domanda, ma ...) Se non si dispone di un backup, impostarne uno immediatamente. L'unica alternativa di un buon backup (e non è una buona alternativa) è l'uso sistematico di un sistema di controllo di versione distribuito e lo spinge in una posizione remota. Ma ovviamente, non puoi mettere tutto sotto controllo della versione, ad es. media. Per favore, scusa se sono un indaffarato.
Faheem Mitha,

@xralf: vorrei pubblicare i risultati di output nella domanda stessa, è più facile da vedere e leggere.
Faheem Mitha,

resize2fs è un'operazione abbastanza sicura, non è necessario eseguire il backup per esso (se si dispone di alimentazione stabile e si utilizza software stabile). A proposito, il conteggio dei blocchi riservati predefinito è del 5% per i filesystem ext *.
camper

@rvs: non è d'accordo sul backup. Hai ragione circa il 5% almeno su Debian. Stavo ricordando male. Ma non so se questo è standard in tutte le distribuzioni.
Faheem Mitha,

5

La differenza principale è che alcune cose dicono che 1 kilobyte è 1000 byte e altre dicono che 1 kilobyte è 1024 byte.

Gnome Disk Utility mostra la capacità usando 1 kilobyte = 1000 byte, perché i produttori di dischi descrivono le dimensioni del disco in questo modo. Ciò significa che la capacità del disco è vicina a 154.000.000.000 di byte .

D'altra parte, la maggior parte dei sistemi operativi dice 1 kilobyte = 1024 byte. A tutti gli strumenti piace dfe fdiskusa questa convenzione. Quindi 154.000.000.000 di byte / 1024/1024/1024 = 143,4 GB .

Come giustamente sottolinea jlliagre (e Gilles implica quando chiede il tuo fdiskoutput), l'utilità del disco ti sta dicendo le dimensioni dell'intero disco rigido. Ma /dev/sda1è una singola partizione sul tuo disco rigido. Ad esempio, il disco rigido probabilmente contiene alcune altre partizioni come una partizione da 4 a 8 GB per lo scambio (nota anche come memoria virtuale) e una partizione di avvio che in genere è di circa 100 MB.

Non hai pubblicato l'output di fdisk -l /dev/sda, quindi supponiamo che la tua partizione di swap sia di 8 GB. Ora siamo arrivati ​​a 135 GB .

Quindi, ci sono alcune altre cose che contribuiscono alla differenza.

Ad esempio, il file system utilizza parte della partizione del disco per i metadati. I metadati sono cose come nomi dei file, permessi dei file, quali parti della partizione appartengono a quali file e quali parti della partizione sono libere. Sul mio sistema, a tale scopo viene utilizzato circa il 2% della partizione. Supponendo che il tuo sia simile, ridurrebbe lo spazio libero a circa 132 GB .

Il file system può anche riservare spazio che può essere utilizzato solo dall'utente root. Sul mio sistema, è il 5% della partizione, quindi nel tuo caso significherebbe una capacità totale di circa 125 GB .

I numeri esatti dipendono dall'uso di ext2, ext3, ext4, fat, ntfs, btrfs, ecc. E dalle impostazioni utilizzate durante la formattazione della partizione.

Se stai usando ext2 o ext3, sudo tune2fs -l /dev/sda1puoi aiutare a capire dove sta andando lo spazio.


L'utilità disco mostra esattamente la capacità di 154 GB (153.859.653.632 byte).
xralf,

>> sudo tune2fs -l / dev / sda1 << Quali parametri mi dicono dove sta andando lo spazio?
xralf,

2

Probabilmente sono usati dagli inode. Alcuni importi potrebbero essere esauriti dall'MBR.


1
L'MBR non viene visualizzato come nel cilindro 0 (nemmeno nella prima partizione, che spesso inizia nel settore 2048). Tuttavia, ci sono copie del superblocco. Tuttavia, sono gli inode. Vedi anche: unix.stackexchange.com/questions/13547/… e i comandi "lsblk / dev / sdX" e "dumpe2fs -h / dev / sdX"
David Tonhofer

1

sda1 non è l'intero disco ma la sua prima partizione primaria. Potresti aver creato altre partizioni non montate che non vengono visualizzate nell'output di df o semplicemente che sda1 non riempie tutto lo spazio utilizzabile per qualche motivo o che il filesystem non utilizza tutto lo spazio disponibile nella sua partizione.

fdisk -l ti dirà come appare la tua tabella delle partizioni.


Ovviamente. Stiamo parlando solo della partizione / dev / sda1, non dell'intero disco.
xralf,

Questo non era ovvio dalla tua domanda quando ti riferisci a un'utilità del disco senza mostrare il suo output. Dovresti modificarlo per chiarirlo. Sarebbe utile anche dire come hai creato il file system /.
jlliagre,

La parte rilevante dell'output dell'utilità del disco è "capacità della partizione sda1 = 154 GB".
xralf,

Modifica la domanda originale per chiarirlo.
jlliagre,
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.