Различия
Показаны различия между двумя версиями страницы.
| — | wiki:articles:create_livecd [14/09/2015 13:35] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ^ | ||
| + | **Автор: | ||
| + | **Дата написания: | ||
| + | |||
| + | |||
| + | <note tip> | ||
| + | *в статье описан один из способов создания livecd со своими настройками | ||
| + | *aufs собиралась модулем ядра | ||
| + | *все действия производились на [[https:// | ||
| + | </ | ||
| + | <note tip> | ||
| + | В созданном livecd может использоваться [[https:// | ||
| + | если модуль zram установлен в системе, | ||
| + | < | ||
| + | [ 1291.921639] zram: Unknown symbol zs_unmap_object (err 0) | ||
| + | [ 1291.921665] zram: Unknown symbol zs_create_pool (err 0) | ||
| + | [ 1291.921675] zram: Unknown symbol zs_free (err 0) | ||
| + | [ 1291.921684] zram: Unknown symbol zs_malloc (err 0) | ||
| + | [ 1291.921688] zram: Unknown symbol zs_get_total_size_bytes (err 0) | ||
| + | [ 1291.921693] zram: Unknown symbol zs_destroy_pool (err 0) | ||
| + | [ 1291.921699] zram: Unknown symbol zs_map_object (err 0) | ||
| + | </ | ||
| + | Беглый поиск в google не принес результатов и я решил " | ||
| + | </ | ||
| + | **Написано по:**\\ | ||
| + | *[[http:// | ||
| + | *[[http:// | ||
| + | |||
| + | ======Общая картина состоит из двух этапов: | ||
| + | =====1-ый этап: | ||
| + | - Создаем виртуальную машину, | ||
| + | - Собираем модуль ядра и утилиты к нему. | ||
| + | - Перегружаемся с новым ядром, пробуем загрузить собранный модуль. | ||
| + | - Если модуль загрузился, | ||
| + | =====2-ой этап: | ||
| + | - Создаем виртуальную машину и устанавливаем на нее минимальную установку Salix. Можно и не минимальную, | ||
| + | - Устанавливаем созданные нами пакеты и грузимся с новым ядром. | ||
| + | - Пробуем загрузить установленный нами модуль. | ||
| + | - Если модуль загрузился, | ||
| + | - Создаем livecd с настроенной виртуалки. | ||
| + | |||
| + | <note tip> | ||
| + | Можно обойтись и без второй виртуалки и создать livecd с виртуалки, | ||
| + | Но, как мне кажется, | ||
| + | </ | ||
| + | |||
| + | ======Подробное описание каждого этапа====== | ||
| + | =====1-ый этап: | ||
| + | На виртуалку ставим Salix 14.1 с набором пакетов CORE\\ | ||
| + | заходим на нее и обновляем список пакетов | ||
| + | < | ||
| + | # cd ~ | ||
| + | # slapt-get --update | ||
| + | </ | ||
| + | ставим исходники ядра | ||
| + | < | ||
| + | # slapt-get -i kernel-source | ||
| + | </ | ||
| + | ставим пакет bc (нужен для сборки ядра (не уверен), | ||
| + | < | ||
| + | # slapt-get -i bc | ||
| + | </ | ||
| + | качаем исходники модуля aufs | ||
| + | < | ||
| + | # git clone git:// | ||
| + | # cd ./ | ||
| + | </ | ||
| + | переключаемся на нужную нам ветку | ||
| + | <note tip> | ||
| + | В README по выбору нужной ветки сказано, | ||
| + | Казалось бы, нам нужна ветка origin/ | ||
| + | </ | ||
| + | < | ||
| + | # git checkout origin/ | ||
| + | </ | ||
| + | копируем патчи для ядра | ||
| + | < | ||
| + | # cp ./ | ||
| + | # cp ./ | ||
| + | # cp ./ | ||
| + | </ | ||
| + | переходим в каталог с исходниками ядра и накатываем патчи | ||
| + | < | ||
| + | # cd / | ||
| + | # patch -p1 < ./ | ||
| + | # patch -p1 < ./ | ||
| + | # patch -p1 < ./ | ||
| + | </ | ||
| + | копируем конфиг ядра (патчи, | ||
| + | < | ||
| + | # cat / | ||
| + | </ | ||
| + | собираем ядро | ||
| + | < | ||
| + | # make | ||
| + | </ | ||
| + | копируем новое ядро, System.map и .config в /boot | ||
| + | < | ||
| + | # cp ./ | ||
| + | # cp ./ | ||
| + | # cp ./.config / | ||
| + | </ | ||
| + | удаляем старые ссылки и создаем новые | ||
| + | < | ||
| + | # rm / | ||
| + | # rm / | ||
| + | # rm / | ||
| + | # ln -s / | ||
| + | # ln -s / | ||
| + | # ln -s / | ||
| + | </ | ||
| + | перезаписываем загрузчик | ||
| + | < | ||
| + | # lilo | ||
| + | </ | ||
| + | ставим заголовки ядра и перегружаемся с новым ядром | ||
| + | < | ||
| + | # make headers_install | ||
| + | # reboot | ||
| + | </ | ||
| + | собираем модуль ядра aufs.ko | ||
| + | < | ||
| + | # cd ~/ | ||
| + | # make | ||
| + | # make install | ||
| + | </ | ||
| + | <note tip> | ||
| + | По умолчанию модуль aufs.ko ставится в / | ||
| + | < | ||
| + | # mkdir -p / | ||
| + | # cp ./aufs.ko / | ||
| + | # rm / | ||
| + | # depmod -a | ||
| + | </ | ||
| + | </ | ||
| + | проверяем загружается ли модуль | ||
| + | < | ||
| + | # modprobe aufs | ||
| + | # lsmod | grep aufs | ||
| + | aufs 241031 | ||
| + | </ | ||
| + | модуль загружен и теперь собираем утилиты для aufs\\ | ||
| + | качаем исходники утилит | ||
| + | < | ||
| + | # cd ~ | ||
| + | # git clone git:// | ||
| + | # cd ./ | ||
| + | </ | ||
| + | переключаемся на нужную нам ветку | ||
| + | < | ||
| + | # git checkout origin/ | ||
| + | </ | ||
| + | собираем утилиты | ||
| + | < | ||
| + | # make CPPFLAGS=" | ||
| + | # make install | ||
| + | </ | ||
| + | <note tip> | ||
| + | На этом, подготовка к созданию livecd закончена и если вы планируете делать livecd с этого дистрибутива, | ||
| + | </ | ||
| + | ===Собирем готовые пакеты с новым ядром, модулем, | ||
| + | ==Собираем пакет с ядром== | ||
| + | ---- | ||
| + | < | ||
| + | # cd ~ | ||
| + | # mkdir kernel-aufs-huge-smp | ||
| + | # cd ./ | ||
| + | # mkdir kernel-aufs-huge-smp-3.10.17-smp | ||
| + | </ | ||
| + | скопируем ядро | ||
| + | < | ||
| + | # cp / | ||
| + | # cp / | ||
| + | # cp / | ||
| + | </ | ||
| + | создадим файл ./doinst.sh | ||
| + | < | ||
| + | ( cd boot ; rm -rf config ) | ||
| + | ( cd boot ; ln -sf config-aufs-huge-smp-3.10.17-smp config ) | ||
| + | ( cd boot ; rm -rf System.map ) | ||
| + | ( cd boot ; ln -sf System.map-aufs-huge-smp-3.10.17-smp System.map ) | ||
| + | ( cd boot ; rm -rf vmlinuz ) | ||
| + | ( cd boot ; ln -sf vmlinuz-aufs-huge-smp-3.10.17-smp vmlinuz ) | ||
| + | </ | ||
| + | создадим файл ./ | ||
| + | < | ||
| + | # HOW TO EDIT THIS FILE: | ||
| + | # The "handy ruler" below makes it easier to edit a package description. | ||
| + | # up the first ' | ||
| + | # on the right side marks the last column you can put a character in. You must | ||
| + | # make exactly 11 lines for the formatting to be correct. | ||
| + | # customary to leave one space after the ':' | ||
| + | |||
| + | |-----handy-ruler------------------------------------------------------| | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | kernel-aufs-huge-smp: | ||
| + | </ | ||
| + | создадим слакбилд ./ | ||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | |||
| + | PRGNAM=kernel-aufs-huge-smp | ||
| + | VERSION=${VERSION: | ||
| + | BUILD=${BUILD: | ||
| + | TAG=${TAG: | ||
| + | |||
| + | if [ -z " | ||
| + | case "$( uname -m )" in | ||
| + | i?86) ARCH=i486 ;; | ||
| + | arm*) ARCH=arm ;; | ||
| + | *) ARCH=$( uname -m ) ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | CWD=$(pwd) | ||
| + | TMP=${TMP: | ||
| + | PKG=$TMP/ | ||
| + | OUTPUT=${OUTPUT: | ||
| + | |||
| + | if [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX=" | ||
| + | else | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | fi | ||
| + | |||
| + | set -e | ||
| + | |||
| + | rm -rf $PKG | ||
| + | mkdir -p $TMP $PKG $OUTPUT | ||
| + | |||
| + | mkdir -p $PKG/boot | ||
| + | cp -a $CWD/ | ||
| + | cp -a $CWD/ | ||
| + | cp -a $CWD/ | ||
| + | |||
| + | cd $PKG | ||
| + | chown -R root:root . | ||
| + | chmod -R u+w, | ||
| + | |||
| + | # Add docs to the proper location | ||
| + | mkdir -p $PKG/ | ||
| + | #cp -a README $PKG/ | ||
| + | |||
| + | cat $CWD/ | ||
| + | |||
| + | mkdir -p $PKG/ | ||
| + | cat $CWD/ | ||
| + | cat $CWD/ | ||
| + | |||
| + | #cd $PKG | ||
| + | / | ||
| + | </ | ||
| + | собираем пакет | ||
| + | < | ||
| + | # ./ | ||
| + | </ | ||
| + | ==Собираем пакет с заголовками ядра== | ||
| + | < | ||
| + | # cd ~ | ||
| + | # mkdir kernel-aufs-headers | ||
| + | # cd ./ | ||
| + | </ | ||
| + | создадим файл ./doinst.sh | ||
| + | < | ||
| + | ( cd usr/include ; rm -rf asm ) | ||
| + | ( cd usr/include ; ln -sf asm-x86 asm ) | ||
| + | </ | ||
| + | создадим файл ./ | ||
| + | < | ||
| + | # HOW TO EDIT THIS FILE: | ||
| + | # The "handy ruler" below makes it easier to edit a package description. | ||
| + | # up the first ' | ||
| + | # on the right side marks the last column you can put a character in. You must | ||
| + | # make exactly 11 lines for the formatting to be correct. | ||
| + | # customary to leave one space after the ':' | ||
| + | |||
| + | | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | kernel-aufs-headers: | ||
| + | </ | ||
| + | создадим слакбилд ./ | ||
| + | <note tip> | ||
| + | При установке заголовков ядра "make headers_install" | ||
| + | </ | ||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | |||
| + | # | ||
| + | LINUXSRC=/ | ||
| + | # | ||
| + | |||
| + | PRGNAM=kernel-aufs-headers | ||
| + | VERSION=${VERSION: | ||
| + | BUILD=${BUILD: | ||
| + | TAG=${TAG: | ||
| + | |||
| + | if [ -z " | ||
| + | case "$( uname -m )" in | ||
| + | i?86) ARCH=i486 ;; | ||
| + | arm*) ARCH=arm ;; | ||
| + | *) ARCH=$( uname -m ) ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | CWD=$(pwd) | ||
| + | TMP=${TMP: | ||
| + | PKG=$TMP/ | ||
| + | OUTPUT=${OUTPUT: | ||
| + | |||
| + | if [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX=" | ||
| + | else | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | fi | ||
| + | |||
| + | set -e | ||
| + | |||
| + | rm -rf $PKG | ||
| + | mkdir -p $TMP $PKG $OUTPUT | ||
| + | |||
| + | cd $LINUXSRC | ||
| + | mkdir -p $PKG/usr | ||
| + | make headers_install INSTALL_HDR_PATH=$PKG/ | ||
| + | |||
| + | ########################################## | ||
| + | mv $PKG/ | ||
| + | ########################################## | ||
| + | |||
| + | # Add docs to the proper location | ||
| + | mkdir -p $PKG/ | ||
| + | |||
| + | #cp -a COPYING README sample $PKG/ | ||
| + | |||
| + | cat $CWD/ | ||
| + | |||
| + | mkdir -p $PKG/ | ||
| + | cat $CWD/ | ||
| + | cat $CWD/ | ||
| + | |||
| + | |||
| + | cd $PKG | ||
| + | / | ||
| + | </ | ||
| + | собираем пакет | ||
| + | < | ||
| + | # ./ | ||
| + | </ | ||
| + | <note tip> | ||
| + | осталось собрать два пакета :-) | ||
| + | </ | ||
| + | ==Cобираем модуль ядра в пакет== | ||
| + | < | ||
| + | # cd ~ | ||
| + | # mkdir aufs3-standalone_SlackBuild | ||
| + | # cd ./ | ||
| + | </ | ||
| + | создадим папку для модуля и скопируем нужные файлы | ||
| + | < | ||
| + | # mkdir aufs3-standalone-3.10-20141215 | ||
| + | # cp -a ~/ | ||
| + | # cp -a ~/ | ||
| + | # cp -a ./ | ||
| + | # cp -a ~/ | ||
| + | # cp -a ~/ | ||
| + | # cp -a ~/ | ||
| + | # cp -a ~/ | ||
| + | </ | ||
| + | создадим файл ./ | ||
| + | < | ||
| + | # HOW TO EDIT THIS FILE: | ||
| + | # The "handy ruler" below makes it easier to edit a package description. | ||
| + | # up the first ' | ||
| + | # on the right side marks the last column you can put a character in. You must | ||
| + | # make exactly 11 lines for the formatting to be correct. | ||
| + | # customary to leave one space after the ':' | ||
| + | |||
| + | |-----handy-ruler------------------------------------------------------| | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | aufs3-standalone: | ||
| + | </ | ||
| + | создадим слакбилд ./ | ||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | |||
| + | PRGNAM=aufs3-standalone | ||
| + | VERSION=${VERSION: | ||
| + | BUILD=${BUILD: | ||
| + | TAG=${TAG: | ||
| + | |||
| + | if [ -z " | ||
| + | case "$( uname -m )" in | ||
| + | i?86) ARCH=i486 ;; | ||
| + | arm*) ARCH=arm ;; | ||
| + | *) ARCH=$( uname -m ) ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | CWD=$(pwd) | ||
| + | TMP=${TMP: | ||
| + | PKG=$TMP/ | ||
| + | OUTPUT=${OUTPUT: | ||
| + | |||
| + | if [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX=" | ||
| + | else | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | fi | ||
| + | |||
| + | set -e | ||
| + | |||
| + | rm -rf $PKG | ||
| + | mkdir -p $TMP $PKG $OUTPUT | ||
| + | |||
| + | mkdir -p $PKG/ | ||
| + | cp -a $CWD/ | ||
| + | |||
| + | cd $PKG | ||
| + | chown -R root:root . | ||
| + | chmod -R u+w, | ||
| + | |||
| + | |||
| + | # Add docs to the proper location | ||
| + | mkdir -p $PKG/ | ||
| + | cd $CWD/ | ||
| + | cp -a COPYING Documentation README aufs3-base.patch aufs3-mmap.patch aufs3-standalone.patch $PKG/ | ||
| + | |||
| + | cat $CWD/ | ||
| + | |||
| + | mkdir -p $PKG/ | ||
| + | cat $CWD/ | ||
| + | #cat $CWD/ | ||
| + | |||
| + | cd $PKG | ||
| + | / | ||
| + | </ | ||
| + | собираем пакет | ||
| + | < | ||
| + | # ./ | ||
| + | </ | ||
| + | ==собираем утилиты для модуля в пакет== | ||
| + | < | ||
| + | # cd ~ | ||
| + | # mkdir aufs-util_SlackBuild | ||
| + | # cd ./ | ||
| + | </ | ||
| + | создадим файл ./ | ||
| + | < | ||
| + | # HOW TO EDIT THIS FILE: | ||
| + | # The "handy ruler" below makes it easier to edit a package description. | ||
| + | # up the first ' | ||
| + | # on the right side marks the last column you can put a character in. You must | ||
| + | # make exactly 11 lines for the formatting to be correct. | ||
| + | # customary to leave one space after the ':' | ||
| + | |||
| + | | ||
| + | aufs-util: util for kernel module aufs - http:// | ||
| + | aufs-util: | ||
| + | aufs-util: advanced multi layered unification filesystem | ||
| + | aufs-util: http:// | ||
| + | aufs-util: Junjiro R. Okajima | ||
| + | aufs-util: | ||
| + | aufs-util: | ||
| + | aufs-util: | ||
| + | aufs-util: | ||
| + | aufs-util: | ||
| + | aufs-util: | ||
| + | </ | ||
| + | создадим слакбилд ./ | ||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | |||
| + | # | ||
| + | MAKEDIR=/ | ||
| + | # | ||
| + | |||
| + | PRGNAM=aufs-util | ||
| + | VERSION=${VERSION: | ||
| + | BUILD=${BUILD: | ||
| + | TAG=${TAG: | ||
| + | |||
| + | if [ -z " | ||
| + | case "$( uname -m )" in | ||
| + | i?86) ARCH=i486 ;; | ||
| + | arm*) ARCH=arm ;; | ||
| + | *) ARCH=$( uname -m ) ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | CWD=$(pwd) | ||
| + | TMP=${TMP: | ||
| + | PKG=$TMP/ | ||
| + | OUTPUT=${OUTPUT: | ||
| + | |||
| + | if [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | elif [ " | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX=" | ||
| + | else | ||
| + | SLKCFLAGS=" | ||
| + | LIBDIRSUFFIX="" | ||
| + | fi | ||
| + | |||
| + | set -e | ||
| + | |||
| + | rm -rf $PKG | ||
| + | mkdir -p $TMP $PKG $OUTPUT | ||
| + | |||
| + | cd $MAKEDIR | ||
| + | make install DESTDIR=$PKG | ||
| + | |||
| + | |||
| + | # Add docs to the proper location | ||
| + | mkdir -p $PKG/ | ||
| + | |||
| + | cp -a COPYING README sample $PKG/ | ||
| + | |||
| + | cat $CWD/ | ||
| + | |||
| + | mkdir -p $PKG/ | ||
| + | cat $CWD/ | ||
| + | #cat $CWD/ | ||
| + | |||
| + | ### | ||
| + | cd $PKG/ | ||
| + | for file in * | ||
| + | do | ||
| + | gzip ./ | ||
| + | done | ||
| + | |||
| + | cd $PKG/ | ||
| + | for file in * | ||
| + | do | ||
| + | gzip ./ | ||
| + | done | ||
| + | ### | ||
| + | |||
| + | cd $PKG | ||
| + | / | ||
| + | </ | ||
| + | собираем пакет | ||
| + | < | ||
| + | # ./ | ||
| + | </ | ||
| + | \\ | ||
| + | В результате сборки у нас появится 4 пакета, | ||
| + | < | ||
| + | # ls -l /tmp/ | grep aufs | ||
| + | -rw-r--r-- 1 root root 1669979 Sep 7 14:13 aufs-util-20141208-i486-1_krpsh.tgz | ||
| + | -rw-r--r-- 1 root root 181737 Sep 7 14:08 aufs3-standalone-3.10-20141215-i486-1_krpsh.tgz | ||
| + | -rw-r--r-- 1 root root 899340 Sep 7 13:51 kernel-aufs-headers-3.10.17-i486-1_krpsh.tgz | ||
| + | -rw-r--r-- 1 root root 6972133 Sep 7 13:27 kernel-aufs-huge-smp-3.10.17-smp-i486-1_krpsh.tgz | ||
| + | </ | ||
| + | =====2-ой этап: | ||
| + | На новую виртуалку ставим Salix 14.1 с набором пакетов CORE и уcтанавливаем созданные нами пакеты | ||
| + | < | ||
| + | # installpkg aufs-util-20141208-i486-1_krpsh.tgz | ||
| + | # installpkg aufs3-standalone-3.10-20141215-i486-1_krpsh.tgz | ||
| + | # installpkg kernel-aufs-headers-3.10.17-i486-1_krpsh.tgz | ||
| + | # installpkg kernel-aufs-huge-smp-3.10.17-smp-i486-1_krpsh.tgz | ||
| + | </ | ||
| + | создаем modules.dep | ||
| + | < | ||
| + | # depmod -a | ||
| + | </ | ||
| + | обновляем загрузчик | ||
| + | < | ||
| + | # lilo | ||
| + | </ | ||
| + | перегружаемся с новым ядром и пробуем загрузить модуль | ||
| + | < | ||
| + | # modprobe aufs | ||
| + | # lsmod | grep aufs | ||
| + | aufs 241031 | ||
| + | </ | ||
| + | Если модуль загрузился, | ||
| + | Как только все настроили и проверили **создаем livecd:**\\ | ||
| + | \\ | ||
| + | установим зависимость скриптов (squashfs-tools) | ||
| + | < | ||
| + | # wget http:// | ||
| + | # installpkg squashfs-tools-4.2-i486-1_slack.txz | ||
| + | </ | ||
| + | качаем скрипты для сбрки livecd | ||
| + | < | ||
| + | # cd /tmp | ||
| + | # wget -O Linux_Live_Kit_v1_8.tar.gz https:// | ||
| + | # tar -xzvf ./ | ||
| + | # cd ./ | ||
| + | </ | ||
| + | <note tip> | ||
| + | На скрипт ./ | ||
| + | </ | ||
| + | создадим файл ./ | ||
| + | <code diff> | ||
| + | --- ./ | ||
| + | +++ ./ | ||
| + | @@ -68,6 +68,9 @@ | ||
| + | |||
| + | # TODO: add all comon filesystems which are NOT compiled in kernel already | ||
| + | | ||
| + | +###### krpsh ########################### | ||
| + | +copy_including_deps / | ||
| + | +######################################## | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | наложим патч | ||
| + | < | ||
| + | # cd ./ | ||
| + | # patch -p2 < ./ | ||
| + | # cd .. | ||
| + | </ | ||
| + | создадим livecd | ||
| + | < | ||
| + | # ./build | ||
| + | </ | ||
| + | в результате у нас создадутся два файла | ||
| + | < | ||
| + | # ls -lh /tmp/ | grep mylinux | ||
| + | -rw-r--r-- 1 root root 256M Sep 7 15:44 mylinux-i686.iso | ||
| + | -rw-r--r-- 1 root root 256M Sep 7 15:44 mylinux-i686.zip | ||
| + | </ | ||
| + | mylinux-i686.iso - для записи на cd диск\\ | ||
| + | mylinux-i686.zip - для создания загрузочной флешки (не пробовал)\\ | ||
| + | \\ | ||
| + | степень сжатия очень хорошая\\ | ||
| + | исходный размер системы, | ||
| + | < | ||
| + | # df -h | ||
| + | Filesystem | ||
| + | / | ||
| + | tmpfs | ||
| + | </ | ||
| + | т.е. исходный размер 1.1G , а livecd получился 256M | ||
| + | |||
| + | ======Заключение====== | ||
| + | Вы можете подумать, | ||
| + | Я же, использую созданный таким образом livecd на бездисковом серваке, | ||
| + | \\ | ||
| + | При загрузки с этого livecd можно устанавливать пакеты и менять конфиги, | ||
| + | И поэтому, | ||