Насколько точно ext2 совместима снизу вверх?

Если grep не требуется, одно простое решение - использовать для этого join :

$ join -1 1 -2 3 <(sort file1) <(sort -k3 file2)
Locus_1 3 3 Locus_40 etc_849
Locus_2 3 2 Locus_94 *
Locus_3 2 3 Locus_4 Locus_50 *

Объяснение :

  • join -1 1 -2 3 : объедините два файла, где в первом файле используется первое (и единственное) поле, а во втором файле - третье поле. Они печатаются, когда они равны.
  • <(sort file1) : join требует отсортированного ввода
  • <(sort -k3 file2) : ввод должен быть отсортирован по полю соединения (3-е поле здесь)
3
17.03.2018, 14:20
1 ответ

Это сильно зависит от того, как была отформатирована файловая система ext4. Некоторые новые функции ext4 (, например. extentsили64bit)не могут быть поняты более старыми драйверами ext2, и ядро ​​​​откажется монтировать файловую систему (, см., например, этот пост ). В общем, любая файловая система, отформатированная с помощью современного mke2fsс параметрами по умолчанию -t ext4, будет не монтироваться старым драйвером ext2, но если файловая система была первоначально отформатирована давным-давно, а затем обновлена ​​до ext4, он может по-прежнему монтироваться ext2, если ни одна из новых -специфических функций ext4 не включена.

Файловые системы ext2/3/4 отслеживают, какие функции используются с помощью флагов функций compat, rocompatи incompat. Эти функции обычно устанавливаются на время mke2fs, но иногда их можно изменить с помощью tune2fs. Если будет найдена неизвестная функция compat, ядро ​​смонтирует ее, но e2fsckоткажется ее проверять, потому что она может сделать что-то не так. Если обнаружена неизвестная функция rocompat, ядро ​​может смонтировать файловую систему только для чтения -, а любая неизвестная функция incompatпредотвратит монтирование файловой системы вообще (сообщение будет напечатано на /var/log/messagesв этом случае ).

Вы можете использовать debugfs -c -R features <device>для создания дампа функций, включенных в файловой системе, например:

# debugfs -c -R features /dev/sdb1
debugfs 1.42.13.wc5 (15-Apr-2016)
/dev/sdb1: catastrophic mode - not reading inode or group bitmaps
Filesystem features: has_journal ext_attr resize_inode dir_index filetype
needs_recovery dirdata sparse_super large_file huge_file uninit_bg dir_nlink

Хотя это не говорит вам, какие из них compat, rocompatили incompat. Если ваша версия debugfsне понимает какую-то новую функцию, она напечатает ее как I0400или что-то подобное.

3
27.01.2020, 21:21

Теги

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