Как развернуть образ линукс

Создание образа системы в Linux

Клонирование — создание точной копии исходного носителя.
В данном случае клонировать нужно корневую файловую систему Linux.
Клонированная копия и образ — одно и то же.

Зачем это надо?

Если вы администрируете парк компьютеров с одинаковой конфигурацией и хотите установить на них дистрибутив Линукс. Устанавливаем на одной машине, а на другие просто клонируем. Если система «накрылась», вы сможете восстановить её исходное состояние развертыванием образа, где всё уже установлено и настроено под ваши нужды

Как создать образ:

Во избежание недоразумений оговорим те разделы и диски, которые будем использовать

/dev/sda — жесткий диск с рабочей системой, его будем архивировать

/dev/sda1 — раздел, содержащий корневую фс

dev/sdb1 — раздел на внешнем жёстком диске для архивации

1.-Перезагрузитесь в однопользовательском режиме (single)

2.-Введите команду mount, чтобы узнать, какой раздел содержит корневую файловую систему (в примере используется /dev/sda1).Образ этого раздела и нужно сохранить на другом носителе. Например на внешнем жестком диске.

3.-Подмонтируйте внешний HDD

4.-Теперь перемонтируем корневую систему в режим «только для чтения» и создадим образ:

Как восстановить систему из созданного образа:

Нужно иметь под рукой: загрузочный компакт-диск любого дистрибутива Linux. При использовании простого диска (не LiveCD) для перехода на текстовую консоль нажмите Ctrl + Alt + F2.

При установке системы на пустой диск нужно создать разделы. При восстановлении после сбоя, ничего создавать не нужно. Лишь убедитесь в том, что раздел подкачки (Linux swap) создан.

Корнем становится каталог /install, к которому примонтирован новый HDD. В качестве командной оболочки выступает /bin/bash.
3.- Перезпишем загрузчик:

4.-Перезагрузим компьютер командой reboot. Копия системы восстановлена

Источник

Развертывание эталонного образа

Собираемся переходитьс с винды на Linux в организации. Проблемы, связанные с нашей специфической медицинской базой данных я решил.

Осталось понять как развернуть попроще образы. Есть подготовленный, установленный на отдельном разделе вариант Kubuntu 12.04 с нужным софтом, ярлычками и прочими мелочами. По идее можно тупо копировать на новый раздел и делать его загрузочным. Однако придется править как минимум fstab и grub2.

Собственно вопрос — как проще размножить настроенную систему на серию компов? Плюс время поджимает. Хотелось бы нацарапать пару несложных скриптов и запускать с внешнего носителя. Типа винт внешний с Линуксом и образом, который накатывается на внутренний HDD.

делаешь tar с содержимым винта, форматируешь винт на новом компе с укащанием старого UUID, распаковываешь tar, ставишь grub?

Перенос файлов раздела на новый раздел, и создание раздела на целевых машинах с нужным UUID решат проблему. Кроме того, можно поправить grub.cfg и fstab так, что-бы они использовали метки томов вместо UUID. В идеале всё, что вам нужно, можно сделать при помощи одного скрипта и архива файлов с донорского раздела. Образ не нужен. Но если охота, можете использовать Clonezilla или dd:)

какя-то фигня на л начинается
на сайте ubuntu.com на главной странице
или ман blkid sh dd busybox

Видимо, использовнаие относительных путей в fstab решит проблему. Осталось только утрамбовать это во вменяемый скрипт, который еще и груб поправит автоматом через chroot. Кстати, без понятия как управлять под чрутом. Он будет воспринимать команды скрипта? Я имею в виду grub-update сделать. Я так понимаю, надо установить дистрибутив на внешний винт и с него автоматом заливать на целевую машину.

Clonezilla не решит проблему с grub и fstab. пути не туда ведут. И в чем преимущество перед dd? Мне его проще использовать, но непонятно как править на конкретной машине. Не будет ли проблем с разделами.

Читайте также:  Операционная система для компьютера вместо windows

Видимо, использовнаие относительных путей в fstab решит проблему.

Что вы под этим понимаете ?

В /etc/fstab для указания файловой системы, которую вы хотите смонтировать можно использовать:
Имя устройства (раздела или логического тома), например /dev/sda1, /dev/mapper/vg0-root
LABEL или UUID файловой системы, смотрите в выводе ‘blkid’
По ID связке устройства и раздела, например /dev/disk/by-id/ata-ST3320620AS_****-part1.

Осталось только утрамбовать это во вменяемый скрипт,

А почему не использовать parted, можно посмотреть clonezilla или Ping Is Not Ghost ?

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

Точно так же как и обычным скриптом:

Если использовать fsarchiver, то UUID раздела будет сохранен и править fstab нужно будет только для других разделов.

а) настраиваем систему на sda1 и создает файл образ с помощью fsarchiver.

б) разворачиваем образ на новый ПК также на sda1

