Skąd mam wiedzieć, czy partycja to ext2, ext3 lub ext4?


121

Właśnie sformatowałem rzeczy. Jeden dysk I formatuje jako ext2. Drugi chcę sformatować jako ext4. Chcę przetestować ich działanie.

Skąd mam wiedzieć, jaki system plików znajduje się na partycji?


2
Z ciekawości, co próbujesz przetestować? Czasopismo vs. brak czasopisma? Dla przypomnienia, możesz używać ext4 w trybie bez dziennika i nadal korzystać ze wszystkich innych nowych funkcji.
zacharyalexstern

Odpowiedzi:


114

Jak powiedzieć, jaki rodzaj danych (jaki format danych) znajduje się w pliku?
→ Użyj filenarzędzia.

Tutaj chcesz poznać format danych w pliku urządzenia, więc musisz przekazać -sflagę, aby powiedzieć filenie tylko, że jest to plik urządzenia, ale spójrz na zawartość. Czasami potrzebujesz także -Lflagi, jeśli nazwa pliku urządzenia jest dowiązaniem symbolicznym. Zobaczysz takie dane wyjściowe:

# 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

Biorąc pod uwagę to przykładowe wyjście, pierwszy dysk ma jedną partycję, a drugi dysk ma dwie partycje. /dev/sda1jest systemem plików ext4, /dev/sdb1systemem plików ext2 i /dev/sdb2zawiera trochę przestrzeni wymiany (około 4 GB).

Musisz uruchomić to polecenie jako root, ponieważ zwykli użytkownicy nie mogą czytać bezpośrednio partycji dysku: w razie potrzeby dodaj sudoz przodu.


1
Wchodząc $ sudo file /dev/sda1, dostaję/dev/sda1: block special
heinrich5991

2
@ heinrich5991 „musisz przekazać flagę -s…”. Pokazuję polecenie file -s /dev/sd*- z sudoprzodu to znaczy sudo file -s /dev/sd*.
Gilles,

Och przepraszam, przeoczyłem to. :(
heinrich5991

2
nie działa dla rzeczy LVM: parted -l wydaje się działać lepiej
TiloBunt

1
@TiloBunt Zrób to file -sL /dev/mapper/foo-barza pomocą -Lflagi, aby wyłuskać dowiązanie symboliczne.
Gilles

65

Inną opcją jest użycie blkid:

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

To rozpoznaje większość typów systemów plików i rzeczy takie jak zaszyfrowane partycje.

Możesz także wyszukiwać partycje danego typu:

# 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: Sprawdziłem, że daje to poprawny wynik podczas montowania ext2systemu plików za pomocą mount -t ext4. blkidnie daje się oszukać.
Warren Young,

Na co jej wartości, to pojawia się również do pracy dla napędów XFS choć najwyraźniej to blkidnie jest tak wielka, jak lsblkto na wykrywanie dysków odmontowanych (jeśli trzeba)
Jose Diaz-Gonzalez

Dzięki! Polecenie pliku nie działało, ale dało mi to, czego potrzebowałem.
Brain2000

musiałem sudo blkid / dev / sda1, inaczej otrzymuję puste wyniki
jokab

41

Możesz użyć 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)

Źródło


1
parted nie jest zainstalowany. Również napędy nie są jeszcze zamontowane.
user4951

1
@JimThio Zakładam, że byłeś w stanie go zainstalować? Powinieneś być w stanie to zrobić, po prostu wykonując sudo apt-get install parted(lub gparted), jeśli korzystasz z Ubuntu lub innej pochodnej debiana.
Karthik T

2
+1: Sprawdziłem, że daje to poprawny wynik podczas montowania ext2systemu plików za pomocą mount -t ext4. partednie daje się oszukać.
Warren Young,

Chociaż nie jest to najbardziej uprzywilejowana odpowiedź, tej właśnie faktycznie używam. Nie muszę też określać urządzenia.
user4951

Ponieważ nie jest to najlepsza odpowiedź: partycja może być oznaczona grub jako ext2 i zawiera system plików ext4 (a następnie zostanie zamontowany jako ext4 z mount -t auto)
Basile Starynkevitch

15

Jeszcze innym sposobem, skoro wiesz, że masz jakiś gust ext?, jest sprawdzenie listy funkcji systemu plików:

# tune2fs -l /dev/sda1 | grep features

Jeśli na liście zobaczysz:

  • extent - to ext4
  • nie extent, ale has_journal- to ext3
  • ani extentani has_journal- to ext2

Odpowiedzi partedi blkidsą lepsze, jeśli chcesz, aby te heurystyki były uruchamiane automatycznie. (Odróżniają także kontrole funkcji.) Mogą również identyfikować ext?systemy inne niż pliki.

Ta metoda ma tę zaletę, że pokazuje różnice na niskim poziomie.

Ważne jest, aby zdać sobie sprawę z tego, że te trzy systemy plików są kompatybilne w przód, a do pewnego stopnia również wstecznie. Późniejsze wersje po prostu dodają funkcje do starszych.

