Какие важные файлы могут отсутствовать, которые необходимы для загрузки, но ранее к ним не обращались?
Я думаю, что речь идет не о "никогда ранее не доступном", а о том, что "их новое время доступа не может быть сохранено", потому что в целом некоторые этапы процесса загрузки читают файловую систему (ы) только для чтения.
Дело не в том, что что-то обходит функцию atime специально. Время доступа, которое не обновляется, является лишь побочным эффектом предварительного монтирования только для чтения (чтобы сохранить новое время, вам нужно записать его, верно?). Я ожидаю, что это особенно относится к initrd и vmlinuz в /boot , но корневая файловая система изначально также монтируется только для чтения:
Таким образом, ядро инициализирует устройства, монтирует корневую файловую систему, указанную загрузчиком как доступную только для чтения, и запускает Init (/sbin/init) ...
(источник)
Тогда все, что действует как Init (это systemd в Ubuntu), в какой-то момент перемонтирует файловую систему как чтение-запись. Для systemd:
systemd-remount-fs.service - это служба ранней загрузки, которая применяет параметры монтирования, перечисленные в fstab(5) к корневой файловой системе [...]
Поэтому, когда я читаю это ваше заявление: "При ранней загрузке не отображается черный экран", я предполагаю, что вы удалили некоторые файлы, к которым нужно обращаться только на этих ранних этапах загрузки только для чтения, когда atime не может быть обновлено ,
Еще один подводный камень (который, в конце концов, не имеет отношения к вашему делу, но это полезно знать):
От man 8 mount [выделение мое]:
atime
Не используйте функцию noatime, поэтому время доступа к inode определяется настройками ядра по умолчанию. См. Также описания параметров монтирования relatime и strictatime .
relatime
Обновить время доступа к индоду относительно времени изменения или изменения. Время доступа обновляется только в том случае, если предыдущее время доступа было раньше, чем текущее время изменения или изменения. (Аналогично noatime , но он не нарушает mutt или другие приложения, которым необходимо знать, был ли файл прочитан с момента его последнего изменения.)
Начиная с Linux 2.6.30, ядро по умолчанию соответствует поведению, обеспечиваемому этой опцией (если не указано noatime ), и опция strictatime требуется для получения традиционной семантики. Кроме того, начиная с Linux 2.6.30, время последнего доступа к файлу всегда обновляется, если ему более 1 дня.
Это условие "1 день" вместе с ОС, "установленной несколько дней назад", и с удалением файлов, "к которым не обращались в последние дни", - думаю, все это делает relatime умолчанию несоответствующим вашей проблеме Тем не менее, вы, возможно, подумали, что atime достаточно, чтобы время доступа обновлялось каждый раз; поэтому я подумал, что было бы хорошо объяснить это.