Почему debugfs не показывает crtime в наносекундах?

Две вещи: Вы могли вытереть флеш-карту сначала? Я получаю впечатление, лаконичное "ошибочное сообщение" чтения прибывает из более старых версий личинки.

Вы проверили содержание Вашего grub.cfg? GRUB_DISABLE_UUID_LINUX может не сделать то, что Вы хотите, где существует несколько дисков (это передаст имя узла устройства). Я повторно выполнился бы update-grub с той прокомментированной строкой.

3
27.02.2016, 12:02
2 ответа

Он показывает метку времени (с точностью до наносекунд), но в шестнадцатеричном виде ; это поле после crtime: , например в вашем выводе 0x55b65ebc: 970fe7cc . Часть после двоеточия - это наносекунды.
Эта статья дает более подробную информацию и объясняет, как вычислить отметку времени / наносекунды. Так, например, чтобы преобразовать шестнадцатеричные значения в метку времени a la stat , вы можете запустить:

date -d @$(printf %d 0x55b65ebc).$(( $(printf %d 0x970fe7cc) / 4 )) +'%F %T.%N %z'
2015-07-27 19:39:24.633600499 +0300
3
27.01.2020, 21:14

Похоже, что debugfs еще не поддерживает печать субсекундной части (верхние 30 бит i_ x time_extra) отметки времени в формате на основе asctime . Из http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/tree/debugfs/debugfs.c :

if (is_large_inode && large_inode->i_extra_isize >= 24) {
        fprintf(out, "%s ctime: 0x%08x:%08x -- %s", prefix,
            inode->i_ctime, large_inode->i_ctime_extra,
            time_to_string(inode->i_ctime));
        fprintf(out, "%s atime: 0x%08x:%08x -- %s", prefix,
            inode->i_atime, large_inode->i_atime_extra,
            time_to_string(inode->i_atime));
        fprintf(out, "%s mtime: 0x%08x:%08x -- %s", prefix,
            inode->i_mtime, large_inode->i_mtime_extra,
            time_to_string(inode->i_mtime));
        fprintf(out, "%scrtime: 0x%08x:%08x -- %s", prefix,
            large_inode->i_crtime, large_inode->i_crtime_extra,
            time_to_string(large_inode->i_crtime));
3
27.01.2020, 21:14

Теги

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