Удаление дублированных файлов в корневых файлах – ускорение загрузки и улучшение использования памяти

С Buildroot я делаю изображения для своего встроенного оборудования Linux. В основном я пытаюсь ускорить последовательность загрузки (и по пути снижения использования памяти), где я успешно пробовал много методов.

Что я хотел бы сделать : недавно я слышал об удалении дублированных файлов в каталоге (например, заменяя эти файлы символическими ссылками), и я хотел бы применить этот метод к моим корневым файлам

Окружение: С Buildroot я могу иметь много разных типов корневых форматов (cramfs, cpio, ext2 / 3/4 и т. Д.), rootfs.cpio создаются во время make как 1 (упакованный) файл (например, rootfs.cpio ). Теперь я действительно не знаю, как:

  • открыть изображение
  • удалять дублированные файлы (ну, я знаю, как удалить дублированные файлы вообще)
  • снова упакуйте rootfs, чтобы я все еще мог использовать его для флеш-записи и выполнять его на моем оборудовании

Возможно, это вообще невозможно. Я считаю, что, по крайней мере, при использовании статических библиотек, многие файлы могут быть заменены.

У кого-то есть идея?

Я не могу помочь с конкретным материалом buildroot (кроме того, что вам нужно либо смонтировать его, либо загрузить его перед удалением дубликатов, а затем создать новые rootfs из результирующей файловой системы), но удаление дубликатов вполне возможно. Наивный подход заключался бы в find / -type f -exec sha256sum {} + | sort > checksums.txt find / -type f -exec sha256sum {} + | sort > checksums.txt , прочитайте полученный файл строки за строкой, while read -r checksum path , сравните каждую контрольную сумму с предыдущей и удалите (или скопируйте ) дубликаты. Это не будет обрабатывать странные имена файлов, например, содержащие новые строки, но это не должно быть проблемой в вашем случае.

Я не вижу, как статические библиотеки входят в микс. Статические библиотеки не присутствуют в целевой корневой файловой системе с помощью Buildroot.

Вообще говоря, Buildroot пытается установить только то, что необходимо для цели, и я, честно говоря, сомневаюсь, что вы найдете много дублированных файлов там.