Как сделать образ centos

Добавил пользователь Валентин П.
Обновлено: 05.10.2024

Для создания образа жесткого диск не обязательно использовать утилиты на подобии Acronis True Image или Norton Ghost, достаточно простой утилиты dd, которая входит в состав большинства Unix-подобных операционных систем (Linux, FreeBSD, Solaris и т.д.) В статье рассмотрен простой способ создания резервной копии образа жесткого диска при помощи dd. Первым делом необходимо подготовиться к резервному копированию. В данной статье введем следующие обозначения:

  • /dev/sda — диск, образ которого необходимо создать;
  • /dev/sdb — диск на который будет записан образ.

При необходимости нужно подставить собственные значения.

Подготовка к созданию образа жесткого диска

Первым делом необходимо загрузиться с любого доступного Live-CD диска, имеющего утилиту dd, и войти в командную строку в качестве суперпользователя. Создаем точку монтирования для проведения резервного копирования.

Монтируем жесткий диск на который необходимо сохранить образ.

Создание образа жесткого диска

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

  • if=/dev/sda — копируем весь жесткий диск sda;
  • of=/mnt/backup/sda.img — копируем в /mnt/backup/sda.img;
  • bs=8M — задаем размер кэша жесткого диска для ускорения процедуры копирования (иначе данные будут сбрасываться малыми порциями по 512 байт);
  • conv=sync,noerror — указываем dd на необходимость копирования по типу бит-в-бит с игнорированием ошибок чтения.

Для сокращения размера образа жесткого диска его можно сжать любым архиватором.

Восстановление образа жесткого диска

Для восстановления образа жесткого диска необходимо проделать процедуру обратную процедуре создания этого образа.

При использовании сжатия параллельно необходимо разархивировать образ.

Миграция системы на другой жесткий диск

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

После чего при необходимости устанавливаем загрузку с данного жесткого диска. При условии, что новый жесткий диск больше старого, на нем останется неразмеченная область. Ее следует разметить и отформатировать согласно имеющимся требованиям.

Статистика копирования в dd

Главный минус в dd — это отсутствие наглядного представления статистики выполнения процедуры копирования. Однако этот минус можно легко обойти. Достаточно подключиться к другому терминалу.

Определить номер процесса, под которым запущена dd.

Периодически посылать данному процессу команду kill -USR1 номер_процесса_dd .

Настройте свой собственный CentOS и создайте файлы образов ISO

Простой вариант: простая замена, пошив

Сначала идет грубая версия, цель: после установки ISO система предоставит нам необходимые инструменты и драйверы.

(1): Установите официальную ОС

Загрузите официальный пакет Centos, я загрузил здесь CentOS-7.4-x86_64-DVD-1708.iso
Затем установите его на сервере (сервер, используемый для настройки ISO)
Выберите установку в соответствии с вашими потребностями, здесь я выбрал минимальную установку

(2): Настройка сети


Поскольку это минимальная установка, сеть в это время не включается автоматически (не забудьте подключить сетевой кабель).
может использовать " ip a "Команда для просмотра сетевого порта, используйте dhclient Команда для автоматического получения ip.

Нет команды ifconfig для минимальной установки, используйте yum search ifconfig Можно увидеть команду для установки net-tools.x86_64 (не устанавливать сначала)

Настроить сеть: vi /etc/sysconfig/network-scripts/ifcfg-


Согласно ip a/addr/address Результат команды

Вы можете видеть, что сетевой порт - eno1, поэтому vi /etc/sysconfig/network-scripts/ifcfg-eno1
Измените ONBOOT = no в последней строке на ONBOOT=yes
Он будет автоматически получать ip при каждой загрузке

(3) Установите инструменты для создания ISO

(4) Создать каталог создания изображений

(1) Создать каталог продукции ISO

(2) Смонтируйте официальный загрузочный диск ISO (при условии, что это /dev.sdb4).

(3) Синхронизируйте файлы на официальном зеркале с каталогом создания изображений.

Вы можете использовать ll -a для просмотра каталога, где

isolinux directory: store the installation interface information when the CD is booted;
images directory: necessary boot image files;
Packages directory: install packages and information;
repodata directory: packages dependency information.

(5) Установите пакет / инструмент, который хотите добавить.

