4Debian.Info - Портал русскогоязычного сообщества Debian Карта сайта Контакты

Меню

Репозитории Debian

Скачать Debian

Установка Debian - Видео



Авторизация:

Новые статьи

Статьи в RSS

Новые комментарии

Новые уроки

Уроки в RSS


Вернутся к списку статей

Оптимизация initramfs под Debian (Linux)

Система Debian – один из самый популярнейших дистрибутивов, который является прародителем других систем, в частности - Mint, Ubuntu, Linux и пр. Особая популярность Debian получила благодаря своему простому, дружественному пользовательскому интерфейсу.
Однако здесь все же есть несколько минусов, желание разработчиков угодить каждому пользователю привела к тому, что не все элементы системы могут работать оптимально только по умолчанию. К примеру, достаточно упомянуть образ initramfs, который на диске занимает около десяти мегабайт, а содержит в себе основную часть модулей. Они в некоторых задачах просто не востребованы и занимаю собой только драгоценное пространство.
В этой статье мы тщательно рассмотрим, как можно оптимизировать и сгенерировать initramfs в системе Debian.
Для начала кратко о том, что же такое этот initramfs? Это обычная, временная файловая система, которая используется ядром в начале загрузки. Проще говоря, используя initramfs загрузчик загружается в память ядра, и начальная загрузка всей системы происходит именно из initramfs. Соответственно, тут понятно, что чем меньше лишнего будет в initramfs, тем быстрее система будет загружаться и требовать памяти на начальных этапах.
В этот момент стоит сделать пару уточнений:
  • Все описания ниже могут быть использованы не только для Debian, но и для других подобных систем;
  • Конечно, если пересобрать ядро вручную, то initramfs вообще может и не понадобится, но не всегда это удобно, да и не все захотят после очередного обновления заново пересобрать ядро. Поэтому, предлагается оптимизировать initramfs подручными средствами, представленные в дистрибутиве.
Сам образ initramfs назначается и создается программой update-initramfs. Рассмотреть, как это происходит, можно запустив командную строку:

bash:
  1. update-initramfs -v -c -k `uname -r`

Видно, что сначала прописываются модули, а потом только базовые утилиты. Дальше выполняются «хуки», которые и определяют в образ различные функции. К примеру, хук dmsetup способен добавить поддержку функциональности Device Mapper, а с применением хука fuse_utils могут использоваться файловые системы доступные через fuse.
Стоит отметить, что в образе initramfs не всегда подгружаются все модули, поэтому некоторые могут загрузиться позже, уже с самого жесткого диска. Главное чтобы те модули, которые состоят в стандартном наборе, позволяли добраться до жесткого диска.
Основные настройки которые видны в  update-initramfs находятся в /etc/initramfs-tools. Чтобы загрузить только нужные модули, следует изменить параметр MODULES находящийся в файле initramfs.conf, такого вида:
bash:
  1. #MODULES=most
  2. MODULES=list

Дальше создается перечень модулей, которые нам нужны. Список хранится в modules. Создавая его, мы получаем список уже загруженных модулей посредством lsmod, реализовано так:
bash:
  1. lsmod | tail -n +2 | sort | awk \'{print $1;}\' > /etc/initramfs-tools/modules

Потом старый initramfs удаляется и создается новый:
bash:
  1. update-initramfs -v -d -k `uname -r` && update-initramfs -v -c -k `uname -r`

Почувствовать разницу файла до и после команды можно просмотрев на /boot/initrd.img-*

Если с модулями разобрались, то можно переходить к хукам. Все хуки системы хранятся в /usr/share/initramfs-tools/hooks. Чтобы понять какой хук, за что здесь может отвечать, нужно проследить к какому пакету он принадлежит, получить список пакетов позволяет команда:
bash:
  1. find /usr/share/initramfs-tools/hooks/ -type f -exec dpkg -S \'{}\' \\;
Во время генерации образа initramfs у пользователя нет возможности указать перечень хуков, которые не нужны. Поэтому единственным решением остается убрать весь пакет с ненужным хуком. Однако следует помнить, что после обновления системы он будет автоматически создан заново.
Хуки, использующиеся udev или initramfs-tools лучше оставить без изменений, не трогать. Со всеми остальными можно разбираться индивидуально. Когда речь заходит о сервере, то вряд ли нужны пакеты для использования файловых систем, получить доступ, к которым можно через fuse. Получается, что хуки ntfs_3g и fuse_utils здесь явно не нужны, и мы смело от них избавляемся. Освобождается initramfs от таких хуков следующим правилом:
bash:
  1. apt-get purge fuse-utils ntfs-3g && apt-get autoremove --purge && update-initramfs -v -c -k `uname -r`

Когда речь идет о рабочей станции, то поддержка Device Mapper, бывает совершенно не востребована, за нее отвечает хук dmsetup, который входит в одноименный пакет, удаляем:
bash:
  1. apt-get purge dmsetup && apt-get autoremove --purge && update-initramfs -v -c -k `uname -r`

Стоит уделить внимание вопросу связанного с возможностью переброски образа после, каких либо изменений в его конфигурации. После удаления или установки новых пакетов меняющие initramfs, утилита dpkg сама вызывает update-initramfs и обновляет образ. Команда для запуска выглядит следующим образом:
bash:
  1. update-initramfs -u -k all

Индекс "-k" показывает на ядро ( в нашем случае все ядра), а опция "-u" показывает на обновление или пересоздание образа initramfs. В некоторых случаях при таком обновлении остается не нужный мусор в образе, поэтому лучше все создавать с нуля. Для этого используем команду:
bash:
  1. update-initramfs -c -k all

Получается, что вместо "-u" мы показали системе ключ "-c", который необходим для пересоздания образа с нуля. Иногда, целесообразно будет указать на ключ "-v", тогда во время создания образа будет прописываться вся информация о каких-либо действиях.
В результате, если все вдумчиво рассчитать и использовать команды, описанные выше, то можно уменьшить образ initramfs сжав его в два, а то и в четыре раза, что в конечном итоге позволит ускорить загрузку системы на десятки секунд.
Удачи вам и приятной работы!
4Debian.Info

Комментарии: Оптимизация initramfs под Debian (Linux)

Только авторизованные пользователи могут оставлять комментарии!

Авторизация или Быстрая регистрация



Яндекс.Метрика
4Debian.Info
При полной или частичной перепечатке текстов статей и публикаций гиперссылка на www.4debian.info обязательна. | "4Debian.Info" | © 2017