г) с помощью blkid узнаем UUID остальных разделов (если они есть) и прописываем в fstab

И в чем преимущество перед dd?

dd снимает полный посекторный образ, т.е. если раздел у вас 200 Gb, на нём файловая система, на которой занято всего 20 Гб данных, то dd вы будете снимать образ размером в 200 Гб, а не 20. Что бы уменьшить размер образа его можно сжимать, но с диска в любом случае будет прочитано 200 Гб данных, да и записано на другой диск так же 200 Гб, даже в случае сжатия и распаковки. Вы можете конечно предварительно перед снятием образа файловой системы уменьшить её размер, к примеру до 21 Гб, а заодно и размер раздела. Затем при переносе создать раздел нужного размера, развернуть на раздел файловую систему размером в 21 Гб и затем выполнить «resize» этой файловой системы на весь размер раздела. Как видите действий с ‘dd’ больше, чем вы себе представляли.

Я бы на вашем месте внимательней на него посмотрел. Можно разворачивать как по сети, так и бегая с флэшкой от компа к компу.

Можете конечно таскать винты с каждого компа и втыкать в один и клонить dd 🙂 (Я так понимаю на остальных компах винда.)

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

Там по идее будет вообще неразмеченная область. Разделы будут уничтожаться под ноль. Ценной информации локально не хранится. Как корректнее в данном случае? И нужно ли узнавать UUID, если можно использовать относительные пути? Хотя это потенциально может создать проблему при перестановке винтов, насколько я понимаю.

если можно использовать относительные пути?

Ещё раз, что вы понимаете под относительными путями ?

Поднимаете tftp сервер и dhcp, кладёте образ ядра и initramfs PING или clonezilla в директорию, обслуживаемую tftp сервером, пишете простенький конфиг. Загружаетесь по сети, готово.

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

На старые компы ставить Kubuntu . да вы что.

Источник

Разворачиваем рабочий образ linux с минимальным интерактивом

Эта публикация может быть интересна тем ленивым системным администраторам, которые используют что-то из нижеперечисленнго:

  • Linux — based систему на машинах-клиентах;
  • Тонкие/толстые однотипные клиенты на различном железе;
  • Сетевое хранилище клиентских данных;
  • Предустановленный регламентированный софт;
  • Openvpn/rdp к серверам приложений.
  • Плюшевый (мягкий и пушистый) мониторинг linux клиентов типа Nagios.

Речь пойдет о том, как с минимальными усилиями со стороны пользователя или штатного «эникейщика» установить на компьютер пользователя готовую систему с набором софта, настроенными сетевыми службами, предопределенными конфигами и т.д. Статья ориентирована в первую очередь на энтузиастов и начинающих линуксоидов, но приемы и скрипты вполне могут использоваться в боевом развёртывании группы из десятков машин ежедневно.

Читайте также:  Звуки для windows warcraft

Для начала определимся с дистрибутивом. Это, конечно, зависит прежде всего от задач. Я выбрал xubuntu 14.04 по трем простым причинам:

1. ubuntu — deb based система с широчайшей поддержкой и огромным количеством форумов;
2. xubuntu — легковесный вариант без рюшек и понтов, который не тормозит на машинах от 512Мб ОЗУ (есть в моём парке и такие динозаврики);
3. 14.04 — это LTS (Long Term Support) вариант c поддержкой до 2019 года.

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

Забегая вперед, отмечу: чтобы повторить описанное потребуется настроенный vpn сервер или «конфиг-мониторинг-сервер» в локальной сети, пара виртуальных или реальных машин, пара часов свободного времени и внимание к деталям.

Итак, первое, подготовка образа. Все этапы важны, но первый — это фундамент. Устанавливаем систему с cd/dvd/usb/сети и выбираем разметку дисков. Важно понимать, что наш образ не будет поддерживать динамического ресайза ДО развёртывания. А после, скорее всего такой ресайз и не потребуется. Под корень имеет смысл отдать 6-10 Гб.

Больший объем оправдан в случае, когда заведомо известно, что а) диски на клиентских машинах не будут меньше этого объема и б) действительно будет установлено много разных нужных пакетов.

Разметим /home и, наконец, swap разделы. В совокупности все три раздела у автора не вылезают за 30Гб (чтобы спокойно разместиться на ssd 30 Gb, это минимальная конфигурация по диску для моих клиентов). В случае, если заранее известен минимальный объём диска — приемника, имеет смысл подгонять разделы под него. Своп рекомендую размечать сразу за корнем диска, /home сразу за свопом, чтобы в случае ресайза не «возить их по диску в консоли», а сделать изящно одной командой. Устанавливаем локаль, имя пользователя, пароль, hostname и заходим в новоиспеченный Linux. Для продолжения потребуются пакеты x11vnc, ssh, rsync, openvpn, mc (обожаю mcedit, он мне родной, как нортон из девяностых).