(1) Настроить yum
предназначен в основном для сохранения пакета rpm (для размещения в нашем настроенном ISO)

keepcache = 0 изменен на keepcache=1
сохранить кешированный пакет rpm
(2) Установите столько, сколько хотите
yum install -y net-tools.x86_64 vim i2c-tools gcc и т. д.
Вы также можете установить свой собственный пакет rpm
rpm -ivh evglow-1.0.0-1.x86_64.rpm Или у um install -y evglow-1.0.0-1.x86_64.rpm
Вы можете написать драйвер, который хотите установить, как пакет rpm, а также автоматически компилировать и устанавливать пакет rpm при его установке.

(6) Замените файлы в Packages /

Официальный пакет имеет размер 4G (так что U-диск в формате vfat32 не может быть скопирован), главным образом потому, что в нем хранится много пакетов rpm, нам не нужно так много, поэтому после установки необходимого rpm на сервере, в соответствии с текущим установленным rpm Список для вырезания пакетов / каталога
(1) Создать текущий список оборотов в минуту

(2) Поместите rpm-пакет согласно списку
сначала удалите оригинал

Конечно, он сообщит, что некоторые пакеты недоступны. Это пакеты rpm, которые мы установили с помощью yum, и наш собственный local.

Конечно, здесь есть не все пакеты yum, такие как centos-release-gcc и devtoolset-7-gcc.Эти пакеты находятся в других каталогах. Используйте команду find, чтобы найти их. Не забудьте вставить созданный вами rpm (если есть)
find / -name devtoolset-7
.rpm

(7) Восстановить зависимые файлы (очень важно)

Есть только один * -comps.xml, но имя слишком длинное, меня зовут

Примечание. Если пакет RPM будет добавлен позже, его необходимо создать повторно.

(8) Отредактируйте файл ks.cfg

Обычно после установки системы файл anaconda-ks.cfg будет существовать в корневом каталоге /,
Запишите конфигурацию во время установки системы. Скопируйте его в каталог Isolinux под зеркалом
Создайте каталог.

Требования для установки могут быть настроены в соответствии с этим ks.cfg, аналогично конфигурации rpmbuild,% pre представляет содержимое, которое запускается до установки системы, а% post представляет сценарий, который выполняется после установки системы.
% packages означает, что пакет должен быть установлен, в основном мы добавляем сюда rpm, который необходимо установить

Примечание. Каждый элемент должен заканчиваться на% end! ! !

Примечание 1. Имя RPM добавляется вместо имени файла rpm, например, мой настроенный пакет rpm, имя файла - evglow-1.0.0-1.x86_64.rpm, но имя RPM - evglow-tool, поэтому% Под пакетами есть evglow-tool

Примечание 2. Имя RPM можно запросить с помощью rpm -qai. Например, я раньше использовал yum install -y centos-release-scl, хотя загруженный пакет называется centos-release-scl-2-3.el7.centos.src.rpm
Но NAEM - это centos-release-scl, и хотя есть 3 пакета, просто напишите centos-release-scl (в случае сетевой установки yum -y install XXX пишет Напишите что угодно)

Примечание 3: можно использовать подстановочные знаки, Например, используемый во время установки
yum install -y devtoolset-7-gcc
, Теперь вы также можете использовать devtoolset-7-gcc * для обозначения установки всех пакетов с префиксом devtoolset-7-gcc
Примечание 4: эти пакеты (все пакеты и их зависимости) должны находиться в каталоге /root/iso/CentOS7.4-evglow/Packages/ и запускаться после их размещения в этом каталоге.
createrepo -g $ / repodata / * - comps.xml $ команда, в противном случае, даже если вы поместите пакет, вам все равно будет предложено, что пакет не существует, после того, как установка будет записана в ISO

(9) Отредактируйте файл запуска

(1)Modify the isolinux.cfg file

Изменено в label linux Конфигурация по этому пункту

Примечание: это под лейблом linux, не делайте ошибок, затем MYISO: /isolinux/ks.cfg, не теряйте двоеточие после MYISO

Примечание: если вы хотите настроить скорость передачи последовательного порта консоли, вы можете добавить ее позже. console=ttyS0,57600n8
Эффект следующий (это та же строка, она становится двумя строками, если не отображается)

