Linux ubuntu создать образ

Создание iso со своим образом Ubuntu и набором программ

Я собирал собственный образ ISO Ubuntu 18.04 по инструкции LiveCDCustomization на системе Ubuntu 14.04.

Мне необходимо было поставить некоторые программы, чтобы они были доступны сразу с LiveCD, без установки. Это удобно, особенно без наличия интернета.

В оригинальной инструкции LiveCDCustomization есть некоторые неясные моменты и неточности. Сама инструкция устарела, и частично не работала.

Поэтому я делал по шагам и записывал выполняемые действия.

Важно понимать, что вы делаете: вся кастомизация LiveCD проходит под chroot, и на рабочую систему (ту, где вы сейчас работаете) влияния не оказывает.

Но если выйти из chroot, все введенные команды применяются к рабочей системе. Это требуется в некоторых местах инструкции: при первичной подготовке, и в конце, при сборке. Смотри не перепутай

Подготовка

Устанавливаем зависимости на хост-систему

Потребуется 2 пакета, один занимается работой со сжатой файловой системой squashfs, другой для создания ISO-образа CDROM (ISO-9660):

sudo apt install squashfs-tools genisoimage

Странно, но у меня уже были установлены эти пакеты. Ради интереса найдем, когда эти пакеты были установлены, для чего поищем в истории apt:

cd /var/log/apt # ищем в history.log grep -r squashfs --color=always # если прошло много времени, история упаковывается в .gz, ищем в ней: find -name \*.gz -print0 | xargs -0 zgrep squashfs --color=always # --color=always добавляет подсветку найденных слов

Также потребуется виртуальная машина для быстрого тестирования. Я использовал Virtualbox

Монтируем оригинальный образ ISO в mnt

Скачиваем оригинальный ISO образ Ubuntu, который будем модифицировать под свои нужны. Допустим, образ скачан и находится в ~/downloads/ubuntu-18.04-desktop-amd64.iso .

Подмонтируем этот ISO образ в каталог ~/livecdtmp/mnt для дальнейшей работы:

# создаем сразу два вложенных каталога mkdir -p ~/livecdtmp/mnt # копируем ISO образ диска cp ~/downloads/ubuntu-18.04-desktop-amd64.iso ~/livecdtmp # входим в каталог, где будет проводиться основная работа cd ~/livecdtmp # монтируем CD-диск sudo mount -o loop ubuntu-18.04-desktop-amd64.iso mnt

Копируем содержимого mnt в extract-cd

mkdir extract-cd rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Расжимаем файловую систему squashfs и перемещаем содержимое в edit

sudo unsquashfs mnt/casper/filesystem.squashfs sudo mv squashfs-root edit

Подготавливаем рабочую среду

Копируем resolv.conf с рабочей системы, чтобы было сетевое соединение внутри чрута, также делаем это для сети::

sudo cp /etc/resolv.conf edit/etc/ sudo mount -o bind /run/ edit/run sudo mount --bind /dev/ edit/dev

resolv.conf в следующих шагах оказался пустым, надо понять почему, и исправить

Читайте также:  Linux alias with parameters

Чрутимся, и начинаем работать со своим кастомизированным образом.

# chroot выполняется только от суперпользователя sudo su # чрутимся: chroot edit # < зачрутились# важно! чтобы не перепутать, где мы работаем, сразу сменим вид приглашения командной строки: PS1="(CHROOT) $PS1"
mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts export HOME=/root export LC_ALL=C

dbus-uuidgen из оригинальной инструкции я пропустил

Файл /etc/resolv.conv оказался пустым, значит что-то я сделал не так. Отредактируем его вручную, скопировав содержимое /etc/resolv.conv из рабочей системы:

vi /etc/resolv.conv # это не команды, а содержимое файла, которое следует внести. Не копировать слепо! Подставить из своей рабочей системы, файл /etc/resolv.conv! У меня оно такое: nameserver 127.0.1.1

Теперь сеть у нас доступна внутри чрута, проверим

