Недавно для встраиваемого проекта меня попросили эмулировать в Linux эффекты из Расширенный фильтр записи (EWF) Windows XP Embedded.
В частности, мне нужен своего рода EWF для:
Насколько я знаю, в Linux нет функции, аналогичной EWF, и он не записывает на диск столько, сколько Windows (см. этот ответ), но мой начальник попросил меня исследовать что-то, что могло бы обеспечить решение для обоих требований.
На данный момент я пробую это просто стратегия:
Любая идея / предложение?
Я использую урезанный Debian Lenny с разделами в формате Ext2 на архитектуре x86 (кстати, есть ли предложения по простой файловой системе с журналированием / COW, подходящей для этой задачи?).
Спасибо.
Решено, следуя отличным Как: построить систему Linux только для чтения.
Из одного из двух маленьких скриптов, создающих магию (использует aufs союз):
ro_mount_point="${rootmnt%/}.ro"
rw_mount_point="${rootmnt%/}.rw"
# Create mount points for the read-only and read/write layers:
mkdir "${ro_mount_point}" "${rw_mount_point}"
# Move the already-mounted root filesystem to the ro mount point:
mount --move "${rootmnt}" "${ro_mount_point}"
# Mount the read/write filesystem:
mount -t tmpfs root.rw "${rw_mount_point}"
# Mount the union:
mount -t aufs -o "dirs=${rw_mount_point}=rw:${ro_mount_point}=ro" root.union "${rootmnt}"
# Correct the permissions of /:
chmod 755 "${rootmnt}"
Результаты: система защищена, и приложения могут записывать свои данные (в ОЗУ).
Если я перезагружусь без «фиксации», все изменения в системе будут потеряны, но если мне нужно что-то, чтобы оставаться постоянным, я могу перемонтировать раздел для чтения и записи (на этот раз r / w означает «на диске», а не «в ОЗУ» ), выполните «фиксацию» и перемонтируйте раздел как доступный только для чтения.
Скрипты настолько элегантны, что я могу также переключаться между «защищенным» (для производства) или «незащищенным» (для разработки) режимами, выбирая его правильную помеченную запись в GRUB.