Различия
Показаны различия между двумя версиями страницы.
— | 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 можно устанавливать пакеты и менять конфиги, | ||
+ | И поэтому, |