Кастомизация своего образа Ubuntu

Напомню, сейчас мы находимся под чрутом ( chroot edit ), и у нас работает сеть. Все что написано ниже, является делом вкуса.

Ставим необходимые пакеты

Смотрим установленные пакеты:

dpkg-query -W --showformat='$\t$\n' | sort -nr | less

Если хотим, обновляем пакеты:

Устанавливаем свои пакеты:

# программы для работы с сетью apt install curl net-tools whois nmap # остальные - также по желанию apt install vim git htop zsh tmux

Следующие пакеты поставить не удалось, так как их нет в /etc/apt/ :

shutter krusader filezilla lynx

узнать, какие репо следует добавить для установки

Установить программы можно и из deb-пакетов, на примере Atom:

У меня установка не удалась, так как этот пакет зависит от gconf2 и gconf-service . Эти зависимости apt не сумел разрешить. Чтобы это исправить, требуется добавить в /etc/apt/ дополнительные репо. какие?

dpkg: dependency problems prevent configuration of atom: atom depends on gconf2; however: Package gconf2 is not installed. atom depends on gconf-service; however: Package gconf-service is not installed.

Кастомизация

Это по-желанию: читаем оригинальную инструкцию LiveCDCustomization, раздел Customizations и настраиваем фон рабочего стола, шрифты, региональные настройки и прочее. Первый шаг dbus-uuidgen и dpkg-divert можно пропустить, для Ubuntu 18.04 они не повлияли на работу apt .

Проверка и сборка ISO образа

Проверяем, что нет пользователя UID=999

В оригинальной мане указано, что если существует пользователь с UID 999, с LiveCD невозможно будет загрузиться. Такой пользователь может возникнуть при установке Virtualbox.

Читайте также:  Открыть файл hosts linux

есть есть, то выполнить usermod -u 500 $hit , где $hit — имя проблемного пользователя

Пересобираем initrd

После модификации ядра, скриптов загрузки или добавления модулей ядра, нужно пересобрать initrd.gz и переместить его в каталог casper

mkinitramfs -o /initrd.gz 4.15.0-23-generic # выходим из чрута и перемещаем собранный образ exit mv edit/initrd.gz extract-cd/casper/
chroot edit PS1="(CHROOT) $PS1"

Очищаем образ

Удаляем все, что не установилось и чистим систему:

