Створення власного дистрибутива на базі ubuntu з нуля, російськомовна документація по ubuntu
Звичайно дуже радісно, що існують такі інструменти як Reconstructor і Ubuntu Customization Kit, проте вони все виконують в автоматичному режимі і не дуже-то підходять для тонкої настройки під себе. У цій статті я постараюся розповісти якомога руками зробити все те, що роблять вищеназвані інструменти і як змінити багато недоступні їм параметри.
Для створення Ubuntu Custom Live CD потрібно продумати три важливих моменти: 1) В якій системі ми будемо будувати наш диск. Сподіваюся, все Ви прекрасно розумієте, що ми ведемо мову про комп'ютер під управлінням Ubuntu. Якщо Ubuntu у Вас не встановлена, то Ви можете поставити її на віртуальну машину і там вже будувати образ диска. Крім цього, нам потрібно поставити такі пакети для створення живого диска: SYSLINUX, Squashfs-tools, genisoimage Перший пакет - завантажувач ядра, другий - файлова система SquashFS, а третій - творець образу диска.
2) Папка для образу диска. Образ диска - це те, що буде записано на CD / DVD / BluRay / USB (в залежності від того кому що подобається). Просто створіть окрему папку для образу диска. Для образу потрібно скопіювати: - Завантажувач ISOLinux - Ядро з initrd і ізольованою системою - Додаткові файли для вказівки часу завантаження і інших важливих (і не дуже) параметрів
Папка для образу диска створюється окремо від кореня майбутньої ізольованої системи.
3) Ізольована система
Ізольована система - це та система, яка буде завантажена в LiveCD. Їй не потрібні ні ядро, ні завантажувач, якщо Ви збираєтеся встановлювати ОС за допомогою установника Ubiquity. Для того щоб провести автоматичне визначення і налаштування обладнання, потрібно жива система під символічною назвою Casper. Її потрібно встановити в initrd, а ядро Casper скопіювати в папку образу диска.
Ізольована система зберігається і виконується у вигляді файлу, стиснутого в файл SquashFS. На даний момент ІС буде збережена у вигляді папки в хост-системі.
Таким чином, створення ISO образу зводиться до - створення ізольованої системи і установки в ній пакетів з ПО; - стиску ізольованої системи в файл; - створення і конфігурації образу диска, що складається з завантажувача ISOLinux, ядра системи, стисненого файлу файлової системи (вибачте за тавтологію) і багато чого іншого; - записи ISO на диск і перевірки його роботи.
Для початку, встановимо debootstrap в хост-системі за допомогою командного рядка, після чого створимо папки «work» (для роботи) і «image» (для ізольованої системи). Після установки запускаємо debootstrap
Зверніть увагу: Версія debootstrap для Ubuntu містить файли для завантаження тільки наступного релізу Ubuntu! Т. е. Ви не зможете завантажити базову систему для raring (Ubuntu 13.04) в precise (Ubuntu 12.04 LTS). На наше щастя, обійти це обмеження легко обійти, скачавши debootstrap зі сховищ raring або взявши останню версію з папки pool і встановивши його за допомогою dpkg. Крім того, у debootstrap немає залежностей, а значить його установка вручну не викличе жодних проблем у Вашій системі
Зверніть увагу: Якщо Ви хочете зібрати наступний реліз Ubuntu, але не можете його завантажити, скористайтеся наступною хитрістю:
Важливо встановити програми на кшталт MySQL, Virtualbox після того як були завантажені ядро Linux (а воно у нас не завантажено! (Настільки у нас мінімальна система)) і встановлені загальні настройки, тому що ці програми вимагають установки своїх модулів ядра для повної настройки.
Якщо Ви плануєте встановити що-небудь, що використовує метапакети оточень робочого столу (наприклад xfce4), Вам також потрібно зв'язати файл в ізольованій системі як слід (не тільки за допомогою devpts). Інакше, GRUB при установці видасть помилку і Ви не зможете налаштувати пакети. Щоб цього уникнути зв'яжіть пристрою за допомогою команди:
Аналогічно потрібно примонтировать proc, sysfs і devpts Тепер скопіюємо системні файли (їх можна взяти на будь-якій машині з Ubuntu, підключеної до інтернету):
Зверніть увагу: Якщо Ви завантажили одну версію Ubuntu, а у Вас встановлена інша, Вам потрібно змінити прикметник в chroot / etc / apt / sources.list командою:
Якщо Вам потрібно, Ви можете підправити sources.list і додати туди сторонній репозиторій. Якщо Ви додаєте PPA репозиторій, то Вам крім самого сховища потрібно додати ще й OpenPGP ключ для пакетного менеджера в ізольованій системі. Його можна знайти на сторінці опису сховища (він може виглядати ось так: 1024/12345678). Скопіюйте або запишіть частина після косою риси (як тут: 12345678). Цей ключ потрібно додати якомога швидше, як тільки ми чрутнемся в ізольовану систему.
Обов'язково! Зробіть бекап / sbin / initctl, тому що наступний крок видаляє цей файл. Справа в тому що починаючи з версії 10.04 upstart не містить файлу /sbin/initctl.distrib і оновлення цього пакета цей файл не повертає.
Якщо Ви цього не зробите, то консоль вилається:
Оновлення пакети, якщо хочете.
Встановіть пакети, необхідні для живої системи:
Раніше, до Ubuntu 10.10 пакет discover називався discover1.
Якщо Ви завантажуєте ОС Ubuntu 10.04, то Вам потрібно поставити такі пакети: grub2 plymouth-x11
Для ранніх релізів (закінчуючи версією 9.04) була характерна наступна проблема: ОС вішала мережу, якщо було встановлено Network Manager. На наше щастя, дана проблема була усунена в релізі 9.10. Команда для установки NM:
Далі, встановіть ті програми які Ви захочете. На даному етапі Ви створюєте свою систему. Заповнюйте її тим, чим хочете. Однак перед цим поставте програму ubuntu after install для установки тих програм, які Ви додати забули. Після наповнення ПО повертайтеся до цієї настанови.
Для GTK інтерфейсу - Unity, GNOME, XFCE і LXDE
Unity - стандартна ОРС для ubuntu, найкрасивіша ОРС (на мою думку) GNOME - щось по-новому від старого доброго Mac OS X XFCE і LXDE - це ОРС, що не навантажують ресурси. Рекомендовані для установки на старих комп'ютерах
Для Qt інтерфейсу - KDE
KDE - це Windows-подібне оточення робочого столу і мабуть, в усьому хоче бути схожим на свого старшого побратима (наприклад це ОРС найбільше за обсягом даних)
На даному етапі я розповім, як створити файли initrd.lz і casper-uuid-generic, необхідні для нормальної роботи образу. У chroot виконуємо
У тому ж терміналі відкриваємо другу вкладку і виконуємо:
Возращаться в першу вкладку і видаляємо з / tmp все:
Якщо Ви встановили всі програми, то переконаєтеся що буде працювати
Раніше в цьому керівництві я просив Вас зробити бекап / sbin / initctl. Ви його зробили? Він зараз може знадобитися. Якщо ця команда не спрацює, відновіть / sbin / initctl з бекапу.
Якщо у Вас більше одного ядра Linux, видаліть старі ядра:
Після чого проведіть очистку:
Якщо у Вас все ще підключений / dev, вимкніть її:
Тобто, Ви увійшли в ізольовану систему, встановили пакети, провели очистку і вийшли.
Даний пункт не є обов'язковим. При завантаженні оточення робочого столу (в моєму випадку Unity 7) хочеться налаштувати програми на бічній панелі, налаштувати годинник, які виглядають жахливо в звичайній версії Unity. Тому тут я розповім як можна налаштувати unity 7. Загальновідомо, що Unity 7 налаштовується через dconf. Файли налаштувань за замовчуванням знаходяться в папці
і мають імена відповідні ієрархії в dconf-editor. Ми змінимо деякі з них:
Необхідно встановити на хост-систему 4 пакети: 1. Syslinux - завантажувач, що дозволяє зробити ISO образ завантажуваних; 2. SquashFS-tools - програма для стиснення образу системи 3. Genisoimage - пакет для роботи з файлами образів диска. Нам з цього пакета знадобиться утиліта mkisofs 4. SBM - завантажувач для LiveCD
Створіть папку для cd з трьома підкаталогами:
# Те ж саме можна зробити командою # 'Mkdir image image / casper image / isolinux image / install #' По-перше, Вам потрібно скопіювати ядро і initrd, створене за допомогою Casper в ізольованій системі. Скопіюйте їх куди-небудь поза ізольованої системи і проведіть наступне:
Тепер треба поставити ISOLinux і SBM командами:
Для того щоб дати будь-які інструкції при завантаженні користувачеві потрібно створити файл image / isolinux / isolinux.txt, наприклад:
Графіка під час завантаження може отсутвовать, але це не головне. Головне полягає в тому, що в тексті зверху є спецсимвол, який вказує на файл splash.rle. Щоб створити цей хитрий символ потрібно:
1. Скопіювати текст і потім його змінити.
2. Використовувати наступну команду:
Для того щоб створити файл splash.rle, створіть зображення 640 * 480, конвертуйте його в 15 кольорів і збережіть файл у форматі .bmp. Після встановіть NetPBM і виконайте команди:
Якщо Ви хочете використовувати анімовані зображення, такі як Usplash, переконайтеся в тому що Ви додали «VGA = RRR», де RRR - ширина зображення.
Створіть файл image / isolinux / isolinux.cfg для настройки завантажувача. Будь ласка, прочитайте інструкцію по створенню конфіга в / usr / share / doc / syslinux для того щоб дізнатися всі можливості конфігурації. Тут я викладу зразок конфіга (якщо що, звіряйтеся з ним):
Не забудьте вибрати правильне розширення для initrd (initrd.gz або initrd.lz). Тепер в CD можна увійти, принаймні після того, як ми створимо образ.
Крім цього задамо потрібну нам локаль при запуску за допомогою стандартної теми ubuntu. Для цього виконаємо
Докладніші відомості про процес потрібні для нормальної роботи LiveCD. Подобається Вам це чи ні, це потрібно зробити.
Для того щоб стиснути систему в один файл, потрібно ввести команду:
Ця команда створить на диску filesystem.squashfs з стислій ОС. Якщо Вам потрібно встановити з LiveCD, залиште розділ / boot в спокої. Якщо Ви хочете створити LiveCD тільки для демонстрації, то / boot можна видалити. Тоді команда, зазначена вище, буде мати вигляд:
Так, і ще: якщо Ви створюєте Убунту на версії, яка вийшла раніше, то потрібно встановити пакет з тієї версії, яку Ви хочете створити! (Інакше Ваш LiveCD не завантажили) Наприклад, у Вас встановлена Ubuntu 12.04, а Ви хочете створити збірку Ubuntu 14.04. Тоді Вам будуть потрібні інструменти з trusty (14.04) сховища. Крім файлу стислій файлової системи, потрібно написати файл з розміром цієї ФС. Для цього виконаємо команду
Створіть жорстке посилання ubuntu на папку з образом диска і папку «.disk». Без цього LiveCD буде завантажуватися але USB Creator працювати не буде. На всякий пожежний, створіть файли з наступною інформацією:
Це визначить контрольні суми md5 для всіх файлів в майбутньому образі.
Створити ISO образ з однієї папки можна командою
Файл boot.cat буде створений автоматично. Тепер створений Вами образ можна використовувати для установки в Virtualbox і на реальному залозі.