как я могу отличить ext3 и ext4 с помощью суперблочной структуры?

Есть ли какой-либо Флаг или некоторый байт в SuperBlock, от которого я могу различать, если это - ext4 или ext3 Файловая система? Я уже погуглил его и нашел некоторые внутренние структуры ext3 и ext4, но не могу найти мой ответ.

История ext2, ext3, и ext4
БЕЗ цифровой судебной экспертизы и блога реагирования на инциденты

2
задан 16 September 2016 в 14:51

1 ответ

Во-первых, давайте создадим два маленьких файла образа диска my-ext3 и my-ext4 и формат их в ext3 и ext4 соответственно, так, чтобы мы можем протестировать и видеть различия:

truncate -s 10M my-ext3
mkfs.ext3 my-ext3

truncate -s 10M my-ext4
mkfs.ext4 my-ext4

Теперь самый легкий способ проверить, что они, file команда:

$ file my-ext*
my-ext3: Linux rev 1.0 ext3 filesystem data, UUID=7ba99eb3-57c0-4d81-a2e7-529fdee64cbb (large files)
my-ext4: Linux rev 1.0 ext4 filesystem data, UUID=2308e0f8-443e-4164-b5ee-4810e9def008 (extents) (large files) (huge files)

Как Вы видите, это правильно определяет каждый тип файловой системы. Можно также исследовать файловые системы с fsck, путем монтирования их или использования некоторых инструментов разделения.

Однако как @Rinzwind указанный в его комментарии, всех ext2, ext3 и ext4 файловые системы являются в основном тем же, за исключением того, что более высокие изменения поддерживают больше функций файловой системы. Они непосредственно не говорят Вам, является ли это ext3 или ext4, но можно проверить, начиная с которой версии файловой системы каждая функция доступна. Если Вы находите кого-либо ext4- только функции, это должно быть ext4. Давайте взглянем на них.

Команда для исследования файловой системы dumpe2fs. Мы только интересуемся данными суперблока, таким образом, мы добавляем -h опция, иначе это лавинно разошлет консоль с тоннами inode информации также. Для нас только их "Функции файловой системы" интересны, поэтому давайте использовать grep фильтровать это:

$ dumpe2fs -h my-ext3 |& grep "^Filesystem features:"
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file

$ dumpe2fs -h my-ext4 |& grep "^Filesystem features:"
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Теперь мы имеем два списка функций файловой системы и можем проверить каждый из них для обнаружения, который является самым низким ext? пересмотр файловой системы, который поддерживает каждую функцию. Мы можем взглянуть на man ext4 для этого это содержит список со всеми ext4 функции файловой системы, их описание и с тех пор, когда они поддерживаются.

Я составил немного списка для Вас и заказал функции первым ext? пересмотр, который поддерживает их. Все функции от более старых изменений поддерживаются в более новых изменениях также:

  • ext2: ext_attr, filetype, sparse_super
  • ext3: dir_index, has_journal
  • ext4: 64bit, bigalloc, dir_nlink, extent, extra_isize, flex_bg, huge_file, meta_bg, mmp, uninit_bg

Существует больше функций, описанных в man ext4, но без информации, о которой изменения файловой системы поддерживают их: journal_dev, large_file, sparse_super2, quota, resize_inode
Вероятно, они - весь подарок с тех пор ext2, но я не на 100% уверен. Оставьте комментарий, если Вы знаете больше о кромке.

4
ответ дан 2 December 2019 в 02:17

Другие вопросы по тегам:

Похожие вопросы: