Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
playground:playground [11/09/2015 10:01] pashaplayground:playground [Дата неизвестна] (текущий) – внешнее изменение (Дата неизвестна) 127.0.0.1
Строка 1: Строка 1:
-^   **Создание livecd с существующей системы**   ^ +======Playground======
- +
-<note tip> +
-  *в статье описан один из способов создания livecd со своими настройками +
-  *aufs собиралась модулем ядра +
-  *все действия производились на [[https://ru.wikipedia.org/wiki/Salix_OS|Salix 14.1]] и от пользователя root +
-</note> +
-===Написано по:=== +
-  *[[http://www.linux-live.org/|скрипты для создания livecd]] +
-  *[[http://aufs.sourceforge.net/|файловая система для livecd]] +
- +
-===Общая картина состоит из двух этапов:=== +
----- +
-==1-ый этап:== +
-  - Создаем виртуальную машину, на которой собираем ядро с необходимыми патчами. +
-  - Собираем модуль ядра и утилиты к нему. +
-  - Перегружаемся с новым ядром, пробуем загрузить собранный молуль. +
-  - Если модуль загрузился, то собираем пакеты (по слакбилдам) с новым ядром, модулем, утилитами и заголовками ядра. +
-==2-ой этап:== +
-  - Создаем виртуальную машину и устанавливаем на нее минимальную установку Salix. Можно и не минимальную, главное чтобы Salix была той же версии, на которой проходил первый этап. +
-  - Устанавливаем созданные нами пакеты и грузимся с новым ядром. +
-  - Пробуем загрузить установленный нами модуль. +
-  - Если модуль загрузился, то настраиваем виртуалку как нам надо, т.е. ставим/удаляем нужный софт, производим настройку дистрибутива. +
-  - Создаем livecd с настроенной виртуалки. +
- +
-<note tip> +
-Можно обойтись и без второй виртуалки и создать livecd с виртуалки, на которой собирали ядро и модуль, предварительно удалив исходники ядра для уменьшения размера и каждый раз, когда понадобится новый livecd патчить ядро и собирать модуль. +
-Но, как мне кажется, удобней создать готовые пакеты с ядром, модулем, утилитами, заголовками ядра и накатывать их на свежую установку любимого дистрибутива Slackware (в данном случае Salix). +
-</note> +
- +
-===Подробное описание каждого этапа=== +
----- +
-==1-ый этап:== +
-На виртуалку ставим Salix 14.1 с набором пакетов CORE\\ +
-заходим на нее и обновляем список пакетов +
-<code> +
-# cd ~ +
-# slapt-get --update +
-</code> +
-ставим исходники ядра +
-<code> +
-# slapt-get -i kernel-source +
-</code> +
-ставим пакет bc (нужен для сборки ядра (не уверен), но даже если и не нужен, то лишним не будет) +
-<code> +
-# slapt-get -i bc +
-</code> +
-качаем исходники модуля aufs +
-<code> +
-# git clone git://git.code.sf.net/p/aufs/aufs3-standalone +
-# cd ./aufs3-standalone/ +
-</code> +
-переключаемся на нужную нам ветку +
-<note tip> +
-В README по выбору нужной ветки сказано, что нужно переключаться на ветку соответсвующую версии ядра. У нас версия ядра 3.10.17, веток для нее две: origin/aufs3.10 и origin/aufs3.10.x\\ +
-Казалось бы, нам нужна ветка origin/aufs3.10.x , но патчи из этой ветки не накладываются на ядро, поэтому мы берем ветку origin/aufs3.10, патчи из которой лажатся на наше ядро без проблем. +
-</note> +
-<code> +
-# git checkout origin/aufs3.10 +
-</code> +
-копируем патчи для ядра +
-<code> +
-# cp ./aufs3-base.patch /usr/src/linux/ +
-# cp ./aufs3-mmap.patch /usr/src/linux/ +
-# cp ./aufs3-standalone.patch /usr/src/linux/ +
-</code> +
-переходим в каталог с исходниками ядра и накатываем патчи +
-<code> +
-# cd /usr/src/linux/ +
-# patch -p1 < ./aufs3-base.patch +
-# patch -p1 < ./aufs3-mmap.patch +
-# patch -p1 < ./aufs3-standalone.patch +
-</code> +
-копируем конфиг ядра (патчи, что мы накатили выше, не трогают файл .config) +
-<code> +
-# cat /boot/config >/usr/src/linux/.config +
-</code> +
-собираем ядро +
-<code> +
-# make +
-</code> +
-копируем новое ядро, System.map и .config в /boot +
-<code> +
-# cp ./arch/x86/boot/bzImage /boot/vmlinuz-aufs-huge-smp-3.10.17-smp +
-# cp ./System.map /boot/System.map-aufs-huge-smp-3.10.17-smp +
-# cp ./.config /boot/config-aufs-huge-smp-3.10.17-smp +
-</code> +
-удаляем старые ссылки и создаем новые +
-<code> +
-# rm /boot/vmlinuz +
-# rm /boot/System.map +
-# rm /boot/config +
-# ln -s /boot/vmlinuz-aufs-huge-smp-3.10.17-smp /boot/vmlinuz +
-# ln -s /boot/System.map-aufs-huge-smp-3.10.17-smp /boot/System.map +
-# ln -s /boot/config-aufs-huge-smp-3.10.17-smp /boot/config +
-</code> +
-перезаписываем загрузчик +
-<code> +
-# lilo +
-</code> +
-ставим заголовки ядра и перегружаемся с новым ядром +
-<code> +
-# make headers_install +
-# reboot +
-</code> +
-собираем модуль ядра aufs.ko +
-<code> +
-# cd ~/aufs3-standalone/ +
-# make +
-# make install +
-</code> +
-<note tip> +
-По умолчанию модуль aufs.ko ставится в /lib/modules/3.10.17-smp/extra/aufs.ko, но скрипты для сборки livecd ищут его в /lib/modules/3.10.17-smp/kernel/fs/aufs, поэтому если вы планируете делать livecd с этой виртуалки, то надо положить модуль в нужное место. Если же вы не планируете делать livecd с этой виртуалки, то делать следующий шаг не обязательно. +
-<code> +
-# mkdir -p /lib/modules/3.10.17-smp/kernel/fs/aufs +
-# cp ./aufs.ko /lib/modules/3.10.17-smp/kernel/fs/aufs/ +
-# rm  /lib/modules/3.10.17-smp/extra/aufs.ko +
-# depmod -a +
-</code> +
-</note> +
-проверяем загружается ли модуль +
-<code> +
-# modprobe aufs +
-# lsmod | grep aufs +
-aufs                  241031  0  +
-</code> +
-модуль загружен и теперь собираем утилиты для aufs\\ +
-качаем исходники утилит +
-<code> +
-# cd ~ +
-# git clone git://git.code.sf.net/p/aufs/aufs-util +
-# cd ./aufs-util/ +
-</code> +
-переключаемся на нужную нам ветку +
-<code> +
-# git checkout origin/aufs3.9 +
-</code>+
Навигация
Печать/экспорт
QR Code
QR Code playground:playground (generated for current page)