LINUX.ORG.RU

Оптимизация initramfs в Debian

 ,


0

0

Debian — один из самых популярных современных дистрибутивов. Одним из его преимуществ является гибкость настроек, которой часто не хватает большинству бинарных дистрибутивов.

В статье показано, как штатными средствами Debian можно серьёзно оптимизировать образ initramfs, существенно увеличив скорость его загрузки.

Предлагаемые инструкции так же справдливы и для "потомков" Debian, в частности для столь популярного Ubuntu.

>>> Статья

Ответ на: комментарий от anonymous

херасе! у соседа-японца за 3сек вся система запускается! :)

slacker
()

Спасибо, хорошая статья.

snizovtsev ★★★★★
()
Ответ на: комментарий от slacker

> И вообще, на кой нужен initramfs на уже установленной системе?

позволяет использовать / на lvm, md-raid, нестандартных ФС, fа также используя UUID'ы/LABEL'ы, и даже FUSE ;)

anonymous
()
Ответ на: комментарий от slacker

>И вообще, на кой нужен initramfs на уже установленной системе?
+1 преспокойно живу без него. Правда splashа нету, ну и нафиг он нужен)) всёравно грузится быстро

Gorthauer ★★★★★
()
Ответ на: комментарий от anonymous

>позволяет использовать / на lvm, md-raid, нестандартных ФС, fа также используя UUID'ы/LABEL'ы, и даже FUSE ;)

Ну и как с помощью initramfs запустить LVM, Если LVM установлен в корневой раздел?

Вообще LVM на бинарных дистрибутивах нужен для уменьшения размера монолитной части ведра.

linux4ever
()
Ответ на: комментарий от linux4ever

> Ну и как с помощью initramfs запустить LVM, Если LVM установлен в корневой раздел?

Посмотрите как это делает гентушный initramfs, если ему скомандовать dolvm. Прекрасно заводит систему, даже если абсолютно всё живёт в LVM.

> Вообще LVM на бинарных дистрибутивах нужен для уменьшения размера монолитной части ведра.

Что за бред... Вы о каком LVM речь ведёте??

const86 ★★★★★
()
Ответ на: комментарий от linux4ever

> Ну и как с помощью initramfs запустить LVM, Если LVM установлен в корневой раздел?

скопировать /usr/share/initramfs-tools/hooks/lvm2 в /etc/initramfs-tools/hooks и сделать update-initramfs -u. ;)

также есть хук для рутового раздела на md-raid (mdadm) и другие.

Adjkru ★★★★★
()
Ответ на: комментарий от anonymous

>что там оптимизировать?

Например, внести какой-нибудь модуль в blacklist

AsphyX ★★★
()

Сделал по инструкции, время загрузки увеличилось в два раза и не загружается firmware для wi-fi. Нет уж, спасибо.

anonymous
()
Ответ на: комментарий от anonymous

>Сделал по инструкции, время загрузки увеличилось в два раза и не загружается firmware для wi-fi. Нет уж, спасибо.

У тебя наверное не Дебиан, в других дистрах оно не работает!

Sherak ★☆
()

>В конечном итоге если вдумчиво подойти к описанному выше - можно уменьшить размер сжатого образа в два-четыре раза, что позволит ускорить загрузку на несколько десятков секунд.

Полный бугагец :D У меня в Мандриве дефолтное ядро грузится за несколько сек а красноглазые дебианщеги борятся с десятками сек :D

anonymous
()

Что-то разницы в скорости не обнаружил.

ist76 ★★★★★
()

>MooSE

А что не IBM_dw?

Quasar ★★★★★
()

спасибо! просветлился.

anonymous
()
Ответ на: комментарий от anonymous

>> С нетерпением жду "Вышел новый релиз программы Debian GNU/Tweaker Pro"

Debian будет великим и гипертекстовым! =))) (с) всезнаюткто

Vitaly-KF
()

С поссылки:

> В конечном итоге если вдумчиво подойти к описанному выше - можно уменьшить размер сжатого образа в два-четыре раза, что позволит ускорить загрузку на несколько десятков секунд.