apt --fix-broken install apt autoremove rm -rf /tmp/* rm /etc/resolv.conf rm /var/lib/dbus/machine-id # у меня файла не было

Размонтируем

umount /proc || umount -lf /proc umount /sys umount /dev/pts exit # выходим из chroot umount edit/dev

Собираем ISO образ

Манифест

# делаем манифест записываемым chmod +w extract-cd/casper/filesystem.manifest # обновляем манифест chroot edit dpkg-query -W --showformat='$ $\n' > extract-cd/casper/filesystem.manifest # пишем установленные пакеты cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop # удаляем упоминания пакетов sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop

Сжимаем файловую систему

rm extract-cd/casper/filesystem.squashfs ## у меня не было этого файла mksquashfs edit extract-cd/casper/filesystem.squashfs -b 1048576

Пишем размер файловой системы и md5 хеши файлов

printf $(du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size cd extract-cd rm md5sum.txt find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt

Создаем готовый ISO

mkisofs -D -r -V "My Ubuntu custom image" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../my-ubuntu.iso .

Итоговый образ my-ubuntu.iso проверяем в Virtualbox.

Записываем ISO на флешку

Для записи я использовал unetbootin , который доступен из центра приложений Ubuntu.

Источник

Как создать ISO-файл в Ubuntu

Большинство операционных систем и программ, особенно больших, поставляется в формате ISO, содержащем все необходимые установочные файлы. ISO-файл или ISO-образ — это идеальное представление всех файлов и папок, содержащихся на CD/DVD. Также можно сказать, что это пакет всех установочных файлов и папок в одном единственном файле в формате ISO.

Вы можете легко создавать резервные копии или архивировать файлы и папки в ISO-файл. Этот ISO-файл можно использовать в качестве внешнего диска, загрузочного USB или CD/DVD, чтобы впоследствии использовать его для установки, сохранения в качестве резервной копии или передачи кому-либо.

С помощью файлов ISO вы можете:

  • Создать установочный диск путем записи на USB или CD/DVD.
  • Монтировать как виртуальный диск.
  • Использовать для установки ОС или программ.

Использование утилиты genisoimage

В Linux можно создать ISO-образ из папки с помощью утилиты genisoimage, используя аргумент командной строки. Вы можете использовать genisoimage для автоматического резервного копирования данных с возможностью исключения некоторых отдельных файлов, если это необходимо. Она также поддерживает подстановочные знаки.

Читайте также:  Zfs on linux ssd

Установка genisoimage

Обновите список доступных пакетов командой

apt update

Установите genisoimage командой ниже

Установка genisoimage

Использование genisoimage

Основной синтаксис команды следующий:

genisoimage -o [filename.iso] [directory_path]

-o определяет имя файла ISO, который вы хотите создать, а затем каталог, в котором вы хотите создать резервную копию или сохранить ISO-файл.

Например, я хочу создать ISO-файл из каталога /home/user/Documents/backup и сохранить его как файл backup.iso:

genisoimage -o backup.iso /home/user/Documents/backup

Используйте genisoimage для создания файла ISO.

Он создаст файл backup.iso и сохранит его в текущем каталоге.

Использование команды dd в Терминале для создания ISO-файла

В основном с помощью команды dd можно создавать копии данных, будь то файлы или папки, разделы или CD/DVD-диски. Мы также можем использовать команду dd для создания файлов ISO.

Основной синтаксис команды dd следующий:

If= Указывает команде, откуда вводить исходные данные.

Of= Указывает команде, где определить выходные данные.

Например, я введу следующую команду для копирования и сохранения содержимого диска в виде ISO-файла с именем diskimage.iso:

sudo dd if= /dev/sdb of= diskimage.iso

Создание ISO-файла с помощью команды dd

ISO-образ с именем diskimage.iso будет создан в текущем каталоге.

Использование утилиты Brasero для создания файла ISO

Для создания ISO-файла можно использовать утилиту Brasero для записи дисков Linux. Старые версии Ubuntu включают встроенную утилиту Brasero. Однако в 16.04 и более новых версиях вам придется вручную установить эту утилиту.

Чтобы установить Brasero, нажмите Ctrl+Alt+T для запуска Терминала.

Введите следующую команду в Терминале:

sudo apt-get install brasero

Установка Brasero

После завершения установки откройте приложение.

Чтобы открыть приложение Brasero, нажмите клавишу windows или щелкните на значке dash в левом нижнем углу рабочего стола, чтобы открыть меню Dash.

Откройте Brasero

Затем найдите приложение Brasero, набрав его название в строке поиска. Когда приложение появится, нажмите на него, чтобы открыть.

Иконка Brasero выглядит следующим образом

В окне приложения Brasero нажмите на опцию Data project.

Создание проекта данных в Brasero

Затем нажмите на значок +, чтобы начать добавлять файлы в новый проект.

Добавление файлов в проект Data

В появившемся окне выберите отдельные файлы или каталоги и нажмите на кнопку Add.

Добавить папку

Вы заметите, что файлы добавлены в приложение. Нажмите на Записать.

Проект нового диска данных

Выберите место для сохранения ISO-файла. Укажите имя ISO-файла с расширением .iso и нажмите на кнопку Create Image.

Создать образ

По завершении вы получите уведомление об успешном создании образа.

Образ данных успешно создан

Итак, выше были описаны различные способы создания ISO-файлов. После создания ISO-файла вы можете сохранить его в качестве резервной копии, использовать как виртуальный CD/DVD, записать на USB или CD/DVD и поделиться им с кем-нибудь.

Похожие записи:

Источник

Оцените статью
Adblock
detector