Як дізнатись, чи є розділ ext2, ext3 чи ext4?


121

Я просто відформатував речі. Один диск я форматую як ext2. Інший я хочу відформатувати як ext4. Я хочу перевірити, як вони працюють.

Тепер, як я можу знати тип файлової системи в розділі?


2
З цікавості, що ви намагаєтесь перевірити? Журнал проти жодного журналу? Для запису ви можете керувати ext4 в режимі без журналу і все ще користуватися всіма іншими новими можливостями.
zacharyalexstern

Відповіді:


114

Як визначити, який тип даних (який формат даних) є у файлі?
→ Використовуйте fileутиліту.

Тут ви хочете знати формат даних у файлі пристрою, тож вам потрібно -sвказати прапор, щоб fileне просто сказати, що це файл пристрою, а подивитися вміст. Іноді вам також знадобиться -Lпрапор, якщо ім'я файлу пристрою є символічним посиланням. Ви побачите такий результат:

# 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

З огляду на цей зразок виводу, перший диск має один розділ, а другий диск має два розділи. /dev/sda1є файловою системою ext4, /dev/sdb1є файловою системою ext2 і /dev/sdb2є деяким місцем обміну (близько 4 ГБ).

Ви повинні запустити цю команду як root, тому що звичайні користувачі можуть не читати розділи диска безпосередньо: якщо потрібно, додайте sudoспереду.


1
Входячи $ sudo file /dev/sda1, я отримую/dev/sda1: block special
heinrich5991

2
@ heinrich5991 "Вам потрібно передати прапор -s ...". Я показую команду file -s /dev/sd*- з sudoпопереду, це sudo file -s /dev/sd*.
Жиль

Пробачте, я це не помітив. :(
heinrich5991

2
не працює для речей LVM: розлучився-я, здається, працює краще
TiloBunt

1
@TiloBunt Зробіть це file -sL /dev/mapper/foo-bar, щоб -Lпрапор знеструмити символьне посилання.
Жиль

65

Іншим варіантом є використання blkid:

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

Це розпізнає більшість типів файлової системи та інше, як зашифровані розділи.

Ви також можете шукати розділи із заданим типом:

# 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: Я перевірив, що це дає правильний результат при монтажі ext2файлової системи з mount -t ext4. blkidце не обдурить.
Воррен Янг

Наскільки це варте, це також здається, що він працює для xfs-дисків, хоча, мабуть, blkidце не так добре, як lsblkпри виявленні відключених накопичувачів (якщо вам потрібно)
Хосе Діас-Гонсалес

Дякую! Команда файлів не працювала, але це дало мені те, що мені потрібно.
Brain2000

мені довелося судо blkid / dev / sda1 інше я отримую порожні результати
jokab

41

Можна використовувати 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)

Джерело


1
розлучений не встановлений. Також приводи ще не змонтовані.
user4951

1
@JimThio Я припускаю, що ви змогли його встановити? Ви можете мати змогу отримати це, просто зробивши sudo apt-get install parted(або gparted), якщо ви перебуваєте на Ubuntu або будь-якому іншому похідному debian.
Karthik T

2
+1: Я перевірив, що це дає правильний результат при монтажі ext2файлової системи з mount -t ext4. partedце не обдурить.
Воррен Янг

Хоча це не найбільш схвалена відповідь, це я саме використовую. Також не потрібно вказувати пристрій.
user4951

Тому що це не найкраща відповідь: розділ може бути позначений grub-позначенням як ext2 і містить файлову систему ext4 (а потім був би змонтований як ext4 за допомогою mount -t auto)
Basile Starynkevitch

15

Ще один спосіб, оскільки ви знаєте, що ви відчуваєте деякий смак ext?, - це переглянути список функцій файлової системи:

# tune2fs -l /dev/sda1 | grep features

Якщо у списку ви бачите:

  • extent - це ext4
  • ні extent, але has_journal- це ext3
  • ні extentні has_journal- це ext2

partedІ blkidвідповіді краще , якщо ви хочете , щоб ці евристики працюють автоматично. (Вони також виявляють різницю і при перевірці функцій.) Вони також можуть визначати нефайлові ext?системи.

Цей метод має честь показати вам низькі відмінності.

Тут важливо усвідомити, що ці три файлові системи є сумісними вперед і, певною мірою, також сумісними назад. Пізніші версії просто додають функції поверх старих.

Дивіться ext4 HOWTO для отримання додаткової інформації про це.


10

спробуйте використати df -Tпобачити людину dfдля більше варіантів, але я знайшов ще один спосібcfdisk


