После нечистого выключения на устройстве с SD-картой я вынул SD-карту fsck
в корневую файловую систему. Это привело к различиям в следующем:
e2fsck 1.43.1 (08-Jun-2016)
/dev/sdc2: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? no
Clear journal<y>? no
e2fsck: unable to set superblock flags on /dev/sdc2
Здесь я отвечал «нет» оба раза, но нет последовательности да / нет, которая не сразу приводит к одному и тому же результату.
Файловая система может быть смонтирована, и при случайном осмотре все в порядке; он также отлично работает на устройстве, и это корневая файловая система (на самом деле она оказалась не совсем хорошей, см. комментарии; tldr некоторые безвозвратно поврежденные каталоги).
Я dd
сделал раздел (8 ГБ) в файл, и попытался fsck на этом. Что интересно:
e2fsck 1.43.1 (08-Jun-2016)
plush.rootfs: recovering journal
Clearing orphaned inode 18290 (uid=0, gid=0, mode=0100644, size=34096)
Clearing orphaned inode 18270 (uid=0, gid=0, mode=0100644, size=38916)
Clearing orphaned inode 18250 (uid=0, gid=0, mode=0100644, size=1128076)
Clearing orphaned inode 11411 (uid=0, gid=0, mode=0100644, size=293108)
Setting free inodes count to 406127 (was 408580)
Setting free blocks count to 1305622 (was 1347486)
plush.rootfs: clean, 60209/466336 files, 604906/1910528 blocks (check after next mount)
Последующее, fsck
прошедшее очистку, изображение может быть смонтировано, а fsck -f
после этого также проходит.
Но файловая система на карте, из которой был создан необработанный образ блочной копии, все еще имеет ту же проблему - за исключением того, systemd-fsck
что во время загрузки регистрирует файловую систему как «чистую». Впоследствии, однако, правильное завершение работы, извлечение карты и повторная попытка fsck
из другого окна представляет ту же ошибку.
Всякий раз, когда оригинал монтируется на другом компьютере, примечания системного журнала:
kernel: EXT4-fs (sdc2): 4 orphan inodes deleted
kernel: EXT4-fs (sdc2): recovery complete
Так как у меня есть все резервные копии, я готов попробовать что угодно здесь. Я мог бы просто забыть об этом и перезаписать раздел из по-видимому фиксированного образа, но это не кажется очень удовлетворительным решением, так как это означает, что fsck загадочно потерпел неудачу в решении незначительной проблемы.
Я подозреваю, что это превратится в вопрос «запрос официальной документации», касающийся таких вещей, как необходимость в recovery_flag (или просто вопрос «Что это значит?»), Поэтому любые предложения в этом направлении приветствуются.
apt upgrade
). После этого он регистрирует нормальную загрузку - и systemd-fsck говорит «clean» (я это отредактирую), но попытка fsck вне этого контекста все равно не удалась.