Что за 4.2 на моем ЛОРе? Если initramfs грузится дольше 1 секунды и работает (до pivot_root) дольше 5 то это или такое особое железо или что-то в консерватории совсем плохо.

anonymous
()
Ответ на: комментарий от anonymous

> Что за 4.2 на моем ЛОРе? Если initramfs грузится дольше 1 секунды и работает (до pivot_root) дольше 5 то это или такое особое железо или что-то в консерватории совсем плохо.

Расковырял бы ты initramfs Debian'а, да посмотрел бы ты что там внутри. Там реально есть что убирать. Даже бинарники для настройки раскладки клавиатуры запиханы в initramfs.

MooSE ★★★★
() автор топика
Ответ на: комментарий от anonymous

Для корня на md-raid initramfs не нужен

anonymous
()

> хуки fuse_utils И ntfs_3g явно лишние. Освободить initramfs от них можно следующим образом:

> apt-get purge fuse-utils ntfs-3g && apt-get autoremove --purge && update-initramfs -v -c -k `uname -r`


Я что-то не понял. Если для загрузки системы мне не нужен ntfs-3g, но после загрузки ядра понадобится, то чтоб облегчить initramfs, нужно

- перед переделкой initramfs удалить пакет fuse-utils ntfs-3g
- пересобрать initramfs
- снова установить fuse-utils ntfs-3g

так чтоли?


Как то это все по-ублюдски сделано.

xintrea
()
Ответ на: комментарий от anonymous

> Дебиановцы, наверное, арч ни разу не видели?

Им на юных велосипедоизобретателей смотреть и незачем, собственно.

anonymous
()
Ответ на: комментарий от xintrea

Просто автор статьи debian впервые увидел с неделю назад, видимо. Освоится, почитает документацию - все станет проще.

anonymous
()

>Дальше нам нужно создать список необходимых модулей. Самое простое решение тут - просто взять список уже загруженых модулей и использовать его.

Проделал опыт на Kubuntu 8.10(KDE4), хуками решил не заниматься, но изменил список загружаемых модулей (в соответствии с выводом lsmod), после чего наблюдал черный экран и отсутствие реакции на клавиши(хотя звук привтствия при входе в систему прозвучал!). Так что простые решения не всегда проходят... :)

Buy ★★★★★
()

Почему сразу нельзя сделать оптимизированно, чтобы без всякой оптимизации работало все быстро? Считаю вообще идею initramfs не сильно удачной. Можно просто грузить модули с помощью grub (или хотя бы запихать их в один файл безо всякой компресии, скриптов и командных оболочек).

chislennye_metody
()
Ответ на: комментарий от sv75

> А где важно время загрузки ядра, кроме как при пиписькомеряньи?

На десктопах нервных юзеров, которые за время загрузки системы успеют раза три разбить монитор. Правда, таким место не за компом, а в психушке. Но в любом случае, ждать несколько минут, пока загрузится система, - на это нужно огромное терпение. Вот потому и юзаю гибернацию, чтобы не ждать загрузку/выгрузку.

//Debian user, lenny, kernel 2.6.26

FieryVortex
()
Ответ на: комментарий от kss

> Чего уж там, можно сразу сделать ось GNU\GRUB

Она уже есть, только почему-то загрузчиком называется. А вы не знали?

FieryVortex
()

Да они обкурились (c)

Создавать список модулей командой

lsmod | tail -n +2 | sort | awk '{print $1;}' > /etc/initramfs-tools/modules

что может быть глупее? зачем в initrd пихать все модули, когда там должны находится только модули необходимые для начальной загрузки и доступа к диску для продолжения загрузки.

У меня в openSUSE в автоматически сгенерированном inird находятся следующие модули:

hwmon thermal_sys processor thermal ide-core amd74xx dock scsi_mod libata sata_nv ata_generic pata_amd ide-pci-generic fan reiserfs edd crc-t10dif sd_mod usbcore ohci-hcd uhci-hcd ehci-hcd ff-memless hid usbhid

То есть модули процессора, контроллеров sata и ide, файловой системы корня и usb. Все остальное прекрасно грузится с корневого раздела по мере надобности.

>Желающие могут сравнить размеры файлов /boot/initrd.img-* до и после этой команды и, так сказать, "почувствовать разницу"