Вы также можете установить console = ttyS3,115200n8 console = tty0 для одновременного отображения последовательного порта и внешней видеокарты PCI-E.
isolinux / isolinus.cfg и EFI / BOOT / grub.cfg должны быть изменены, информация о конфигурации двух файлов должна быть согласованной.

(10) Создание ISO

(1) Выполните следующую команду (есть много параметров, возможна небольшая ошибка при вводе текста вручную)

В это время будет сгенерирован файл CentOS7.4-evglow.iso. Следует отметить, что все файлы в каталоге /root/iso/CentOS7.4-evglow/ будут включены, поэтому, если вы ранее создали CentOS7.4- evglow.iso, повторный запуск этой команды будет включать ISO, сгенерированный в последний раз, в результате новый CentOS7.4-evglow.iso будет вдвое больше.
(2) Создать MD5

Обратите внимание на процесс установки:
(1) После создания CentOS7.4-wedge400.iso я скопировал его на флэш-накопитель USB, а затем использовал дискету UltraISO для записи диска под Windows. После завершения записи имя флэш-накопителя USB может быть да
"NO NAME", затем вручную измените значение LABEL, установленное во время предыдущего создания, например "EVGLOW".
Если это по-прежнему не работает, используйте следующий универсальный метод:

Создание дистрибутива под определённые нужды на основе пакетной базы CentOS. Часть 1.

Создание дистрибутива под определённые нужды на основе пакетной базы CentOS.

Долго думал, как начать изложение темы и решил начать повествование с обзора того, что находится на iso образе.

Итак, что же у нас на нём такое лежит.

mkdir CentOS-5.4-i386-bin-DVD
mount CentOS-5.4-i386-bin-DVD.iso CentOS-5.4-i386-bin-DVD -o loop
tree CentOS-5.4-i386-bin-DVD
CentOS-5.4-i386-bin-DVD
|— CentOS
| |— Cluster_Administration-as-IN-5.2-1.el5.centos.noarch.rpm
| |— Cluster_Administration-bn-IN-5.2-1.el5.centos.noarch.rpm
————————-skip————————————
|— EULA
|— GPL
|— NOTES
| |— RELEASE-NOTES-U1-as.html
| |— RELEASE-NOTES-U1-bn.html
————————-skip————————————
|— RPM-GPG-KEY-CentOS-5
|— RPM-GPG-KEY-beta
|— TRANS.TBL
|— images
| |— README
| |— TRANS.TBL
| |— boot.iso
————————-skip————————————
|— isolinux
| |— TRANS.TBL
| |— boot.cat
————————-skip————————————
`— repodata
|— TRANS.TBL
|— comps.xml
|— filelists.sqlite.bz2
|— filelists.xml.gz
|— other.sqlite.bz2
|— other.xml.gz
|— primary.sqlite.bz2
|— primary.xml.gz
`— repomd.xml

Уделим внимание вещам, которым стоит уделить внимание.

  • CentOS — директория, в которой лежат rpm-пакеты.
  • images — директория, в которой лежат файлы, необходимые для самого процесса инсталляции.
  • isolinux — директория одноимённого загрузчика.
  • repodata — директория, в которой лежат файлы, в которых проиндексировано всё, что лежит в директории с пакетами.

Для наглядности рассмотрим наиболее распространённые задачи.

The pungi project is two things. First and foremost it is a free opensource tool to spin Fedora installation trees / isos. It will be used to produce Fedora releases from Fedora 7 on until it is replaced by something better.

Хм, инструмент для сборки федоры…. дак rhel 5 и основан на какой-то из версий федоры(то ли 6 то ли 7 то ли вперемешку)!
И я стал экспериментировать. Долго ли, коротко ли, но вам уже будет представлен готовый порядок действий использования pungi для создания дистрибутива под свои нужды.

Порядок действий для сборки pungi. Описание сборки pungi было сделано в окружении, созданном с помощью pungi, и окружение, так скажем, очень минимально, для того чтоб я не пропустил никаких зависимостей.

Приготовились к тому, что по зависимостям будет вытащен целый вагон пакетов. Но на что не пойдёшь ради великого дела.

В файле /usr/lib/python2.4/site-packages/pypungi/pungi.py
Исправляем путь к файлу implantisomd5

