Як створити нестандартне зображення ISO у CentOS


20

Я намагаюся створити спеціальний образ ISO, який би встановив мінімально необхідні RPMS, а також деякі спеціальні написані RPM мого додатку. а також хоче виконати деякі дії після встановлення, такі як налаштування моєї програми та конфігурації VPN тощо.

Я бачив деякі посилання на google, але вони вказують на створення репо та ISO із змонтованого диска чи ISO зображення.

Спасибі Рамеш


ви також можете використовувати redhat kickstart для цієї роботи, простіший і гнучкіший вибір Детальніше тут: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
fyarci

Відповіді:


46
  1. Створіть каталог для монтажу вашого джерела.

    mkdir /tmp/bootiso
    
  2. Закріпіть циклом джерело ISO, яке ви змінюєте. (Завантажити з Red Hat / CentOS.)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. Створіть робочий каталог для ваших персоналізованих медіа.

    mkdir /tmp/bootisoks
    
  4. Скопіюйте вихідний носій у робочий каталог.

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. Відключіть джерело ISO та видаліть каталог.

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. Змінення дозволів на робочому каталозі.

    chmod -R u+w /tmp/bootisoks
    
  7. Скопіюйте свій скрипт Kickstart, який був модифікований для пакетів та %postв робочий каталог.

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. Скопіюйте будь-які додаткові RPM в структуру каталогу та оновіть метадані.

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. Додайте ударний запуск до параметрів завантаження.

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. Створіть новий ISO-файл.

    cd /tmp/bootisoks && \ 
    mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
    
  11. (Необов’язково) Використовуйте, isohybridякщо ви хочете, щоб ddфайл ISO був завантажувальним USB-ключем.

    isohybrid /tmp/boot.iso
    
  12. Додайте контрольну суму MD5 (щоб дозволити тестування носія).

    implantisomd5 /tmp/boot.iso
    

Якщо вам потрібна додаткова допомога щодо створення сценарію Kickstart , пропоную почати з офіційної документації Red Hat.


1
Можливо, тоді ви пропустили або провалили крок 4?
Аарон Коплі

3
@AaronCopley так, ти, мабуть, маєш рацію. Я також виявив це: github.com/joyent/mi-centos-7, який мені допоміг.
sivann

1
На кроці 9 я вважаю, що ви повинні дати останній параметр. (крапка) для вказівки поточного каталогу. Дивна поведінка за замовчуванням, але без цього mkisofs створює iso-файл, який містить лише файли з верхнього каталогу та відсутні підкаталоги та далі.
hshib

2
У мене також була проблема з кроком 4. При використанні команди "cp" вона не копіює приховані файли .discinfo та .treeinfo. Без цього створені iso не вдалося встановити під час встановлення скарги на те, що "CD / ROM не знайдено".
hshib

1
Ви можете скопіювати все за допомогою однієї команди з - "cp -r / tmp / bootiso /. / Tmp / bootisoks /" (це трохи хитро - примітка сингл. Після / tmp / bootiso /)
hshib
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.