Применение инкрементных исправлений к тому ubifs

Чтобы обновить том ubifs, заменив его совершенно новым содержимым, можно использовать ubiupdatevol из mtd-utils:

ubiupdatevol /dev/ubiX_Y /path/to/ubifs.img

Есть ли способ применить патч к тому ubifs вместо замены всего содержимого? Например, примените только двоичный diff ч/б ubifs_base.img и ubifs_dest.img к /dev/ubiX_Y.


person sg1993    schedule 05.06.2018    source источник


Ответы (1)


Я не думаю, что вы можете сделать это. Информация о записи тома UBI с чередованием секторов флэш-памяти, чтобы избежать постоянной записи одних и тех же блоков. ИМХО, лучший способ предоставить частичное обновление для вашего тома - это применить tarball поверх существующей файловой системы и использовать скрипт для удаления ненужных файлов или с помощью диспетчера пакетов.

person DavidP    schedule 27.06.2018
comment
Спасибо за ваше предложение. На самом деле, обновление отдельных файлов/исполняемых файлов из архива — это именно то, чем мы занимались до сих пор. Проблема возникает здесь: - person sg1993; 28.06.2018
comment
Здесь возникает проблема: я использую mkfs.ubifs для создания образа ubifs, который затем прошивается на устройстве nand. Но так как mkfs.ubifs заранее знает содержимое rootfs, достигается очень хорошее сжатие. При применении обновлений путем извлечения из zip/tar это сжатие уже не достигается (оно будет не оптимальным из-за сжатия на лету) и вскоре мы заполняем место на диске, что приводит к ошибкам ENOSPC. - person sg1993; 28.06.2018
comment
Я понимаю. Как я уже говорил, единственный способ, который я знаю, это полностью переформатировать раздел ubifs, извините. если ваш раздел доступен только для чтения (на нем нет журналов или данных о клиентах), вы, возможно, можете создать программное обеспечение, которое может применять diff, но вам нужно позаботиться о поврежденных блоках во флэш-памяти ... здесь начинается сложная часть. Если ваш раздел содержит данные о клиентах, я не знаю, как вы можете сделать разницу с вашей продукцией. даже специализированное программное обеспечение OTA не выполняет частичное обновление -› rauc - person DavidP; 29.06.2018