В файле /usr/lib/python2.4/site-packages/pypungi/gather.py
Закомментировать строки

В файле /usr/lib/python2.4/site-packages/pypungi/config.py
Все надписи fedora меняем на CentOS. product_path тоже на CentOS.
Распишем, что же делает pungi. Чтобы знать и понимать.
1 Собирает пакеты из репозитариев и подготавливает их к использованию в установочном ISO образе. (По сути помещение нужных rpm пакетов, с разрешением зависимостей, в определённую директорию)
2 Проверяет comps.xml
3 Индексирует репозитарий.
4 Создаёт директорию repoview(Набор html файлов с описанием пакетов).
5 Запускает anaconda/buildinstall. (В качестве донора для создания окружения установщика, анаконда использует репозитарий, тот который будет помещён на компакт диск)
6 Может создавать образы, не более заданного размера. Если размер превышает объём носителя, то разделяет на необходимое колличество частей.
7 Запускает mkisofs для записи полученного в ISO образ.

В секции настройки репозитариев укажите свои.
И давайте сразу создадим вот такой скриптик build-centos.sh

1. Pungi всегда добавляет все пакеты из группы core файла comps.xml
2. Pungi, в зависимости от ключа к %packages, либо добавляет, либо не добавляет пакеты из группы base.
То есть, чтобы добиться от pungi добавления(на CD) пакета или группы, то ему это надо явно указать. Пример kickstart файла для сборки fedora-rawhide можно оценить тут: /usr/share/pungi/rawhide-fedora.ks, он намного наглядней, чем мои попытки описать суть.

Добрый вечер всем. Может и ламерский вопрос, но все же. Хочу перед обновлением на centos 7.4 хорошенько забэкапится, ну и заодно сделать уже бэкап по крону. Вот у меня есть такая разметка сейчас:

/boot и /boot/efi на зеркале. Рут на lvm поверх зеркала. Насколько консистентым и рабочим получится бэкап, если просто взять и затарить/рсинкать(dd?) /boot и /boot/efi? А для рута сделать lvm снэпшот и чем нибудь тоже забэкапить. Повторюсь, что все это хотелось бы сделать на работающей системе.

Ну и пользуясь случаем заодно спрошу про бэкап работащих kvm виртуалок. Появилось ли что нито новее guest agent для freezefs внутри виртуалки?


Для работающей системы лучше пройтись либо снапшотами, либо классическим tar. dd только под live уместен (имхо).

Нормальный бэкап работающей системы невозможен,как только вы скопируете файлы какието изменятся

Остановите сервер и сделайте образ той же clonezilla, это гарантия целостности данных

Если данных много, то rsync

Ну и чтоб подстраховаться копия папки etc и баз данных, так в случае падения хотябы новый сервак поднять можно

Спасибо всем. Я понимаю что с бэкапить livecd - самый верный вариант, но с другой стороны хотелось бы это автоматизировать по возможности. Пока склоняюсь к tar. Попробую им грязненько копирнуть /boot. Тут данные не должны же меняться если самому явно к ним не обращаться/изменять во время затаривания. Даже спецом проверил щас [acm]time. Да и там всего 300MB.


На FreeBSD я использую снапшоты ZFS. Очень удобно - если что-то работает не так, как ожидалось, то откат двумя командами zfs rollback .

Кстати, на FreeBSD сейчас linux_base CentOS 6.9 и 7.3.

iZEN ★★★★★ ( 06.10.17 14:34:25 )
Последнее исправление: iZEN 06.10.17 14:36:35 (всего исправлений: 3)

А что в линуксе нет аналога виндовского Volume Shadow Copy ?

В линуксе снапшоты есть - на lvm, btrfs, zfs.

Служба теневого копирования тома (англ. Volume Shadow Copy Service, VSS) — служба операционной системы Windows, позволяющая копировать файлы, с которыми в данный момент времени ведётся работа, и даже с системными и заблокированными файлами.

dump -L(ive) уже 15 лет как есть.

HISTORY
A dump utility appeared in Version 4 AT&T UNIX.

Да и сама система ридонли запускается только так, в отличие от.

Я делал рсинк на работающей системе, а когда он прошёл, загрузился в однопользовательский режим и сделал рсинк ещё раз, но он прошёл уже очень быстро.

Читайте также: