Come faccio a sapere se una partizione è ext2, ext3 o ext4?


121

Ho appena formattato cose. Un disco formattato come ext2. L'altro che voglio formattare come ext4. Voglio testare come si comportano.

Ora, come faccio a sapere il tipo di file system in una partizione?


2
Per curiosità, cosa stai cercando di testare? Diario vs. nessun diario? Per la cronaca, è possibile utilizzare ext4 in modalità no journal, e beneficiare comunque di tutte le altre nuove funzionalità.
Zacharyalexstern,

Risposte:


114

Come faccio a sapere quale tipo di dati (quale formato di dati) è presente in un file?
→ Usa l' fileutilità.

Qui, vuoi conoscere il formato dei dati in un file di dispositivo, quindi devi passare il -sflag per dire filenon solo di dire che si tratta di un file di dispositivo, ma guarda il contenuto. A volte è necessario anche il -Lflag, se il nome del file del dispositivo è un collegamento simbolico. Vedrai un output come questo:

# file -sL /dev/sd*
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=63fa0104-4aab-4dc8-a50d-e2c1bf0fb188 (extents) (large files) (huge files)
/dev/sdb1: Linux rev 1.0 ext2 filesystem data, UUID=b3c82023-78e1-4ad4-b6e0-62355b272166
/dev/sdb2: Linux/i386 swap file (new style), version 1 (4K pages), size 4194303 pages, no label, UUID=3f64308c-19db-4da5-a9a0-db4d7defb80f

Dato questo output di esempio, il primo disco ha una partizione e il secondo disco ha due partizioni. /dev/sda1è un filesystem ext4, /dev/sdb1è un filesystem ext2 ed /dev/sdb2è un po 'di spazio di swap (circa 4 GB).

È necessario eseguire questo comando come root, poiché gli utenti ordinari potrebbero non leggere direttamente le partizioni del disco: se necessario, aggiungere sudoin primo piano.


1
Quando $ sudo file /dev/sda1/dev/sda1: block special
heinrich5991

2
@ heinrich5991 "devi passare la bandiera -s ...". Mostro il comando file -s /dev/sd*- con sudodavanti, questo è sudo file -s /dev/sd*.
Gilles,

Oh scusa, l'ho trascurato. :(
heinrich5991

2
non funziona per roba LVM: parted -l sembra funzionare meglio
TiloBunt,

1
@TiloBunt Fallo file -sL /dev/mapper/foo-bar, con la -Lbandiera per dereferenziare il collegamento simbolico.
Gilles,

65

Un'altra opzione è utilizzare blkid:

$ blkid /dev/sda1
/dev/sda1: UUID="625fa1fa-2785-4abc-a15a-bfcc498139d1" TYPE="ext2"

Questo riconosce la maggior parte dei tipi di file system e cose come le partizioni crittografate.

Puoi anche cercare partizioni con un determinato tipo:

# blkid -t TYPE=ext2
/dev/sda1: UUID="625fa1fa-2785-4abc-a15a-bfcc498139d1" TYPE="ext2" 
/dev/sdb1: UUID="b80153f4-92a1-473f-b7f6-80e601ae21ac" TYPE="ext2"

7
+1: ho verificato che questo dà il risultato corretto quando si monta un ext2filesystem con mount -t ext4. blkidnon è ingannato da quello.
Warren Young,

Per quello che vale, questo sembra funzionare anche per le unità xfs, anche se a quanto pare non blkidè eccezionale come lsblknel rilevare unità non montate (se necessario)
Jose Diaz-Gonzalez

Grazie! Il comando file non funzionava, ma questo mi ha dato ciò di cui avevo bisogno.
Brain2000,

ho dovuto sudo blkid / dev / sda1 altrimenti ottengo risultati vuoti
jokab

41

Puoi usare sudo parted -l

[shredder12]$ sudo parted -l

