Разработчик Майк Бомбич (Mike Bombich) обнаружил в операционной системе macOS проблему, которая может привести к потере данных из-за некорректной обработки разреженных образов дисков APFS.
По словам разработчика, проблема затрагивает только «разреженные образы дисков», отформатированные в формате файловой системы APFS, представленной в macOS High Sierra в марте 2017 года.
Образ диска – формат файла, в котором хранится все содержимое и структура тома диска, например, USB, CD, DVD, жесткий диск или общий сетевой ресурс. Во многих приложениях для macOS используются образы дисков, особенно в программном обеспечении для резервного копирования, позволяя пользователям создавать копии других томов и быстро открывать резервные копии файлов.
Разреженный образ диска – тип файла образа диска, который может увеличиваться в ходе того, как пользователь добавляет в него все больше данных. Разреженные образы дисков могут работать только до уровня, на котором может использоваться базовый носитель, и они будут показывать доступное значение свободного места в зависимости от свободного места, которое осталось на жестком диске.
Проблема заключается в том, что разреженные образы дисков APFS не позволяют синхронизировать значение свободного дискового пространства образа диска с реальным значением дискового пространства с основного жесткого диска. Пользователь может ошибочно думать, что у него еще осталось свободное дисковое пространство, в то время как на самом деле жесткий диск будет заполнен и данные не сохранятся.
Как пояснил Бомбич, операционная система не только не предупреждает пользователей о заполнении жесткого диска, но и отображает ложную информацию. В частности, в течение короткого периода после выполнения операции записи macOS может получить доступ к файлу и даже показать файл с надлежащей контрольной суммой. Таким образом пользователь может думать, что операция копирования или перемещения пошла успешно. При этом после перезагрузки системы все артефакты скопированных файлов удаляются из памяти ОС, а сами файлы становятся поврежденными и недоступными.
Видео с демонстрацией проблемы: