Создание собственного дистрибутива на базе Ubuntu с нуля Сравнение версий

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
wiki:дистрибутив_на_базе_ubuntu_вручную [2014/04/07 02:46]
Добавлена переведеная с русского автоматического до русского литературного версия с nikmy.ru
wiki:дистрибутив_на_базе_ubuntu_вручную [2014/11/06 19:00]
[Инструкции при загрузке при создании Remix]
Строка 1: Строка 1:
-====== Создание собственного дистрибутива на базе Ubuntu ​вручную ======+====== Создание собственного дистрибутива на базе Ubuntu ​с нуля ======
  
 Конечно очень радостно,​ что существуют такие инструменты как Reconstructor и Ubuntu Customization Kit, однако они всё выполняют в автоматическом режиме и не очень-то подходят для тонкой настройки под себя. В этой статье я постараюсь рассказать как можно руками сделать всё то, что делают вышеназванные инструменты и как изменить многие недоступные им параметры. Конечно очень радостно,​ что существуют такие инструменты как Reconstructor и Ubuntu Customization Kit, однако они всё выполняют в автоматическом режиме и не очень-то подходят для тонкой настройки под себя. В этой статье я постараюсь рассказать как можно руками сделать всё то, что делают вышеназванные инструменты и как изменить многие недоступные им параметры.
- 
-===== Что нам потребуется ===== 
- 
-В принципе,​ все дальнейшие инструкции можно выполнять пошагово,​ либо тупо взять мои скрипты из конца статьи и использовать их, быть может чуть модифицировав. Однако мы ж хотим собрать свой собственный дистрибутив,​ ни на что не похожий,​ поэтому очень полезным окажется хотя бы начальное знание скриптового языка bash или любимого мной perl (на котором,​ кстати,​ написаны все скрипты из конца статьи). 
- 
-Кроме того потребуется установить несколько пакетов для дальнейшей работы:​ 
-<​code>​sudo aptitude install squashfs-tools chroot</​code>​ 
- 
-Всё, теперь можно приступать к дальнейшей работе. 
- 
-Эта процедура является рабочей и позволяет создать загружаемый LiveCD Ubuntu (вместе с автоматическими обнаружением и настройкой) с нуля. Вам не нужно использовать существующий LiveCD никоим образом. 
- 
-Вы можете создать ремикс Ubuntu и распространять его в виде LiveCD. Здесь показан способ создания подобного диска без оригинального образа. 
  
 ===== Фронт работ ===== ===== Фронт работ =====
Строка 43: Строка 30:
 - записи ISO на диск и проверки его работы. - записи ISO на диск и проверки его работы.
  
-==== Создание изолированной системы ====+===== Создание изолированной системы ​=====
  
 Для начала,​ установим debootstrap в хост-системе с помощью командной строки,​ после чего создадим папки «work» (для работы) и «image» (для изолированной системы). После установки запускаем debootstrap Для начала,​ установим debootstrap в хост-системе с помощью командной строки,​ после чего создадим папки «work» (для работы) и «image» (для изолированной системы). После установки запускаем debootstrap
  
 Обратите внимание:​ Версия debootstrap для Ubuntu содержит файлы для загрузки только следующего релиза Ubuntu! Т. е. Вы не сможете скачать базовую систему для raring ​ (Ubuntu 13.04) в precise (Ubuntu 12.04 LTS). На наше счастье,​ обойти это ограничение легко обойти,​ скачав debootstrap из репозитория raring или взяв последнюю версию из папки pool и установив его с помощью dpkg. Помимо того, у debootstrap нет зависимостей,​ а значит его установка вручную не вызовет никаких проблем в Вашей системе Обратите внимание:​ Версия debootstrap для Ubuntu содержит файлы для загрузки только следующего релиза Ubuntu! Т. е. Вы не сможете скачать базовую систему для raring ​ (Ubuntu 13.04) в precise (Ubuntu 12.04 LTS). На наше счастье,​ обойти это ограничение легко обойти,​ скачав debootstrap из репозитория raring или взяв последнюю версию из папки pool и установив его с помощью dpkg. Помимо того, у debootstrap нет зависимостей,​ а значит его установка вручную не вызовет никаких проблем в Вашей системе
 +{{:​wiki:​снимок_экрана_от_2014-04-06_16_10_28.png?​200|}}
 +{{:​wiki:​снимок_экрана_от_2014-04-06_16_18_29.png?​200|}}
  
-<​code>​sudo apt-get install debootstrap+<​code>​ 
 +sudo apt-get install debootstrap
 mkdir -p work/chroot mkdir -p work/chroot
 cd work  cd work 
-sudo debootstrap —arch = i386 trusty chroot http://​mirror.yandex.ru/​ubuntu</​code>​+sudo debootstrap —arch=i386 trusty chroot http://​mirror.yandex.ru/​ubuntu 
 +</​code>​
  
 Обратите внимание:​ Если Вы хотите собрать следующий релиз Ubuntu, но не можете его загрузить,​ воспользуйтесь следующей хитростью: ​ Обратите внимание:​ Если Вы хотите собрать следующий релиз Ubuntu, но не можете его загрузить,​ воспользуйтесь следующей хитростью: ​
  
-<​code>​cd /​usr/​share/​debootstrap/​scripts/​ # переходим в папку со скриптами загрузки+<​code>​ 
 +cd /​usr/​share/​debootstrap/​scripts/​ # переходим в папку со скриптами загрузки
 sudo ln -s gutsy trusty # Создаем символическую ссылку в trusty на gutsy (т. е. показываем программе:​ загружать Ubuntu 14.04 надо также, как и 7.10)  sudo ln -s gutsy trusty # Создаем символическую ссылку в trusty на gutsy (т. е. показываем программе:​ загружать Ubuntu 14.04 надо также, как и 7.10) 
 mkdir -p work/chroot # создаем папку для работы и изолированной системы mkdir -p work/chroot # создаем папку для работы и изолированной системы
 cd work  cd work 
-sudo debootstrap —arch = i386 trusty chroot http://​mirror.yandex.ru/​ubuntu # скачиваем минимальную базовую систему (Ubuntu 14.04 LTS x86) в папку chroot с зеркала Яндекса</​code>​+sudo debootstrap —arch=i386 trusty chroot http://​mirror.yandex.ru/​ubuntu # скачиваем минимальную базовую систему (Ubuntu 14.04 LTS x86) в папку chroot с зеркала Яндекса 
 +</​code>​
  
 <​note>​Обратите внимание,​ что в последней строке вместо trusty (Ubuntu 14.04 LTS) можно написать любое другое прилагательное из списка отсюда,​ например precise или quantal: http://​ru.wikipedia.org/​wiki/​Ubuntu#​.D0.92.D1.8B.D0.BF.D1.83.D1.81.D0.BA.D0.B8 ​ <​note>​Обратите внимание,​ что в последней строке вместо trusty (Ubuntu 14.04 LTS) можно написать любое другое прилагательное из списка отсюда,​ например precise или quantal: http://​ru.wikipedia.org/​wiki/​Ubuntu#​.D0.92.D1.8B.D0.BF.D1.83.D1.81.D0.BA.D0.B8 ​
Строка 68: Строка 61:
  
 Если Вы планируете установить что-либо,​ использующее метапакеты окружений рабочего стола (например xfce4), Вам также потребуется связать файл в изолированной системе как следует (не только с помощью devpts). Иначе, GRUB при установке выдаст ошибку и Вы не сможете настроить пакеты. Чтобы этого избежать свяжите устройства с помощью команды:​ Если Вы планируете установить что-либо,​ использующее метапакеты окружений рабочего стола (например xfce4), Вам также потребуется связать файл в изолированной системе как следует (не только с помощью devpts). Иначе, GRUB при установке выдаст ошибку и Вы не сможете настроить пакеты. Чтобы этого избежать свяжите устройства с помощью команды:​
-<​code>​sudo mount —bind /dev путь/​до/​chroot/​dev</​code>​+<​code>​ 
 +sudo mount —bind /dev путь/​до/​chroot/​dev 
 +</​code>​
 Аналогично нужно примонтировать proc, sysfs и devpts Аналогично нужно примонтировать proc, sysfs и devpts
 Теперь скопируем системные файлы (их можно взять на любой машине с Ubuntu, подключенной к интернету):​ Теперь скопируем системные файлы (их можно взять на любой машине с Ubuntu, подключенной к интернету):​
-<​code>​sudo cp /etc/hosts путь/​до/​chroot/​etc/​hosts+<​code>​ 
 +sudo cp /etc/hosts путь/​до/​chroot/​etc/​hosts
 sudo cp /​etc/​resolv.conf путь/​до/​chroot/​etc/​resolv.conf sudo cp /​etc/​resolv.conf путь/​до/​chroot/​etc/​resolv.conf
-sudo cp /​etc/​apt/​sources.list путь/​до/​chroot/​etc/​apt/​sources.list</​code>​ +sudo cp /​etc/​apt/​sources.list путь/​до/​chroot/​etc/​apt/​sources.list 
-<​note>​Обратите внимание:​ Если Вы скачали одну версию Ubuntu, а у Вас установлена другая,​ Вам нужно сменить прилагательное в chroot/​etc/​apt/​sources.list командой:​+</​code>​ 
 +<​note>​ 
 +Обратите внимание:​ Если Вы скачали одну версию Ubuntu, а у Вас установлена другая,​ Вам нужно сменить прилагательное в chroot/​etc/​apt/​sources.list командой:​
  
-<​code>​sudo sed s /<​Версия,​ которая у Вас установлена>/<​Версия,​ которую Вы скачали>​ / </​etc/​apt /​sources.list>​ путь/​до/​chroot/​etс/​apt/​sources.list+<​code>​ 
 +sudo sed s/<​Версия,​ которая у Вас установлена>/<​Версия,​ которую Вы скачали>/​ </​etc/​apt /​sources.list>​ путь/​до/​chroot/​etс/​apt/​sources.list
 Например,​ у Вас стоит Ubuntu 12.04, а Вы скачали Ubuntu 11.10, то команда будет выглядеть так: Например,​ у Вас стоит Ubuntu 12.04, а Вы скачали Ubuntu 11.10, то команда будет выглядеть так:
-sudo sed s /precise /oneiric/ </​etс/​apt /​sources.list>​ chroot/​etc/​apt/​sources.list</​code></​note>​+sudo sed s/​precise/​oneiric/​ < /​etс/​apt/​sources.list > chroot/​etc/​apt/​sources.list 
 +</​code>​ 
 +</​note>​
  
 Если Вам нужно, Вы можете подправить sources.list и добавить туда сторонний репозиторий. Если Вы добавляете PPA репозиторий,​ то Вам помимо самого репозитория нужно добавить еще и OpenPGP ключ для пакетного менеджера в изолированной системе. Его можно найти на странице описания репозитория (он может выглядеть вот так: 1024/​12345678). Скопируйте или запишите часть после косой черты (как здесь: 12345678). Этот ключ нужно добавить как можно скорее,​ как только мы чрутнемся в изолированную систему. Если Вам нужно, Вы можете подправить sources.list и добавить туда сторонний репозиторий. Если Вы добавляете PPA репозиторий,​ то Вам помимо самого репозитория нужно добавить еще и OpenPGP ключ для пакетного менеджера в изолированной системе. Его можно найти на странице описания репозитория (он может выглядеть вот так: 1024/​12345678). Скопируйте или запишите часть после косой черты (как здесь: 12345678). Этот ключ нужно добавить как можно скорее,​ как только мы чрутнемся в изолированную систему.
  
-<note important>​Обязательно! Сделайте бекап /​sbin/​initctl,​ потому что следующий шаг удаляет этот файл. Дело в том что начиная с версии 10.04 upstart не содержит файла /​sbin/​initctl.distrib и обновление этого пакета этот файл не возвращает. </​note>​+<note important>​ 
 +Обязательно! Сделайте бекап /​sbin/​initctl,​ потому что следующий шаг удаляет этот файл. Дело в том что начиная с версии 10.04 upstart не содержит файла /​sbin/​initctl.distrib и обновление этого пакета этот файл не возвращает. ​ 
 +</​note>​
  
-<​code>​sudo chroot chroot+<​code>​ 
 +sudo chroot chroot
 mount none-t proc /proc mount none-t proc /proc
 mount none-t sysfs /sys mount none-t sysfs /sys
 mount none-t devpts /dev/pts mount none-t devpts /dev/pts
-export HOME=/root+export HOME=/etc/skel
 export LC_ALL=C export LC_ALL=C
 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 12345678 # Substitute " 12345678 " with the PPA's OpenPGP ID. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 12345678 # Substitute " 12345678 " with the PPA's OpenPGP ID.
Строка 94: Строка 98:
 apt-get install --yes dbus apt-get install --yes dbus
 dbus-uuidgen > /​var/​lib/​dbus/​machine-id dbus-uuidgen > /​var/​lib/​dbus/​machine-id
-dpkg-divert --local --rename --add /​sbin/​initctl</​code>​+dpkg-divert --local --rename --add /​sbin/​initctl 
 +</​code>​
  
 Отсутствие этого файла вызывает массу проблем в изолированных системах во всех системах,​ начиная с Ubuntu 9.10: Отсутствие этого файла вызывает массу проблем в изолированных системах во всех системах,​ начиная с Ubuntu 9.10:
Строка 101: Строка 106:
 Решением может стать символическая ссылка на /bin/true: Решением может стать символическая ссылка на /bin/true:
  
-<​code>​ln -s /bin/true /​sbin/​initctl</​code>​+<​code>​ 
 +ln -s /bin/true /​sbin/​initctl 
 +</code
 +Если Вы этого не сделаете,​ то консоль выругается:​ 
 +<note warning>​ 
 +<​code>​ 
 +initctl: Unable to connect to Upstart: Failed to connect to socket /​com/​ubuntu/​upstart:​ Connection refused 
 +initctl: Unable to connect to Upstart: Failed to connect to socket /​com/​ubuntu/​upstart:​ Connection refused 
 +start: Unable to connect to Upstart: Failed to connect to socket /​com/​ubuntu/​upstart:​ Connection refused 
 +invoke-rc.d:​ initscript systemd-logind,​ action "​start"​ failed. 
 +dpkg: error processing package libpam-systemd:​i386 (--configure):​ 
 + ​subprocess installed post-installation script returned error exit status 1 
 +Errors were encountered while processing:​ 
 + ​libpam-systemd:​i386 
 +E: Sub-process /​usr/​bin/​dpkg returned an error code (1) 
 + 
 +</​code>​ 
 +</note>
 Обновите пакеты,​ если хотите : Обновите пакеты,​ если хотите :
