Как узнать, включена ли в вашем ядре функция ext4lazyinit?

perl -lane '$,=$";print grep { ! $h{$_}++ } @F'
1
29.01.2017, 21:47
2 ответа

Найдите в Google строку компиляции ядра (или проверьте это в "make menuconfig" исходного кода ядра). Она наверняка начинается с CONFIG_EXT4_FS_ . Эти флаги компиляции ядра вашего реально работающего ядра могут быть предоставлены в /proc/config.gz (но это также флаг компиляции ядра, поэтому он может быть включен или не включен в вашей системе), или вашим дистрибутивом в /boot/config-your-kernel-version (ваш дистрибутив может предоставлять или не предоставлять это).

Насколько я помню, это старая (по крайней мере, 5 лет) функция, поэтому ваше ядро, вероятно, поддерживает ее.

Онлайн изменение размера ext4 не работает с некоторыми очень тонко настроенными конфигурациями mke4fs (извините, я забыл, что именно - некоторые флаги ext4 fs делают это невозможным).

1
27.01.2020, 23:46

Я работал над ошибкой, связанной с этой функцией ext4. Насколько я могу судить из исходного кода ядра (linux 4.15.x ), в нем нет функции под названием «uninit _bg». Похоже, что он просто встроен в файловую систему ext4, хотя ключевая функция, о которой идет речь, называется «ленивая _itable _init». В этом коде есть несколько изменений, и, возможно, комментарии и документы должны соответствовать действительности.

При использовании mkfsвы можете добавить параметр -E lazy_itable_init=0, как говорили другие люди -Я не думаю, что этот атрибут сохраняется в метаданных файловой системы -запускается поток ядра для обработки отложенной инициализации или не зависит от того, установлен ли lazy_itable_init, но как только все группы блоков в ФС имеют установленный флаг ITABLE _ZEROED, тогда файловая система инициализируется, и на этом -т.е. метод инициализации перестает иметь какое-либо значение.

0
27.01.2020, 23:46

Теги

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