- Бэкап Linux и восстановление его на другом железе
- 1. Создание бэкапа
- Восстановление бэкапа на другом железе
- Восемь утилит для создания своего собственного дистрибутива Linux
- 1. Linux Respin
- 2. Linux Live Kit
- 3. Ubuntu Imager
- 4. Linux from Scratch
- 5. Slax Modules Tool
- 6. Live Magic
- 7. Instalinux
- 8. SUSE Studio
- В заключении.
Бэкап Linux и восстановление его на другом железе
Я работаю в организации с маленьким штатом, деятельность тесно связана с IT и у нас возникают задачи по системному администрированию. Мне это интересно и частенько я беру на себя решение некоторых.
На прошлой неделе мы настраивали FreePBX под debian 7.8, нанимали фрилансера. В процессе настройки оказалось, что сервер (да, я так называю обычный PC) не хочет грузится с HDD при подключенных USB 3G модемах, которые мы используем для звонков на мобильные, колупание BIOSа не помогло. Непорядок. Решил, что нужно перенести его на другую железяку. Так появилось сразу две связанные задачи:
Опыт общения с linux-системами у меня небольшой: настройка VPN сервера на open-vpn, ftp-сервера и еще пара мелочей. Сам себя я характеризую как человека умеющего читать маны и править конфиги 🙂
Ниже я описываю свой частный случай и почему я поступил именно так. Надеюсь, новичкам будет полезно, а бородатые админы улыбнутся вспомнив молодость.
Начинаем копать теорию:
По созданию бэкапов уйма статей, я для себя отметил два способа: tar — упаковывает и сжимает все файлы, при этом не сохраняется MBR, мой бэкап будет весить около 1.5 Gb; dd — делает полную копию раздела, включая MBR и всю область, где нет файлов, архив будет равен размеру раздела, в моем случае ~490 Gb.
Второй способ требует наличия внешнего жесткого диска объемом не меньше раздела, который архивируем. Да и что с ним потом делать, непонятно, хранить на полочке? Остановился на tar, чуть сложнее в реализации, нужно будет создать MBR, но время создания/восстановления архива существенно меньше, хранить бэкап проще, полтора гига можно закинуть в облако и скачать, когда будет нужно. Записывать его можно на ту же live-флэшку, с которой буду грузиться.
Итак, план действия:
- создание бэкапа;
- форматирование, разметка диска, создание файловой системы;
- восстановление бэкапа;
- создание MBR;
- тестирование и устранение неполадок.
1. Создание бэкапа
Грузимся с live-флэшки, у меня это debian-live-7.8.0-amd64-standard.
Монтируем раздел, который будем архивировать, у меня это sda1, чтобы случайно не наломать дров, монтируем только для чтения. Посмотреть все свои разделы можно при помощи команд ls /dev | grep sd или df -l
Наша флэшка уже примонтирована, но в режиме только чтения, нужно перемонтировать для чтения-записи, чтобы писать туда бэкап.
mount -o remount,rw /dev/sdb1 /lib/live/mount/medium
Все готово для создания архива
tar -cvzpf /lib/live/mount/medium/backupYYYYMMDD.tgz --exclude=/mnt/var/spool/asterisk/monitor --exclude=/mnt/var/spool/asterisk/backup /mnt/
Здесь у нас параметры: c — создать архив, v — выводить информацию о процессе, z — использовать сжатие gzip, p — сохраняем данные о владельцах и правах доступа, f — пишем архив в файл, путь к файлу, —exclude — исключаем из архива каталог (я исключил каталоги с записями разговоров и каталог с бэкапами FreePBX), /mnt/ — каталог, который архивируем.
Ждем… у меня вся подготовка и создание архива заняли 10 минут. Будь флэшка быстрее, уложился бы в 7-8 минут.
Складываем архив в надежное место за пределами офиса.
Восстановление бэкапа на другом железе
2. Размечаем диск, создаем файловую систему
Грузимся с live-флэшки, у меня все та же debian-live-7.8.0.
Размечаем диск. Мне понравилась утилита с псевдографическим интерфейсом cfdisk. Там все просто и понятно.
Удаляем все имеющиеся разделы. Я создал два новых раздела, один на 490 Gb под / (sda1) и 10 Gb под swap (sda2) в конце диска, т.к. он практически не будет задействован. Проверим типы разделов. Который под систему должен иметь тип 83 Linux, второй — 82 Linux swap / Solaris. Помечаем системный раздел загрузочным (bootable), сохраняем изменения и выходим.
Cоздаем файловую систему на первом разделе.
3. Распаковываем архив.
Монтируем отформатированный раздел
Распаковываем архив прямо с флэшки
tar --same-owner -xvpf /lib/live/mount/medium/backupYYYYMMDD.tgz -C /mnt/
Параметр —same-owner — сохраняет владельцев у распаковываемых файлов, x — извлекаем из архива, v — выводить информацию о процессе, p — сохраняем права доступа, f — указываем файл, который распаковываем, C — распаковываем в категорию.
4. Создаем MBR на новом диске.
Чтобы корректно создать загрузочную запись, монтируем рабочие каталоги к нашему будущему root-каталогу, у меня это /mnt. Каталоги /dev и /proc сейчас используются live-системой, используем параметр bind, чтобы они были доступны сразу в двух местах:
mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc
Переключаемся на новую систему используя chroot:
Делаем swap-раздел для новой системы:
Чтобы grub работал, нужно указать ему правильные UUID разделов в fstab, сейчас там прописаны разделы предыдущей системы:
Открываем второй терминал (Alt+F2) под root:
И видим текущие UUID разделов.
Вручную переписываем их в fstab переключаясь между Alt+F1 и Alt+F2. Да, муторно, но попытки копировать занимали у меня больше времени, чем переписывание. Сохраняем fstab.
Устанавливаем grub2. У меня один физический диск, поэтому ставим его на sda:
На чистый диск должно встать без ошибок. Обновляем информацию из fstab:
Возвращаемся в Live-систему:
Размонтируем все каталоги:
umount /mnt/dev umount /mnt/proc umount /mnt
Если вылазят процессы, которые используют эти каталоги, убиваем их используя fuser.
Все, поехали. Грузимся с жесткого диска:
Здесь статья должна была закончиться, но у меня возникли проблемы с подключением к интернету. Сервер видит сеть, видит компьютеры в ней, но в интернет не ходит… а это как бы важно для телефонии.
5. Тестирование и устранение неполадок.
Показывет интерфейсы eth1 и lo, гугление сказало, что gateway можно прописать только подключению eth0, остальные рассчитаны только на работу внутри сети.
Похоже, отсутствие eth0 вызвано способом переноса системы. Находим файл, который отвечает за нумерацию интерфейсов, смотрим туда:
nano /etc/udev/rules.d/70-persistent-net.rules
Действительно, там два активных интерфейса, определенных MAC’ами. Комментируем первый, второму прописываем eth0.
Перезапуск /etс/init.d/networking не помог, поэтому перезагружаемся:
Восемь утилит для создания своего собственного дистрибутива Linux
Компьютерное
Все пользователи Linux начиная знакомиться с этой операционной системой рано или поздно начинают подыскивать себе дистрибутив который бы их устраивал в большей степени. Кому-то не нравится пакетный менеджер, кому-то ограниченность в настройках, кому-то требуется чтобы предустановленные пакеты были только те которые нужны самому пользователю, а не те которые выбрали разработчики дистрибутива, кто-то хочет готовый Live-образ или дистрибутив для быстрого развертывания на парке машин. Рано или поздно каждый задумывается — раз уж Linux такой открытый. А не попробовать ли мне самому создать дистрибутив своей мечты?
Ниже я расскажу о 8 утилитах которые помогут и облегчат работу по созданию собственного дистрибутива.
1. Linux Respin
Linux Respin это форк более неподдерживаемого Remastersys. Год назад Remastersys был самым популярным инструментом для создания собственного дистрибутива Linux и/или создания резервной копии вашей операционной системы. Linux Respin не даёт тех же возможностей что и Remastersys, но всё еще великолепно вам подойдет, если вы используете один из дистрибутивов которые им поддерживаются. Linux Respin доступен только для Debian, Mint и Trisquel, что, конечно, ограничивает его популярность. Еще один жирный минус в этом инструменте — практически полное отсутствие документации.
2. Linux Live Kit
Linux Live Kit другой инструмент который вы можете использовать для создания своего дистрибутива или создания резервной копии ОС. Предпочитает Debian но к счастью замечательно работает и на других дистрибутивах если они обеспечивают поддержку ядерных модулей aufs и squashfs. Linux Live Kit очень короткий и удобный мастер по созданию дистрибутива – просто выполняйте инструкции шаг за шагов и всё будет готово.
3. Ubuntu Imager
Ubuntu Imager хороший инструмент для создания своего дистрибутива основанного на Ubuntu. Это не единственное такое приложение для Ubuntu, но так как оно хорошее, нельзя было его не упомянуть. Не буду детально останавливаться на его работе, так как для него есть ЧаВо с инструкциями по установке и работе.
4. Linux from Scratch
Если вы хотите иметь абсолютный контроль над тем, что включено в ваш дистрибутив, и у вас много свободного времени, вы можете взглянуть на проект Linux from Scratch. LFS имеет очень обширную документацию и является отличным учебным ресурсом про Linux в целом, а не только о том, как создать собственный дистрибутив. Linux from Scratch позволяет вам создать собственную систему Linux из исходных кодов. LFS это не совсем инструмент, как остальные в этом списке, но вы все равно можете использовать его с той же целью — создать свой собственный дистрибутив Linux (и много узнать о Linux в целом).
5. Slax Modules Tool
Если вы ищете простой в использовании инструмент, и вам нравится легковесный дистрибутив Slax — в основе которого Slackware, то вам повезло! Потому что у Slax есть онлайн-инструмент, который вы можете использовать для выбора модулей, которые вы хотели бы включить в свой дистрибутив. Я использовал этот инструмент в прошлом много раз, когда я хотел создать легкую живую систему для моих друзей, и она работает просто удивительно. Просмотрите категории программного обеспечения и выберите нужные приложения. Добавьте их в сборку. Не беспокойтесь, если вы пропустите что-то, так как всегда сможете добавить больше приложений после создания и запуска дистрибутива.
6. Live Magic
Live Magic еще одна утилита Debian для создания дистрибутива. Она может создавать CD, USB, и сетевые образы. Его гораздо проще использовать, чем некоторые другие приложения в этом списке, такие как Remastersys, но он не использует вашу работающую систему как основу для создания образа. Вместо этого следуйте указаниям мастера и выберите свои параметры конфигурации. Программа вытащит пакеты из ваших репозиториев и добавит их в ваш образ.
7. Instalinux
Изюминка Instalinux в том, что он позволяет создавать образы ISO онлайн. На сайте можно выбрать на каком дистрибутиве будет основан ваш (это CentOS, Debian, Fedora, Mint, OpenSUSE, Scientific, и Ubuntu), какую версию это дистрибутива использовать и какие пакеты. Instalinux создает небольшой загрузочный ISO (в среднем 30mb) который после загрузки начнет установку и получит все остальные необходимые пакеты из интернета. Это самый универсальный инструмент из списка, к тому же веб-интерфейс прост в использовании. Однако он не предоставит вам live-образ с готовым рабочим окружением и рабочим столом.
8. SUSE Studio
Для пользователей SUSE лучший выбор SUSE Studio. Немного похоже на Instalinux, SUSE studio позволяет вам используя веб-интерфейс создать свой собственный дистрибутив на основе SUSE. Доступно создание образов для CD, DVD, USB, жестких дисков, VMware, VirtualBox, и Xen. Перед использованием вам потребуется создать аккаунт – это просто, так как используется Single Sign On, и вы быстро можете зарегистрироваться используя ваш аккаунт Google, Facebook, и т.п. Вы сможете выбрать какая версия SUSE будет использована как основа, серверная редакция или нет, и какое окружение рабочего стола будет включено в сборку.
В заключении.
Я надеюсь, что эти инструменты для создания собственного дистрибутива Linux помогут вам. Их уровень сложности (и мощности) варьируется, но я попытался включить как простые в использовании приложения, так и приложения, которые дают вам больше возможностей. В дополнение к этим приложениям многие дистрибутивы имеют свои собственные инструменты, которые были упомянуты здесь, поэтому, если вы используете другой дистрибутив, лучше сначала проверить, какие инструменты доступны в частности для него , а затем, если вас не устроит то что вы найдете, попробуйте универсальные.