Как узнать, является ли раздел ext2, ext3 или ext4?

121

Я просто отформатировал материал. Один диск я форматирую как ext2. Другой я хочу отформатировать как ext4. Я хочу проверить, как они работают.

Теперь, как мне узнать тип файловой системы в разделе?

user4951
источник
2
Из любопытства, что вы пытаетесь проверить? Журнал против нет журнала? Для справки: вы можете работать с ext4 в режиме без журнала и при этом пользоваться всеми другими новыми функциями.
zacharyalexstern
unix.stackexchange.com/questions/34623/…
Сиро Сантилли 新疆 '中心 法轮功 六四 事件

Ответы:

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:
parted
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"
crater2150
источник
7
+1: я убедился, что это дает правильный результат при монтировании ext2файловой системы с mount -t ext4. blkidне одурачен этим.
Уоррен Янг
Несмотря на свою ценность, это также работает для накопителей xfs, хотя, по-видимому, это blkidне так хорошо, как lsblkпри обнаружении несмонтированных накопителей (если нужно)
Хосе Диас-Гонсалес,
Спасибо! Команда file не работала, но это дало мне то, что мне было нужно.
Brain2000
Я должен был sudo 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
parted не установлен. Также диски еще не установлены.
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

harish.venkat
источник
2
Это имеет тот же недостаток, что и mountоснованный на h3rmiller ответ.
Уоррен Янг
3
h3rrmiller удалил свой ответ, поэтому для тех, у кого нет представителя, чтобы увидеть его сейчас, проблема в том, что, если вы говорите mount -t ext4о ext2файловой системе, df -Tотчеты ext4. То есть он просто читает то, что говорит таблица монтирования, а не смотрит на метаданные файловой системы, чтобы понять это.
Уоррен Янг
@Warren: Это потому , что это ext4 файловой системы в этом случае. Просто один с не так много функций.
Mattdm
@mattdm: Итак, когда вы размонтируете его ... это все еще файловая система ext4?
Уоррен Янг
@Warren: в некотором смысле все файловые системы ext2 также являются файловыми системами ext4, да. (Но, конечно, не в том смысле, в каком большинство людей имеют в виду.)
mattdm
10

Удивлен, но это уже не здесь. Не sudoтребуется:

lsblk -f

Freedom_Ben
источник
2
Если я запускаю это не sudoв FSTYPEколонке пустой.
Флюп
@Flup Я только что попробовал это сам, и он отлично работал без sudo. Столбец 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
LawrenceLi
источник
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
resultsway
источник
2
На какой системе? fdiskв системе, которую я использую в данный момент, показывает только тип раздела, а не тип файловой системы. Это означает , что не только не может это сказать разницу между ext2, ext3и ext4он также не может различить ReiserFS или XFS из них.
Уоррен Янг
+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 Win Recovery 68 Novell AF MacOS X HFS +
> 03 XENIX / usr 38 Theos 69 Novell B7 BSDI файлы *
> 04 DOS FAT-16 39 Plan 9 70 DiskSecure B8 Замена BSDI
> 05 Extended 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 DRDOSs FAT12
> 08 AIX fs 43 Linux DR 82 Linux swap C4 DRDOSs 09 AIX / Coherent 4D QNX 4.2 Pri 83 файлы Linux * C6 DRDOS> = 32M
> 0A OS / 2 Bootmgr 4E QNX 4.2 сек. 84 OS / 2 скрыто C7 HPFS Отключено
> 0B Win95 FAT-32 4F QNX 4.2 Ter 85 Linux доб. 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 или 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 Diag. 55 EZ-Drive 99 Mylex EE EFI GPT
> 14 OS / 2 скрыто 56 Золотой лук 9F BSDI EF EFI Sys
> 16 OS / 2 скрытых 5C Priam A0 NotebookSave F1 SpeedStor
> 17 OS / 2 скрыто 61 SpeedStor A5 FreeBSD F2 DOS 3.3+ сек
> 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     

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

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

Алан Кори
источник