2
Це така ж слабкість, як і mountвідповідь на основі h3rmiller .
Warren Young

3
h3rrmiller видалив свою відповідь, тому для тих, хто не має представника, бачити це зараз, проблема полягає в тому, що якщо ви скажете mount -t ext4у ext2файловій системі, df -Tзвітує ext4. Тобто, це просто читати те, що говорить таблиця монтування, не дивлячись на метадані файлової системи, щоб зрозуміти це.
Воррен Янг

@Warren: Це тому, що це файлова система ext4 у такому випадку. Тільки один з не багатьма функціями.
mattdm

@mattdm: Отже, коли ви його відключите ... це все-таки файлова система ext4?
Warren Young

@Warren: у певному сенсі всі файлові системи ext2 також є файловими системами ext4, так. (Але, звичайно, не в тому сенсі, що більшість людей має на увазі.)
mattdm

10

Дивно, що це вже не тут. Не sudoпотрібно:

lsblk -f


2
Якщо я запускаю це не sudoв FSTYPEколонці порожній.
Flup

@Flup Я просто спробував це знову, і він спрацював ідеально без судо. Стовпчик FSTYPE був повністю заповнений. Може бути деяка невідповідність між нашими системами?
Freedom_Ben

@Flup - ви повинні використовувати Debian / Ubuntu або похідні ... Вони відомі тим, що щось роблять (а може, і не робили чогось, я б не знав), і кінцевим результатом є необхідність кореневих привілеїв, щоб перелічити деякі lsblkстовпці .. .
don_crissti

4

використовувати -T варіант для друку типу файлової системи

[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 буде список

Використання:

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

2
За якою системою? fdisk, в системі, яку я зараз використовую, принаймні, відображається лише тип розділу, а не тип файлової системи. Це означає , що не тільки не може це сказати різницю між ext2, ext3і ext4він також не може розрізнити ReiserFS або XFS з них.
Warren Young

+1 за зусилля. Я зробив fdisk, перш ніж задавати це питання. Тримайте очки.
user4951

1

Ось корисний oneliner для отримання лише типу файлової системи:

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

Приклад запуску:

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

0

Це не показало відповіді BSD, яку я шукав. У мене склалося враження, що ці типи байтів фактично містяться в таблиці розділів на диску, не впевнені в цьому. Існує лише тип 85 для всіх типів Linux extfs, але Linux також не розпізнає тип A6 OpenBSD.

> 00 невикористаних 20 Willowsoft 66 NetWare 386 A9 NetBSD
> 01 DOS FAT-12 24 NEC DOS 67 Novell завантаження AB MacOS X
> 02 XENIX / 27 Recovery Recovery 68 Novell AF MacOS X HFS +
> 03 XENIX / usr 38 Theos 69 Novell B7 BSDI файли *
> 04 DOS FAT-16 39 План 9 70 DiskSecure B8 BSDI своп
> 05 Розширений DOS 40 VENIX 286 75 PCIX BF Solaris
> 06 DOS> 32MB 41 Lin / Minux DR 80 Minix (стара) C0 CTOS
> 07 NTFS 42 LinuxSwap DR 81 Minix (новий) C1 DRDOS FAT12
> 08 AIX fs 43 Linux DR 82 Linux своп C4 DRDOS 09 AIX / Coherent 4D QNX 4.2 Pri 83 Linux файли * C6 DRDOS> = 32M
> 0A OS / 2 Bootmgr 4E QNX 4.2 Sec 84 OS / 2 прихований C7 HPFS вимкнено
> 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 або SysV 8E Linux LVM E3 SpeedStor
> 10 OPUS 53 DM 93 Amoeba FS E4 SpeedStor
> 11 OS / 2 приховано 54 Ontrack 94 Amoeba BBT EB BeOS / i386
> 12 Compaq Діаг. 55 EZ-Drive 99 Mylex EE EFI GPT
> 14 OS / 2 прихований 56 Золотий лук 9F BSDI EF EFI Sys
> 16 ОС / 2 приховані 5C Priam A0 НоутбукЗберегти F1 SpeedStor
> 17 OS / 2 приховано 61 SpeedStor A5 FreeBSD F2 DOS 3.3+ Sec
> 18 AST своп 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     

Форматування може бути збитим, це приємна таблиця завширшки 70 стовпців. Якщо ви знаходитесь у fdisk OpenBSD і натискаєте? коли він запитує тип розділу, це те, що ви отримуєте. Типи відображаються під час редагування або переліку таблиць розділів.

Типи розділів у Вікіпедії: https://en.wikipedia.org/wiki/Partition_type

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.