В базу я на свой вкус добавил skype, icedove (thunderbird), iceweasel(firefox), chromium-browser, rdesktop калькулятор, монитор ресурсов, viber, libre office, wine и пару windows-приложений (гореть мне, конечно, за это в аду, но аналогов нет и не предвидится). Настраиваем медленно и неторопливо всё это дело. Проверяем, что всё запускается и работает.

Настраиваем vpn. У меня сеть распределенная, по два-три компьютера на одну геолокацию, больше 50 локаций по России, не наездишься. Создаем ssh-ключ к серверу и на сервере к клиенту (кому надо вводить эти пароли, подробности, к примеру, тут). На сервере создаем каталог безусловной синхронизации (для меня это рабочие скрипты, ключи openvpn, клиентский cron, служебные скрипты на python, бинарники С++). В рабочем примере это /var/sync/in, /var/sync/in/cron, /var/sync/out. В out будут логи и любая нужная нам информация с клиентов: скриншоты, отчеты по процессам, итд. В in как раз и будут скрипты синхронизации, задания cron, скрипты хартбитов для мониторинга, многочисленные конфиги системных служб (того же cups или openvpn).

Подготовка всего этого дела к тиражированию займет не многим больше времени, чем установка системы одному пользователю, но тщательная проработка деталей может существенно уменьшить время, которое админ в будущем потратит на скрипты «допиливающие» все образы в бою. Настроим openvpn на клиенте и убедимся, что пользовательский ключ[и] работа[ею]т. Не лишним будет и настроить grub2.

  • Хинт1: Хорошо, когда хостнейм, ip в openvpn и сертификат юзера содержат свой уникальный id, к примеру user10.key, x.y.z.10 и vladivostok_10 в качестве хостнейма;
  • Хинт2: Хорошо, когда копии этих файлов лежат под рукой, скажем /var/sync/hostname, /var/sync/id, /var/sync/location;
  • Хинт3: Зарезервировать 5-10 адресов под незарегистрированных пользователей тоже будет полезным.
Читайте также:  Webcam monitor mac os

Файлы из Хинт2 мы создавать не будем сознательно, по их отсутствию будет понятно, когда «новенькие» подключатся к нашему vpn.

Итак, всё шуршит, офис работает, калькулятор запускается, для rdp с сервером приложений уже есть ярлычок на рабочем столе.

Пришло время делать образ.

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

Clonezilla — отличная вещь, но в интерактивном режиме вводит в ступор любого эникейщика за триста миль от админа.
dd if=/dev/sda of=img.img — волшебная вещь, но вместе с данными мы получим мусор с пустой части диска, объём и скорость метода ужасают.

Norton ghost — не поддерживает ext4.

Partition copy из gparted — классная вещь, но, увы, тоже не для начинающих.

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

  • Образ должен помещаться на небольшой (в моем случае 2Гб) флешке;
  • Образ должен ставиться нажатием одной-двух кнопок;
  • После развертывания образ сам должен синхронизироваться и «докладывать» админу, что новая машина «в строю»;
  • Регистрация новой машины не должна занимать много времени;
  • (Важно!) Образ скорее всего будет записан на флешку из-под windows непрофессионалом по инструкции;
  • (АрхиВажно!) Образ скорее всего будет развиваться версионно, и его нужно периодически доделывать и быстро распространять.

Пришлось изобретать маленький велосипед, а точнее — писать разворачивающий скрипт. Для вышеупомянутых задач был выбран дистрибутив PartedMagic. Для заворачивания образа потребуется unetbootin+partedmagic или любой live-cd(usb) с линуксом и tar+b[g]zip на борту. Будем считать, что образ мы загрузили PartedMagic «run from ram» и флешка монтирована в /media/sdb1 (FAT32).

  • Ахтунг1 Напоминаю, раздел файла в fat32 не должен быть более 4Гб, следите за объёмом образа или выбирайте ext4 раздел.
  • Ахтунг2 NTFS раздел флешки под linux хоть и работает, но забирает огромное кол-во процессорного времени.

После загрузки монтируем наш диск (скорее всего /dev/sda1) и жмём прямо с него всю нашу систему, не забываем и про /home раздел:

Затем сделаем архив со всем содержимым нашего диска:

Тоже самое и для /home раздела:

Затем дампим таблицу разделов в файл на нашу суперфлешку:

Таким образом, на флешке у нас появятся архивы и файл с таблицей разделов эталонного образа.

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

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

cat /pmagic/pmodules/scripts/kill_your_hdd_data.sh (путь для автозагрузочного скрипта в PartedMagic)

Вместо эпилога:

Данный метод используется в Urban Software для заливки информационных сенсорных киосков c веб-приложениями под управлением linux. Чаще всего это бесклавиатурные машины, которые разворачиваются десятками вдали от цивилизации нашей техподдержки, поэтому важно изначально не создать проблем при их мониторинге и вводе в работу.

Источник

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