Я бег небольшого uClibc
и busybox
встроенная система , основанную на x86 - устройстве. Я использую initramfs, но я также монтирую пользовательский ext3
каталог на компактном флэш-устройстве в режиме IDE, который я использую для хранения постоянных данных регистрации измерений, созданных пользовательским приложением c ++. Я выбрал ext3
файловую систему, так как она рекомендуется для обеспечения безопасности от потери питания при использовании дисков CF в режиме IDE в нескольких книгах, которые я прочитал (« Сборка встраиваемых Linux-систем » Карима Ягмура и « Embedded Linux Primer » Кристофера Халлинана). Это особенно важно, и данные являются критическими.
Однако из-за некоторых комментариев в моем предыдущем вопросе Путаница с тем, как восстановить поврежденные файлы ext3, если во время записи файла происходит сбой питания, может показаться, что на самом деле эта файловая система не дает гарантии безопасности от повреждения данных из-за питания потеря. Так что я хотел бы знать, если
- На
ext3
самом деле лучший выбор для этой установки? - Потеря питания во время операции записи на диск только повреждает часть данных, которые я периодически добавляю в файл, или это может повредить весь файл?
- Являются ли данные, которые не записываются в момент потери питания, полностью безопасными? В частности, есть ли риск, что мой
initramfs.cpio
файл также может быть поврежден? - Есть ли какой-либо метод, который я могу использовать в своем коде приложения для защиты данных (например, создание дополнительного раздела и запись моих данных для зеркального отображения изображений, чтобы всегда было 2 копии) - скорость не является реальной проблемой для моего приложения, поэтому дорогостоящие операции копирования приемлемы
Я видел и читал ответы на этот связанный вопрос: гарантируют ли журнальные файловые системы защиту от повреждения после сбоя питания? , но это не совсем охватывает некоторые вещи, которые меня смущают.
Я понимаю, что задаю много вопросов, но кажется, что, несмотря на чтение большого количества материала, у меня была принципиальная неспособность понять риски для моих данных в случае потери питания.