-<​code>​apt-get --yes upgrade</​code>​+<​code>​ 
 +apt-get --yes upgrade 
 +</​code>​
 Установите пакеты,​ необходимые для живой системы:​ Установите пакеты,​ необходимые для живой системы:​
-<​code>​apt-get install --yes ubuntu-standard casper lupin-casper+<​code>​ 
 +apt-get install --yes ubuntu-standard casper lupin-casper
 apt-get install --yes discover laptop-detect os-prober apt-get install --yes discover laptop-detect os-prober
-apt-get install --yes linux-generic</​code>​+apt-get install --yes linux-generic 
 +</​code>​
  
 Ранее, до Ubuntu 10.10 пакет discover назывался discover1. Ранее, до Ubuntu 10.10 пакет discover назывался discover1.
Строка 113: Строка 139:
 Если Вы загружаете ОС Ubuntu 10.04, то Вам нужно поставить следующие пакеты:​ grub2 plymouth-x11 Если Вы загружаете ОС Ubuntu 10.04, то Вам нужно поставить следующие пакеты:​ grub2 plymouth-x11
  
-<​code>​apt-get install --yes grub2 plymouth-x11</​code>​+<​code>​ 
 +apt-get install --yes grub2 plymouth-x11 
 +</​code>​
  
 Для ранних релизов (заканчивая версией 9.04) была характерна следующая проблема:​ ОС вешала сеть, если был установлен Network Manager. На наше счастье,​ данная проблема была устранена в релизе 9.10. Команда для установки NM: Для ранних релизов (заканчивая версией 9.04) была характерна следующая проблема:​ ОС вешала сеть, если был установлен Network Manager. На наше счастье,​ данная проблема была устранена в релизе 9.10. Команда для установки NM:
  
-<​code>​apt-get install --no-install-recommends network-manager</​code>​+<​code>​ 
 +apt-get install --no-install-recommends network-manager 
 +</​code>​
  
 Далее, установите те программы какие Вы захотите. На данном этапе Вы создаете свою систему. Заполняйте ее тем, чем хотите. Однако перед этим поставьте программу ubuntu after install для установки тех программ,​ которые Вы добавить забыли. После наполнения ПО возвращайтесь к данному руководству. Далее, установите те программы какие Вы захотите. На данном этапе Вы создаете свою систему. Заполняйте ее тем, чем хотите. Однако перед этим поставьте программу ubuntu after install для установки тех программ,​ которые Вы добавить забыли. После наполнения ПО возвращайтесь к данному руководству.
  
  
-==== Установка программы установки ====+===== Установка программы установки ​=====
  
 Для GTK интерфейса — Unity, GNOME, XFCE и LXDE Для GTK интерфейса — Unity, GNOME, XFCE и LXDE
Строка 130: Строка 160:
 XFCE и LXDE — это ОРС, не нагружающие ресурсы. Рекомендованы для установки на старых компьютерах XFCE и LXDE — это ОРС, не нагружающие ресурсы. Рекомендованы для установки на старых компьютерах
  
-<​code>​apt-get install ubiquity-frontend-gtk</​code>​+<​code>​ 
 +apt-get install ubiquity-frontend-gtk 
 +</​code>​
  
 Для Qt интерфейса — KDE Для Qt интерфейса — KDE
Строка 137: Строка 169:
  
 <​code>​apt-get install ubiquity-frontend-kde</​code>​ <​code>​apt-get install ubiquity-frontend-kde</​code>​
 +===== Дополнительная подготовка =====
  