Model: ATA WDC WD1600BEVT-7 (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  8587MB  8587MB  primary   ext3            boot
 4      8587MB  40.0GB  31.4GB  primary   ext4
 2      40.0GB  55.0GB  15.0GB  primary   ext4
 3      55.0GB  160GB   105GB   extended
 5      55.0GB  158GB   103GB   logical   ext4
 6      158GB   160GB   1999MB  logical   linux-swap(v1)

fonte


1
parted non è installato. Inoltre, le unità non sono ancora montate.
user4951

1
@JimThio Presumo che tu sia riuscito a installarlo? Dovresti essere in grado di ottenerlo semplicemente facendo sudo apt-get install parted(o gparted) se sei su Ubuntu o qualsiasi altro derivato debian.
Karthik T,

2
+1: ho verificato che questo dà il risultato corretto quando si monta un ext2filesystem con mount -t ext4. partednon è ingannato da quello.
Warren Young,

Sebbene questa non sia la risposta più votata, questa è quella che uso effettivamente. Inoltre non è necessario specificare il dispositivo.
user4951

Perché non è la risposta migliore: una partizione potrebbe essere etichettata grub come ext2 e contiene filesystem ext4 (e quindi sarebbe montata come ext4 con mount -t auto)
Basile Starynkevitch

15

Ancora un altro modo, dato che sai che stai eseguendo un po 'di sapore ext?, è guardare l'elenco delle caratteristiche del filesystem:

# tune2fs -l /dev/sda1 | grep features

Se nell'elenco vedi:

  • extent - è ext4
  • no extent, ma has_journal- è ext3
  • extenthas_journal- è ext2

Le risposte partede blkidsono migliori se desideri che queste euristiche vengano eseguite automaticamente. (Indicano la differenza anche con i controlli delle funzionalità.) Possono anche identificare non- ext?filesystem.

Questo metodo ha la virtù di mostrarti le differenze di basso livello.

La cosa importante da capire qui è che questi tre filesystem sono compatibili in avanti e in qualche misura anche retrocompatibili. Le versioni successive aggiungono solo funzionalità oltre a quelle precedenti.

Vedi ext4 HOWTO per maggiori informazioni su questo.


10

prova a usare df -Tsee man dfper ulteriori opzioni ancora un altro modo che ho trovato ècfdisk


2
Ciò ha la stessa debolezza della mountrisposta basata su h3rmiller .
Warren Young,

3
h3rrmiller ha rimosso la sua risposta, quindi per coloro che non hanno il rappresentante per vederlo ora, il problema è che se dici mount -t ext4su un ext2filesystem, df -Triporta ext4. Cioè, sta solo leggendo ciò che dice la tabella di montaggio, non guardando i metadati del filesystem per capirlo.
Warren Young,

@Warren: Questo perché è un filesystem ext4 in quel caso. Solo uno con non molte funzionalità.
Mattdm,

@mattdm: Quindi quando lo smonti ... è ancora un filesystem ext4?
Warren Young,

@Warren: in un certo senso, tutti i filesystem ext2 sono anche filesystem ext4, sì. (Ma ovviamente, non nel senso che la maggior parte della gente intende.)
Mattdm

10

Sorpreso, questo non è già qui. Non sudorichiesto:

lsblk -f


2
Se eseguo questo senza sudola FSTYPEcolonna è vuota.
Flup,

@Flup L'ho appena provato di nuovo e ha funzionato perfettamente senza sudo. La colonna FSTYPE era completamente popolata. Potrebbe esserci qualche disparità tra i nostri sistemi?
Freedom_Ben,

@Flup - devi usare Debian / Ubuntu o derivati ​​... Sono famosi per fare qualcosa (o forse non fare qualcosa, non lo saprei) e il risultato finale è che hai bisogno dei privilegi di root per elencare alcune lsblkcolonne .. .
don_crissti

4

utilizzare l'opzione -T per stampare il tipo di file system

[root@centos6 ~]# df -T

Filesystem           Type  1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                     ext4    6795192 6367072     76276  99% /
tmpfs                tmpfs    639164       0    639164   0% /dev/shm
/dev/sda1            ext4     487652   28684    433368   7% /boot

2

fdisk -l elencherà

Uso:

 fdisk [options] -l <disk> list partition table(s)
 fdisk -s <partition>      give partition size(s) in blocks
 fdisk [options] <disk>    change partition table

2
Su quale sistema? fdisk, almeno sul sistema che sto utilizzando al momento, mostra solo il tipo di partizione, non il tipo di filesystem. Ciò significa che non solo non può che dire la differenza tra ext2, ext3e ext4, inoltre, non può discernere ReiserFS o XFS da questi.
Warren Young,

+1 per sforzo. Ho fatto fdisk prima di porre questa domanda. Mantieni punti.
user4951

1

Ecco un utile oneliner per ottenere solo il tipo di filesystem:

blkid -o export <partition-device> | grep '^TYPE' | cut -d"=" -f2

Una corsa di esempio è:

# blkid -o export /dev/sda1 | grep '^TYPE' | cut -d"=" -f2
vfat
# blkid -o export /dev/sda2 | grep '^TYPE' | cut -d"=" -f2
ext4

0

Questo non ha mostrato la risposta BSD che stavo cercando. Ho avuto l'impressione che questi byte di tipo fossero effettivamente contenuti nella tabella delle partizioni sul disco, non ne sono sicuro. C'è solo il tipo 85 per tutti i tipi di extfs Linux, ma Linux non riconosce affatto il tipo A6 di OpenBSD.

> 00 non utilizzato 20 Willowsoft 66 NetWare 386 A9 NetBSD
> 01 DOS FAT-12 24 NEC DOS 67 Novell AB MacOS X boot
> 02 XENIX / 27 Win Recovery 68 Novell AF MacOS X HFS +
> 03 XENIX / usr 38 Theos 69 Novell B7 BSDI filesy *
> 04 DOS FAT-16 39 Plan 9 70 DiskSecure B8 BSDI swap
> 05 DOS 40 VENIX 286 75 PCIX BF Solaris esteso
> 06 DOS> 32 MB 41 Lin / Minux DR 80 Minix (vecchio) C0 CTOS
> 07 NTFS 42 LinuxSwap DR 81 Minix (nuovo) C1 DRDOS FAT12
> 08 AIX fs 43 Linux DR 82 Linux swap C4 DRDOS 09 AIX / Coherent 4D QNX 4.2 Pri 83 file Linux * C6 DRDOSs = = 32M
> 0A OS / 2 Bootmgr 4E QNX 4.2 Sec 84 OS / 2 nascosto C7 HPFS Disbled
> 0B Win95 FAT-32 4F QNX 4.2 Ter 85 Linux ext. DB CPM / C.DOS / C *
> 0C Win95 FAT32L 50 DM 86 NT FAT VS DE Dell Maint
> 0E DOS FAT-16 51 DM 87 NTFS VS E1 SpeedStor
> 0F LBA 52 CP / M esteso o SysV 8E Linux LVM E3 SpeedStor
> 10 OPUS 53 DM 93 Amoeba FS E4 SpeedStor
> 11 OS / 2 nascosto 54 Ontrack 94 Amoeba BBT EB BeOS / i386
> 12 Compaq Diag. 55 EZ-Drive 99 Mylex EE EFI GPT
> 14 OS / 2 nascosto 56 Golden Bow 9F BSDI EF EFI Sys
> 16 OS / 2 nascosti 5C Priam A0 NotebookSave F1 SpeedStor
> 17 OS / 2 nascosto 61 SpeedStor A5 FreeBSD F2 DOS 3.3+ Sec
> 18 AST swap 63 ISC, HURD, * A6 OpenBSD F4 SpeedStor
> 19 Willowtech 64 NetWare 2.xx A7 NEXTSTEP FF Xenix BBT   
> 1C ThinkPad Rec 65 NetWare 3.xx A8 ​​MacOS X     

La formattazione può essere distorta, è una bella tabella larga 70 colonne. Se sei nel fdisk di OpenBSD e hai colpito? quando chiede il tipo di partizione questo è quello che ottieni. I tipi vengono visualizzati quando si modifica o elenca la tabella delle partizioni.

Tipi di partizioni su Wikipedia: https://en.wikipedia.org/wiki/Partition_type

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.