Zobacz HOWTO ext4 , aby uzyskać więcej informacji na ten temat.


10

spróbuj użyć df -Tsee man, dfaby uzyskać więcej opcji. Jeszcze jeden sposób, który znalazłem tocfdisk


2
Ma to tę samą słabość, co mountodpowiedź oparta na h3rmiller .
Warren Young,

3
h3rrmiller usunął swoją odpowiedź, więc dla tych, którzy nie mają przedstawiciela, mogą ją teraz zobaczyć, problem polega na tym, że jeśli powiesz mount -t ext4w ext2systemie plików, df -Traporty ext4. Oznacza to, że po prostu czyta to, co mówi tabela montowania, a nie patrzy na metadane systemu plików, aby to rozgryźć.
Warren Young,

@Warren: W tym przypadku jest to system plików ext4. Tylko jeden z niewielu funkcji.
mattdm

@mattdm: Więc kiedy go odmontowujesz ... czy nadal jest to system plików ext4?
Warren Young,

@Warren: w pewnym sensie wszystkie systemy plików ext2 są również systemami plików ext4, tak. (Ale oczywiście nie w tym sensie, że większość ludzi ma na myśli.)
mattdm

10

Zaskoczony, że już tu nie ma. Nie sudowymagane:

lsblk -f


2
Jeśli uruchomię to bez sudotej FSTYPEkolumnie jest puste.
Flup

@ Flup Właśnie spróbowałem ponownie i działało idealnie bez sudo. Kolumna FSTYPE została w pełni wypełniona. Czy może być jakaś rozbieżność między naszymi systemami?
Freedom_Ben

@Flup - musisz używać Debiana / Ubuntu lub pochodnych ... Są znani z robienia czegoś (a może nie robienia czegoś, nie wiedziałbym), a końcowym rezultatem jest to, że potrzebujesz uprawnień roota, aby wyświetlić niektóre lsblkkolumny. .
don_crissti

4

użyj opcji -T, aby wydrukować typ systemu plików

[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 wyświetli listę

Stosowanie:

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

2
W jakim systemie? fdisk, w systemie, którego aktualnie używam, pokazuje tylko typ partycji, a nie typ systemu plików. Oznacza to, że nie tylko nie można go odróżnić ext2, ext3i ext4to również nie można dostrzec ReiserFS i XFS z nich.
Warren Young,

+1 za wysiłek. Zrobiłem fdisk przed zadaniem tego pytania. Podtrzymuj punkty.
user4951

1

Oto przydatny oneliner, aby uzyskać typ systemu plików:

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

Przykładowy przebieg to:

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

0

Nie pokazało to odpowiedzi BSD, której szukałem. Miałem wrażenie, że te bajty tego typu były faktycznie zawarte w tablicy partycji na dysku, nie jestem tego pewien. Jest tylko typ 85 dla wszystkich typów rozszerzeń Linuksa, ale Linux w ogóle nie rozpoznaje typu A6 OpenBSD.

> 00 nieużywany 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 filey *
> 04 DOS FAT-16 39 Plan 9 70 DiskSecure B8 BSDI zamiana
> 05 Extended DOS 40 VENIX 286 75 PCIX BF Solaris
> 06 DOS> 32 MB 41 Lin / Minux DR 80 Minix (stary) C0 CTOS
> 07 NTFS 42 LinuxSwap DR 81 Minix (nowy) C1 DRDOS FAT12
> 08 AIX fs 43 Linux DR 82 Linux zamiana C4 DRDOS 09 AIX / Coherent 4D QNX 4.2 Pri 83 Pliki Linux * DRDOS C6> = 32M
> 0A OS / 2 Bootmgr 4E QNX 4.2 Sec 84 OS / 2 ukryty C7 HPFS Wyłączony
> 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 Extended LBA 52 CP / M lub SysV 8E Linux LVM E3 SpeedStor
> 10 OPUS 53 DM 93 Amoeba FS E4 SpeedStor
> 11 OS / 2 ukryty 54 Ontrack 94 Amoeba BBT EB BeOS / i386
> 12 Compaq Diag. 55 EZ-Drive 99 Mylex EE EFI GPT
> 14 OS / 2 ukryty 56 Złoty łuk 9F BSDI EF EFI Sys
> 16 OS / 2 ukryty 5C Priam A0 NotebookSave F1 SpeedStor
> 17 OS / 2 ukryty 61 SpeedStor A5 FreeBSD F2 DOS 3.3+ Sec
> 18 AST zamiana 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     

Formatowanie może zostać zniekształcone, jest to ładny stół o szerokości 70 kolumn. Jeśli jesteś na fdisku OpenBSD i trafiłeś? kiedy pyta o typ partycji, dostajesz to. Typy wyświetlają się podczas edytowania lub wyświetlania tabeli partycji.

Typy partycji na Wikipedii: https://en.wikipedia.org/wiki/Partition_type

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.