LINUX.ORG.RU

Сборка initrd


0

0

Здравствуйте, помогите разобраться.
Пытался собрать вручную образ initrd но ничего не получилось,
подозрения на то что применяю команду cpio не с теми опциями.
Это выяснил клгда взял работающий образ, разархивировал его
при помощи команды gunzip название_образа, потом распаковал его
cpio -ic < название_образа.
Далее опять собрал его командами:
cd каталог_ранее_распакованного_образа
find . -depth -print | cpio -oc > ../название_нового_образа
cd ..
gzip -9 название_нового_образа
Потом скопировал его в boot прописал в загрузку и загрузиться не смог
написало что ядро не находит /init видимо при создании что то произошло с деревом каталогов или ещё что.

Файлы старого образа и нового по размерам одинаковые а вот по содержанию разные.

Но при распаковке нового образа всё нормально, всё одинаково с распакованным старым работающим.

У меня есть подозрения что команду cpio надо применять с другими опциями, или какой то опции не хватает, но может я ошибаюсь, перепробовал разные опции и варианты но всё равно не работает.

Создавать образ при помощи dd и других команд не предлагайте, просто хочу разобраться в чём у меня ошибка.

За помощь заранее благодарен.

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

GArik спасибо!
Ключевой оказалась опция -H newc

Если запускать find с опциями -depth или -depth -print то не рабоиает
это странно, потому что опция -depth записывает в каталоги в которые запрещена запись, непонятно как быть если это будет нужно сделать.

Я сразу не догадался, можно было посмотреть скрипт mkinitrd с какими опциями они используют cpio там, догадался когда разместил этот вопрос.

Там они пользуются вот какой командой:

findall . | cpio -H newc --quiet -o > имя_образа

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

mkinitrd -c -k 2.6.35.4(версия ядра) -m mbcache:jbd:ext4(своя фс) -f ext4(своя фс) -r /dev/sda3(раздел на котором boot)

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