LINUX.ORG.RU
ФорумTalks

makeiso: Программа для создания загрузочных ISO-образов

 ,


3

2

Многих пользователей GNU/Linux часто интересует вопрос: как система работает изнутри, какие этапы она проходит в процессе загрузки и как собрать свой дистрибутив?

Так, в процессе работы над принципиально новым дистрибутивом GNU/Linux в первую же очередь был написан простой скрипт на Bash, автоматизирующий процесс создания загрузочных ISO-образов для будущего дистрибутива. Данный скрипт в чуть более 200 строчек по сути является «самодокументируемым кодом» и поможет всем новичкам осуществлять сборки дистрибутивов Linux для личного использования.

Сборка ISO проходит в несколько этапов:

  • Установка загрузчиков syslinux для PC и grub для EFI;
  • Сборка и установка ядра Linux;
  • Сборка и установка окружения Busybox;
  • Настройка корневой системы, создание необходимых каталогов и файлов;
  • Создание ISO для загрузки с CD или USB-накопителей.

Требования к системе для сборки:

  • grub версии 2 с поддержкой EFI, но можно обойтись и без него, если вам не нужна поддержка EFI;
  • syslinux содержит утилиту isohybrid, которая позволяет создавать загрузочные USB-накопители, а не только CD/DVD-диски, можно так же обойтись и без неё;
  • cdrkit содержит утилиту genisoimage, которая создает ISO-образы, требуется обязательно. Обратите внимание, что не во всех дистрибутивах genisoimage пропатчен для создания EFI-разделов.
  • Потребуются инструменты для сборки и компиляции программ, поскольку скрипт собирает из исходных кодов ванильное ядро Linux и окружение Busybox.

Как видно, скрипт делает немного, и более того: некоторые шаги вы можете пропустить, если например, у вас имеется собственное ядро Linux, которое вы собираетесь использовать для загрузки.

Для некоторых специфичных задач потребуются права root, поскольку скрипт должен подготовить EFI-образ для загрузки: необходимо выполнить команды mount и umount. Скрипт использует директорию /tmp для сборки, если у вас она находится в tmpfs, то потребуется около 2Гб свободной памяти: в /tmp собирается Linux и Busybox. Однако /tmp можно изменить на что-нибудь другое, например $HOME, — вы найдёте в скрипте как это сделать.

После всего, в рабочей директории /tmp/tmp.some-here появится файл bootable.iso — образ полностью готовый к записи на CD или USB-накопитель и дальнейшей загрузке с него. Образ можно протестировать в виртуальной машине или на компьютере, выполнив перезагрузку. Как всегда, для записи на USB используйте команду dd: dd if=/tmp/tmp.some-here/bootable.iso of=/dev/sdX.

Вкратце, весь процесс загрузки происходит так: железо передаёт управление загрузчику, загрузчик передаёт управление ядру и init самая первая программа в корне образа initramfs, которую ядро запускает. В качестве примера init запустит /bin/ash, предоставив доступ к командной строке. Возможности по созданию дистрибутивов ограничиваются только вашей фантазией.

Программа makeiso познавательна для всех желающих начать создавать собственные загрузочные ISO-образы с дистрибутивами GNU/Linux.

>>> Скриншот

>>> Подробности

Скачать

Перемещено JB из doc

★★★★★

Последнее исправление: Klymedy (всего исправлений: 2)
Ответ на: комментарий от irton

Нарыл такую вещь как Finnix, около 150мб и кучу софта для администрирования, и чистая консоль.

daniilArch ★★
()

Я правильно понял, что от темы можно отписываться? И нафиг надо было писать простыню текста, чтобы в один момент все снести...

gh0stwizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.