-==== Очистка Чрута. ====+На данном этапе я расскажу,​ как создать файлы initrd.lz и casper-uuid-generic,​ необходимые для нормальной работы образа. 
 +В chroot выполняем 
 +<​code>​ 
 +cd /tmp # Заходим в оперативную память 
 +cp /initrd.img ./​initrd0.gz # копируем в /tmp initrd.img ​  
 +casper-new-uuid /​tmp/​initrd0.gz /​tmp/​initrd.gz /​tmp/​casper-uuid-generic # Создаем файлы initrd.gz и casper-uuid-generic 
 +mkdir /tmp/tmp # создаем папку для временного хранения initramfs 
 +cd ./tmp # входим в нее 
 +gunzip -dc ../​initrd.gz | cpio -imvd --no-absolute-filenames # распаковка gz 
 +find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../​initrd.lz # упаковка в lz 
 +</​code>​ 
 +В том же терминале открываем вторую вкладку и выполняем:​ 
 +<​code>​ 
 +cp -v chroot/​tmp/​{initrd.lz,​casper-uuid-generic} . # копируем файлы за chroot 
 +</​code>​ 
 +Возращаемся в первую вкладку и удаляем из /tmp все: 
 +<​code>​ 
 +cd / 
 +rm -rfv /tmp/* 
 +</​code>​ 
 +===== Очистка Чрута. ​=====
  
 Если Вы установили все программы,​ то убедитесь что будет работать Если Вы установили все программы,​ то убедитесь что будет работать
  
-<​code>​rm /​var/​lib/​dbus/​machine-id</​code>​+<​code>​ 
 +rm /​var/​lib/​dbus/​machine-id 
 +</​code>​
  
 Ранее в этом руководстве я просил Вас сделать бекап /​sbin/​initctl. Вы его сделали?​ Он сейчас может потребоваться. Если эта команда не сработает,​ восстановите /​sbin/​initctl из бекапа. Ранее в этом руководстве я просил Вас сделать бекап /​sbin/​initctl. Вы его сделали?​ Он сейчас может потребоваться. Если эта команда не сработает,​ восстановите /​sbin/​initctl из бекапа.
  
-<​code>​rm /​sbin/​initctl +<​code>​ 
-dpkg-divert --rename --remove /​sbin/​initctl</​code>​+rm /​sbin/​initctl 
 +dpkg-divert --rename --remove /​sbin/​initctl 
 +</​code>​
  
 Если у Вас более одного ядра Linux, удалите старые ядра: Если у Вас более одного ядра Linux, удалите старые ядра:
  
-<​code>​ls /​boot/​vmlinuz-3.**-**-generic>​ list.txt +<​code>​ 
-sum = $ (cat list.txt | grep '​[^]'​ | wc-l) +ls /​boot/​vmlinuz-3.**-**-generic > list.txt 
-if [$ sum-gt 1 ]; then +sum=$(cat list.txt | grep '[^ ]' | wc -l) 
-dpkg-l '​linux-*'​ | sed '/ ^ ii /! d ;/' "$ (uname-r | sed"​s/​\(.*\)-\([^ 0-9]\+\)/​\1/"​)"​ '/ d; s / ^ [^] * [^] * \ ([^] * \).*/\ 1 / ;/ [0-9] /! d' | xargs sudo apt-get -y purge+if [ $sum -gt 1 ]; then 
 +dpkg -l '​linux-*'​ | sed '/​^ii/​!d;/'"​$(uname -r | sed "​s/​\(.*\)-\([^0-9]\+\)/​\1/"​)"'/​d;​s/​^[^ ]* [^ ]* \([^ ]*\).*/​\1/;/​[0-9]/​!d'​ | xargs sudo apt-get -y purge
 fi fi
-rm list.txt</​code>​+rm list.txt 
 +</​code>​
  
  
 После чего проведите очистку:​ После чего проведите очистку:​