кто сравнивал, опишите в чем разница? дебиана нет, а интересно.

HighwayStar ★★★★★
()
Ответ на: комментарий от xintrea

о каких хуках вообще речь идет в статье? я не спец в дебиане, но у себя ничего подобного не видел. При загрузке у меня монтируются ntfs-3g разделы, но ntfs-3g модуля в initrd у меня нет, он загружается из с корня

HighwayStar ★★★★★
()
Ответ на: комментарий от HighwayStar

кстати с подобным подходом "все модули в inird" как автор предполагает передавать модулям параметры для загрузки, те что записываются в /etc/modprobe.d/*

мне например надо передавать параметры для модуля saa7134

options saa7134 card=3 secam=d tuner=38

HighwayStar ★★★★★
()

Онанимы, наезжающие на Debian - неадекватны.
P.S. Arch user. 2.6.27.1eee by toofishes w/o initrd =)

anonymous
()
Ответ на: комментарий от HighwayStar

>>lsmod | tail -n +2 | sort | awk '{print $1;}' > /etc/initramfs->>tools/modules

Бред полнейший как и всё остальное, оптимизировать мб и надо, но не так... Афтар апстену или читай маны.

anonymous
()
Ответ на: комментарий от anonymous

+1 наезжать нужно на пионероавторов не знающих даже основ.

anonymous
()

реквестирую автора в этот тред

HighwayStar ★★★★★
()

Мдя... Красноглазая пионэрия добралась таки и до Дебиана.

Sherak ★☆
()

Драйвера для корня в ядре. initrd отсутствует. Так не катит?

tux2002
()
Ответ на: комментарий от FieryVortex

>Но в любом случае, ждать несколько минут, пока загрузится система, - на это нужно огромное терпение.

бОльшая часть времени загрузки десктопа - это загрузка сервисов и ДЕ. А теперь включи остатки мозга и попытайся понять, как экономия нескольких десятых долей секунды при загрузке ядра (которое и так грузится пару секунд) отразится на общем времени загрузки. То что Мусик ляпнул про десятки секунд - это феерический бред. Когда осознаешь эту глубокую мысль, можешь убиться апстену.

Sherak ★☆
()
Ответ на: комментарий от HighwayStar

>>Желающие могут сравнить размеры файлов /boot/initrd.img-* до и после этой команды и, так сказать, "почувствовать разницу"

>кто сравнивал, опишите в чем разница? дебиана нет, а интересно.

Я сравнил в Ubuntu 8.10. До "оптимизации" initrd весил 8 Мб, после - 7.7 Мб. Офигеть прям, какая оптимизация.

anonymous
()
Ответ на: комментарий от anonymous

В Мандриве 3,6 Мб без оптимизаций.

anonymous
()

Инфы на статью маловато. Попробую свою версию впихнуть в комментарий:

Разворачиваем: gzip -d < /boot/initrd-2.6.x.x.img | cpio --extract --verbose --make-directories --no-absolute-filenames

Выкидываем ненужное .....

Сворачиваем обратно: find . | cpio -H newc --create --verbose | gzip -9 > /boot/initrd-2.6.x.x.img

anonymous
()
Ответ на: комментарий от anonymous

И при каждом обновлении ядра проделывать это заново. Зашибись.

Автор статьи хоть ине слишком разбирается в теме, но хоть понимает, что делать такие вещи нужно средствами дистрибутива. Ибо автоматизация рулит.

anonymous
()
Ответ на: комментарий от anonymous

> Я сравнил в Ubuntu 8.10. До "оптимизации" initrd весил 8 Мб, после - 7.7 Мб. Офигеть прям, какая оптимизация.

Странный ты, анонимус, у меня до оптимизации было 7,7, после оптимизации на трёх разных машинах: 3,2, 4,1, 6,5. Но эти тачки абсолютно разные и решают аболсютно разные задачи.

MooSE ★★★★
() автор топика
Ответ на: комментарий от kss

> Чего уж там, можно сразу сделать ось GNU\GRUB

GRUB2 уже пилят вовсю, присоединяйтесь )

isden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.