Периодические проверки целостности файловой системы, вероятно, являются хорошей идеей. Выполняют ли их современные устройства Android?

Позвольте мне начать с предоставления вам некоторой общей справочной информации. Мой актуальный вопрос находится в самом низу этого поста.


Предыстория, часть 1: Повторы журналов и проверки согласованности.

Предположим, что ваше устройство Android использует файловую систему ext4 для внутреннего хранилища и файловую систему FAT32 для съемного хранилища MicroSD (при его наличии).

В ext4 «воспроизведение журнала» — это операция частичной проверки и исправления файловой системы, которая обычно занимает не более нескольких секунд. ( Источник . ) Ядро Android воспроизводит журнал всякий раз, когда это необходимо. (На основе этого источника и этого источника .)

На ext4 полная проверка целостности файловой системы занимает больше времени. Для среднего устройства Android это занимает 12 секунд или около того. (По материалам этого источника .)

FAT32 — файловая система без журналов. Так что повторов в журнале нет. Есть только проверки на соответствие.


Предыстория, часть 2. Вероятно, для вашей ОС рекомендуется периодически выполнять проверки согласованности. Вот почему.

Менеджер программ Microsoft Киран Бангалор пишет , что в некоторых случаях файловая система может быть повреждена. В журналируемых файловых системах, таких как ext4, такие случаи чрезвычайно редки. На съемных картах MicroSD подозреваю, что такие случаи не так уж и редки.

Обычный способ проверить наличие таких повреждений — настроить ОС так, чтобы время от времени запускался инструмент проверки согласованности. К таким инструментам относятся chkdsk, ScanDisk, Apple Disk Utility fsckи другие.

Даже в хранилище ext4, встроенном в Android-устройство, периодические проверки согласованности, вероятно, являются хорошей идеей. Страница tune2fsруководства объясняет, почему:

Плохие диски, кабели, память и ошибки ядра могут повредить файловую систему, не помечая файловую систему как грязную или ошибочную. Если вы используете ведение журнала в своей файловой системе, ваша файловая система никогда не будет помечена как грязная, поэтому обычно она не будет проверяться. Ошибка файловой системы, обнаруженная ядром, [может] по-прежнему вызывать [проверку согласованности] при следующей перезагрузке, но может быть уже слишком поздно для предотвращения потери данных в этот момент.

(Обратите внимание, что на Android я думаю, что ошибка файловой системы, обнаруженная ядром, не приведет к проверке согласованности при следующей перезагрузке. Android в этом отношении странный.)


Предыстория, часть 3: вот что делают другие операционные системы.

Окна

Windows Vista и все более поздние версии Windows включают функцию самовосстановления NTFS . Поэтому Киран Бангалор пишет , что в настоящее время пользователям Windows больше не нужно выполнять периодические проверки согласованности. Он объясняет, что ОС «сообщит вам, когда… обнаружится повреждение».

Виндовс 10 Мобильный

Windows 10 Mobile, вероятно, является третьей по популярности ОС для смартфонов . Я думаю, что он использует NTFS. Так что, возможно, он также может выполнять самовосстановление NTFS.

ОС Х

Mac OS X запускается fsck_hfs -pпри каждой загрузке . Я не знаю, что это делает. См. страницу руководства .

линукс

Это правда, что некоторые разработчики ext4 говорят, что периодические проверки согласованности ext4 не особенно полезны. Но другие разработчики ext4 говорят, что эти проверки повышают безопасность и надежность.

На практике, когда файловая система помечена как ошибочная, Linux запускает проверку целостности при следующей перезагрузке. В других случаях современные дистрибутивы Linux никогда не выполняют автоматические периодические проверки согласованности. Те, кто хочет их, должны сами запланировать эти проверки.

Андроид

Стандартный Android включает инструмент проверки согласованности ext4 . Кроме того, он включает инструмент проверки согласованности , который работает со съемными картами MicroSD емкостью 32 ГБ или меньше (но может повредить карты большего размера). Наконец, ваше устройство может также включать или не включать fsck.exfatили exfatfsck, для проверки согласованности на съемных картах MicroSD емкостью 64 ГБ или более.

Но запускает ли ОС когда-либо автоматически какие-либо из этих инструментов?

iOS

Файловая система iOS обычно представляет собой HFSX или APFS и fsckвходит в состав ОС. Я не знаю, запускает ли iOS когда-либо автоматические проверки согласованности.


Вот мой вопрос.

Обратите внимание на стандартные ПЗУ, поставляемые с текущими устройствами Android.

Выполняют ли когда-либо такие стандартные ПЗУ периодические проверки согласованности либо на внутреннем устройстве хранения, либо (если применимо) на съемной карте MicroSD?

(PS В тех случаях, когда устройство корректно выключается и у него остается достаточно заряда батареи, можно запустить проверку согласованности при выключении, а не при запуске. Но для реализации такой функциональности требуются определенные инженерные усилия, поэтому разработчики операционных систем обычно этого не делают. не беспокойтесь. Интересно, что делает Android.)

(PPS Мне также интересно, существуют ли какие-либо смартфоны под управлением любой ОС, которые выполняют какие-либо рутинные периодические проверки согласованности. Опять же, пожалуйста, оставьте комментарии ниже.)

Ответы (1)

Еще не выпущенные версии Android

Недавно в исходный код Android были внесены некоторые улучшения.

Следующим отладочным выпуском стандартного Android будет 7.2 или 8.0. В какой-то будущей версии стандартного Android — либо в этом выпуске обслуживания , либо в более позднем выпуске — Android будет запускать команду fsck -f -y при каждом обычном завершении работы . Эта команда вызывает проверку согласованности во внутреннем хранилище, несмотря ни на что. (На основе этого источника и этого источника .)

Ура! Учитывая, что так мало пользователей Android когда-либо делали полные резервные копии (например, резервные копии Nandroid), я думаю, что это может быть полезным улучшением.

К сожалению, я до сих пор не знаю никаких доказательств того, что Android когда-либо проверяет какую-либо съемную карту MicroSD.

Приведенный выше ответ касается стандартного Android. Тем не менее, я благодарю команду CyanogenMod и команду LineageOS за косвенную помощь в обнаружении вышеуказанной информации.

Запуск проверок самостоятельно

Приведенные выше абзацы относятся к еще не выпущенным версиям Android.

Если вы используете более раннюю версию Android, вы можете вручную запустить проверку согласованности внутренней файловой системы, если хотите. Сначала вы должны размонтировать файловую систему, поэтому вы должны быть в режиме восстановления. Смотрите здесь .

Проверка карты MicroSD

Если у вас есть съемная карта MicroSD, вы обязательно должны проверять ее в определенных случаях, а также периодически. Если вам нужна дополнительная информация, см.:

Хм, а как это повлияет на скорость выключения/перезагрузки?
Перезагрузка не запускает проверку согласованности. Выключение займет, возможно, на 12 секунд больше. Общая надежность может быть повышена.
Полезно знать, хотя как человек, который прошивает (и, следовательно, использует нандроид) ежемесячно, я не совсем цель этого изменения...
Согласованный. Да, резервные копии важны. Цитируя Тэцуджина : «Любые данные, хранящиеся менее чем в трех разных местах, следует считать временными. Чем важнее данные, тем важнее множественность резервных копий».