-<​code>​apt-get clean +<​code>​ 
-rm-rf /tmp/*+apt-get clean 
 +rm -rf /tmp/*
 rm /​etc/​resolv.conf rm /​etc/​resolv.conf
 umount -lf  /proc umount -lf  /proc
 umount -lf  /sys umount -lf  /sys
 umount -lf  /dev/pts umount -lf  /dev/pts
-exit</​code>​+exit 
 +</​code>​
  
 Если у Вас все еще подключен /dev, отключите его: Если у Вас все еще подключен /dev, отключите его:
  
-<​code>​sudo umount ​ /​путь/​до/​чрута/​dev</​code>​+<​code>​ 
 +sudo umount ​ /​путь/​до/​чрута/​dev 
 +</​code>​
  
 То есть, Вы вошли в изолированную систему,​ установили пакеты,​ провели очистку и вышли. То есть, Вы вошли в изолированную систему,​ установили пакеты,​ провели очистку и вышли.
  
-==== Создание папки для CD диска и ее заполнение ====+===== Настройка окружающей среды по умолчанию ===== 
 + 
 +Данный пункт не является обязательным. При загрузке окружения рабочего стола (в моем случае Unity 7) хочется настроить программы на боковой панели,​ настроить часы, которые выглядят ужасно в обычной версии Unity. Поэтому здесь я расскажу как можно настроить unity 7. 
 +Общеизвестно,​ что Unity 7 настраивается через dconf. Файлы настроек по умолчанию находятся в папке  
 +<​code>​ 
 +/​usr/​share/​glib-2.0/​schemas/​ 
 +</​code>​ 
 +и имеют имена соответствующие иерархии в dconf-editor. 
 +Мы изменим некоторые из них: 
 +<​code>​ 
 +com.canonical.Unity.gschema.xml # Основная схема настройка Unity 7. В ней изменим программы по умолчанию. 
 +com.canonical.indicator.timedate.gschema.xml # Схема по настройке часов в апплете уведомлений. Изменим формат часов 
 +org.gnome.desktop.nautilus.gschema.xml 
 +</​code>​ 
 +===== Создание папки для CD диска и ее заполнение ​=====
  
 Необходимо установить на хост-систему 4 пакета: ​ Необходимо установить на хост-систему 4 пакета: ​
Строка 183: Строка 260:
  
 следующей командой:​ следующей командой:​
-<​code>​sudo apt-get install syslinux squashfs-tools genisoimage sbm</​code>​+<​code>​ 
 +sudo apt-get install syslinux squashfs-tools genisoimage sbm 
 +</​code>​
  
 Создайте папку для cd с тремя подкаталогами:​ Создайте папку для cd с тремя подкаталогами:​
-<​code>​mkdir -p image/​{casper,​ isolinux, install}</​code>​+<​code>​ 
 +mkdir -p image/​{casper,​isolinux,​install} 
 +</​code>​
 # То же самое можно сделать командой 'mkdir image image/​casper image/​isolinux image/​install'​ # То же самое можно сделать командой 'mkdir image image/​casper image/​isolinux image/​install'​
 Во-первых,​ Вам нужно скопировать ядро и initrd, созданное с помощью Casper в изолированной системе. Скопируйте их куда-нибудь вне изолированной системы и проведите следующее:​ Во-первых,​ Вам нужно скопировать ядро и initrd, созданное с помощью Casper в изолированной системе. Скопируйте их куда-нибудь вне изолированной системы и проведите следующее:​
-<​code>​cp chroot/​boot/​vmlinuz-3.**-**-generic image/​casper/​vmlinuz +<​code>​ 
-cp chroot/​boot/​initrd.img-3.**-**-generic ​image/​casper/initrd.gz</​code>​+cp chroot/​boot/​vmlinuz-3.**-**-generic image/​casper/​vmlinuz 
 +cp initrd.lz image/​casper 
 +</​code>​
 Во-вторых,​ если у Вас возникли проблемы с копированием ядра или инитрд — может быть, у Вас этот файл не один — тогда используйте следующие команды:​ Во-вторых,​ если у Вас возникли проблемы с копированием ядра или инитрд — может быть, у Вас этот файл не один — тогда используйте следующие команды:​
-<​code>​for file in chroot/​boot/​vmlinuz-3.**-**-generic;​ do cp $file image/​casper/​vmlinuz;​ done +<​code>​ 
-for file in chroot/​boot/​initrd.img-3.**-**-generic;​ do cp $file image/​casper/​initrd.gz;​ done</​code>​+for file in chroot/​boot/​vmlinuz-3.**-**-generic;​ do cp $file image/​casper/​vmlinuz;​ done 
 +for file in chroot/​boot/​initrd.img-3.**-**-generic;​ do cp $file image/​casper/​initrd.gz;​ done 
 +</​code>​
 Теперь надо поставить ISOLinux и SBM командами:​ Теперь надо поставить ISOLinux и SBM командами:​
-<​code>​cp /​usr/​lib/​syslinux /​isolinux.bin image/​isolinux/​+<​code>​ 
 +cp /​usr/​lib/​syslinux /​isolinux.bin image/​isolinux/​
 cp /​boot/​memtest86+.bin image/​install/​memtest cp /​boot/​memtest86+.bin image/​install/​memtest
-cp /​boot/​sbm.img ​ image/​install/</​code>​+cp /​boot/​sbm.img ​ image/​install/​ 
 +</​code>​
  
 ==== Инструкции при загрузке при создании Remix ==== ==== Инструкции при загрузке при создании Remix ====
Строка 218: Строка 305:
  
 1. Скопировать текст и потом его изменить. 1. Скопировать текст и потом его изменить.
 +
 или или
 +
 2. Использовать следующую команду:​ 2. Использовать следующую команду:​
  
-<​code>​printf "​\x18">​ emptyfile</​code>​+<​code>​printf "​\x18"​ > emptyfile</​code>​
  
 и изменить файл emptyfile, используя любой текстовый редактор. Добавьте имя файла после символа и затем со следующей строки напишите то, что Вы хотите вывести на экран в качестве приветствия. Сохраните данный файл как isolinux.txt и дело в шляпе! и изменить файл emptyfile, используя любой текстовый редактор. Добавьте имя файла после символа и затем со следующей строки напишите то, что Вы хотите вывести на экран в качестве приветствия. Сохраните данный файл как isolinux.txt и дело в шляпе!
Строка 231: Строка 320:
 Для того чтобы создать файл splash.rle, создайте изображение 640*480, конвертируйте его в 15 цветов и сохраните файл в формате .bmp. После установите NetPBM и выполните команды:​ Для того чтобы создать файл splash.rle, создайте изображение 640*480, конвертируйте его в 15 цветов и сохраните файл в формате .bmp. После установите NetPBM и выполните команды:​
  
-<​code>​bmptoppm splash.bmp>​ splash.ppm+<​code>​bmptoppm splash.bmp > splash.ppm
 ppmtolss16 '#​ffffff=7'​ <​splash.ppm>​ splash.rle</​code>​ ppmtolss16 '#​ffffff=7'​ <​splash.ppm>​ splash.rle</​code>​
  
-Если Вы хотите использовать анимированные изображения,​ такие как Usplash, убедитесь в том что Вы добавили "VGA = RRR", где RRR — ширина изображения.+Если Вы хотите использовать анимированные изображения,​ такие как Usplash, убедитесь в том что Вы добавили "​VGA=RRR",​ где RRR — ширина изображения.
  
 ==== Настройка загрузчика ==== ==== Настройка загрузчика ====
Строка 243: Строка 332:
 DEFAULT live DEFAULT live
 LABEL live LABEL live
-menu label ^ Start or install Ubuntu +menu label ^Start or install Ubuntu 
-kernel / casper / vmlinuz +kernel /​casper/​vmlinuz 
-append file = / cdrom / preseed / ubuntu.seed boot = casper initrd = / casper / initrd.gz quiet splash ​-+append file=/​cdrom/​preseed/​ubuntu.seed boot=casper initrd=/​casper/​initrd.gz quiet splash
 LABEL check LABEL check
-menu label ^ Check CD for defects +menu label ^Check CD for defects 
-kernel / casper / vmlinuz +kernel /​casper/​vmlinuz 
-append boot = casper integrity-check initrd = / casper / initrd.gz quiet splash -+append boot=casper integrity-check initrd=/​casper/​initrd.gz quiet splash -
 LABEL memtest LABEL memtest
-menu label ^ Memory test +menu label ^Memory test 
-kernel / install / memtest+kernel /​install/​memtest
 append - append -
 LABEL hd LABEL hd
-menu label ^ Boot from first hard disk+menu label ^Boot from first hard disk
 localboot 0x80 localboot 0x80
 append - append -
Строка 271: Строка 360:
 Не забудьте выбрать правильное расширение для initrd (initrd.gz или initrd.lz). Теперь в CD можно войти, по крайней мере после того, как мы создадим образ. Не забудьте выбрать правильное расширение для initrd (initrd.gz или initrd.lz). Теперь в CD можно войти, по крайней мере после того, как мы создадим образ.
  
-==== Формальности. ==== +Помимо этого зададим нужную нам локаль при запуске с помощью ​стандартной темы ubuntu. 
-=== Создание манифеста. ​===+Для этого выполним ​
  
-<​code>​sudo chroot chroot dpkg-query-W - showformat = '$ {Package} $ {Version} \ n' | sudo tee image / casper / filesystem.manifest +<​code>​ 
-sudo cp-v image / casper / filesystem.manifest image / casper / filesystem.manifest-desktop +sudo aptitude install dpkg-dev uck 
-REMOVE = '​ubiquity ubiquity-frontend-gtk ubiquity-frontend-kde casper lupin-casper live-initramfs user-setup ​discover1 ​xresprobe os-prober libdebian-installer4'​+apt-get source gfxboot-theme-ubuntu gfxboot 
 +cd gfxboot-theme-ubuntu*/​ 
 +make DEFAULT_LANG=ru 
 +sudo cp -af boot/* ../​image/​isolinux/​ 
 +</​code>​ 
 + 
 +===== Формальности. ===== 
 +Следующие действия нужны для нормальной работы LiveCD. Нравится Вам это или нет, это нужно сделать. 
 +==== Создание манифеста. ==== 
 + 
 +<​code>​ 
 +sudo chroot chroot dpkg-query -W --showformat='​${Package} ${Version} \n' | sudo tee image/​casper/​filesystem.manifest 
 +sudo cp -v image/​casper/​filesystem.manifest image/​casper/​filesystem.manifest-desktop 
 +REMOVE = '​ubiquity ubiquity-frontend-gtk ubiquity-frontend-kde casper lupin-casper live-initramfs user-setup ​discover ​xresprobe os-prober libdebian-installer4'​
 for i in $ REMOVE for i in $ REMOVE
 do do
-sudo sed-i "/ $ {i} / d" image / casper / filesystem.manifest-desktop +sudo sed -i "/​${i}/​d"​ image/​casper/​filesystem.manifest-desktop 
-done</​code>​+done 
 +</​code>​
  
-=== Сжатие изолированной системы. ===+==== Сжатие изолированной системы. ​====
  
 Для того чтобы сжать систему в один файл, нужно ввести команду:​ Для того чтобы сжать систему в один файл, нужно ввести команду:​
Строка 300: Строка 403:
 Для этого выполним команду Для этого выполним команду
  
-<​code>​printf $ (sudo du -sx --block-size = 1 chroot | cut -f1)> image/​casper/​filesystem.size</​code>​+<​code>​printf $(sudo du -sx --block-size=1 chroot | cut -f1) > image/​casper/​filesystem.size</​code>​
  
-=== Создание diskdefines ===+==== Создание diskdefines ​====
  
 <​code>​nano image/​README.diskdefines</​code>​ <​code>​nano image/​README.diskdefines</​code>​
Строка 309: Строка 412:
  
 <​code>​ <​code>​
-# define DISKNAME Ubuntu 14.04 "​Trusty Tahr" - Release i386 ** Remix **+# define DISKNAME Ubuntu 14.04 LTS "​Trusty Tahr" - Release i386 ** Remix **
 # define TYPE binary # define TYPE binary
 # define TYPEbinary 1 # define TYPEbinary 1
Строка 320: Строка 423:
 </​code>​ </​code>​
  
-=== Признание LiveCD подлинной ===+==== Признание LiveCD подлинной ​====
  
 Создайте жесткую ссылку ubuntu на папку с образом диска и папку «.disk». Без этого LiveCD будет загружаться но USB Creator работать не будет. На всякий пожарный,​ создайте файлы со следующей информацией:​ Создайте жесткую ссылку ubuntu на папку с образом диска и папку «.disk». Без этого LiveCD будет загружаться но USB Creator работать не будет. На всякий пожарный,​ создайте файлы со следующей информацией:​
  
-<​code>​cd image+<​code>​ 
 +cd image
 ln -s . ubuntu ln -s . ubuntu
 mkdir .disk mkdir .disk
 cd .disk cd .disk
 +cp ../​../​casper-uuid-generic .
 touch base_installable touch base_installable
-echo "​full_cd / single">​ cd_type +echo "​full_cd/​single">​ cd_type 
-echo '​Ubuntu 14.04 "​Trusty Tahr" - Release i386 ** Remix **'>​ info +echo '​Ubuntu 14.04 LTS "​Trusty Tahr" - Release i386 ** Remix **'>​ info 
-echo "http / / ubuntu-rescue-remix.org">​ release_notes_url +echo "http://​ubuntu-rescue-remix.org">​ release_notes_url 
-cd ../​..</​code>​+cd ../.. 
 +</​code>​
  
-=== Вычисление MD5 ===+==== Вычисление MD5 ====
  
-<​code>​sudo -s +<​code>​ 
-(cd image && find. -type f -print 0 | xargs -0 md5sum | grep -v"\ ./​md5sum.txt">​ md5sum.txt) +sudo -s 
-exit</​code>​+(cd image && find . -type f -print0 ​| xargs -0 md5sum | grep -v "​\./​md5sum.txt"​ > md5sum.txt) 
 +exit 
 +</​code>​
 Это вычислит контрольные суммы md5 для всех файлов в будущем образе. ​ Это вычислит контрольные суммы md5 для всех файлов в будущем образе. ​
  
-==== Создание ISO образа системы ====+===== Создание ISO образа системы ​=====
  
 Создать ISO образ из одной папки можно командой Создать ISO образ из одной папки можно командой
  
-<​code>​cd image +<​code>​ 
-sudo mkisofs -r -V "$ IMAGE_NAME"​ -cache-inodes -J -l -b isolinux/​isolinux.bin -c isolinux/​boot.cat -no-emul-boot -boot-load-size 4 -boot-info- table-o .. /ubuntu-remix.iso +cd image 
-cd ..</​code>​+sudo mkisofs -r -V "​$IMAGE_NAME"​ -cache-inodes -J -l -b isolinux/​isolinux.bin -c isolinux/​boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-custom-i386.iso . 
 +cd .. 
 +</​code>​
  
 Файл boot.cat будет создан автоматически. Теперь созданный Вами образ можно использовать ​ Файл boot.cat будет создан автоматически. Теперь созданный Вами образ можно использовать ​
 для установки в Virtualbox и на реальном железе. ​ для установки в Virtualbox и на реальном железе. ​
- 
-===== Устройство LiveCD ===== 
- 
  
 ===== Полезные ссылки ===== ===== Полезные ссылки =====
Строка 359: Строка 466:
   * https://​help.ubuntu.com/​community/​LiveCDCustomization_ru   * https://​help.ubuntu.com/​community/​LiveCDCustomization_ru
   * http://​askubuntu.com/​questions/​48535/​how-to-customize-live-ubuntu-cd   * http://​askubuntu.com/​questions/​48535/​how-to-customize-live-ubuntu-cd
 +  * http://​nikmy.ru/​index.php/​stati/​linux/​sistemnye/​119-sozdanie-svoej-sborki-live-cd-ubuntu.html?​showall=1&​limitstart= - Ссылка на исходную статью
 {{tag>​Администрирование HOWTO FIXME}} {{tag>​Администрирование HOWTO FIXME}}