Я работаю над встроенной системой, которая работает на Linux. Чтобы уменьшить время загрузки продукта (это IP-камера), я бы хотел, чтобы уменьшил размер корневой файловой системы. У меня уже есть функциональная корневая файловая система, и в настоящее время я вручную удаляю порции и вижу, будет ли монтировать корневую файловую систему. Существует ли более логичный подход к уменьшению размера файловой системы, чем текущий метод проб и ошибок. Обновлено с дополнительной информацией.: Исходная файловая система, используемая в целевой среде, представляет собой общую файловую систему, используемую для нескольких встроенных продуктов в нашей организации. Я хочу разбить файловую систему на минимальный минимум, необходимый для запуска моего конкретного продукта .i.e IPNetCam. Я хочу знать, есть ли какие-либо методы профилирования. Шляпа может определить точный набор файлов, необходимых для загрузки и запуска определенного приложения.Оптимизация размера корневой файловой системы встроенной системы Linux
ответ
Один из способов списка файлов, используемых в вашей операционной системе и ее применение были бы:
- очереди на флаге ATIME в файловой системе (если еще не установлено)
- перезагрузки
- после ваше приложение работать достаточно долго, используйте Atime, чтобы выяснить, какие файлы были доступны после последней загрузки:
# last reboot | head -1
reboot system boot 2.6.35-30-generi Sun May 20 10:08 - 10:48 (00:40)
# touch -d "2012-05-20 10:07" /tmp/ref
# find/-xdev -anewer /tmp/ref > /tmp/usedFiles
Конечно, этот метод игнорирует файлы, которые не доступны в вашем прогоне, но все же необходимо в редких или исключительных ситуациях. Вам также нужно будет добавлять файлы, непосредственно прочитанные загрузчиком или ОС на ранних стадиях, когда к файловой системе обращаются в режиме только для чтения.
Кроме того, нет необходимости запускать вторичный процесс (в данном случае - 'head'). Вы можете просто запустить: 'last reboot -1' – teotwaki
' last -1 reboot' все равно выдаст две дополнительные строки, поэтому я предпочитаю держать единственное, что меня интересует с 'head -1'. – jlliagre
@JoshSanford Спасибо за редактирование! – jlliagre
Если вы еще этого не сделали, вы должны использовать сжатую файловую систему, такую как SquashFS. Это значительно уменьшит размер загрузочного образа.
- 1. Оптимизация файловой системы (ext3)
- 2. Версия корневой файловой системы в Linux
- 3. Архитектура файловой системы Linux
- 4. создание Docker контейнера из корневой файловой системы
- 5. Исследование размера блока файловой системы
- 6. Перемещение файловой системы root linux и изменение размера ее раздела
- 7. Нужна ли Linux для записываемой файловой системы
- 8. Размер блока файловой системы операционной системы?
- 9. Нужно улучшить производительность Linux для встроенной системы
- 10. Проверка производительности файловой системы
- 11. Размер блока файловой системы
- 12. Не удалось смонтировать корневой файловой системы на zedboard
- 13. экспериментальная ошибка файловой системы
- 14. Объяснение файловой системы hadoop
- 15. Переносимость файловой системы Clojure
- 16. buildroot using external toolchain - создание корневой файловой системы
- 17. Инструменты тестирования файловой системы
- 18. Diff структура файловой системы?
- 19. Обход файловой системы fat32
- 20. Крюковые функции для файловой системы Linux
- 21. Локализация файловой системы Linux и перехват syscall
- 22. Ограничение использования файловой системы в Linux
- 23. Linux без файловой системы sysfs/debugfs
- 24. Прогулка файловой системы Linux/Unix с Java?
- 25. Родительские отношения дочерних элементов файловой системы Linux
- 26. Сделать образ диска файловой системы linux ext2?
- 27. Последнее изменение заголовка и файловой системы Linux
- 28. Приложение Linux в песочнице файловой системы
- 29. linux - как сравнить 2 блока файловой системы
- 30. Лучший вариант фильтра файловой системы Linux?
Размер файловой системы, вероятно, не является основным фактором при загрузке. Кроме того, проверка возможности монтирования файловой системы мало говорит о том, есть ли у вас компоненты, необходимые для запуска любых программ, которые необходимы системе. Главные вещи, на которые нужно обратить внимание, - это если ваша дистрибуция упаковывает тяжелые библиотеки, которые вам не нужны, различные дополнительные демоны (у вас может быть ваш ssh или веб-сервер, о котором вы не знали) или, что еще хуже, тестовые/демонстрационные программы. Такие вещи, как busybox, часто имеют конфигурацию, где вы можете включать/удалять различные функции. –
@ChrisStratton Встроенная система - это фиксированная функциональность (IP netcam), поэтому, если я смогу смонтировать rfs и запустить устройство, это должно быть хорошо. И пользователи не будут изменять его после развертывания. Я ищу вещи, которые нужно удалить, как вы упомянули. Я хочу знать, есть ли структурированный способ, который я могу сделать, чтобы выбрать только минимальный минимум, необходимый для корневой файловой системы. – Badri
@ChrisStratton. Файловая система будет мигать в NAND, скопирована в ОЗУ и установлена на устройстве. Таким образом, уменьшая общий размер корневой файловой системы, мы можем сократить время, необходимое для загрузки устройства (по времени загрузки я подразумеваю, что ядро появляется, приложение запускается, и IPNetcam готов к использованию) – Badri