Особенности восстановления/переноса FreeBSD на хост с другой аппаратной конфигурацией

в 14:11, , рубрики: freebsd, виртуализация, восстановление, загрузка, системное администрирование, метки: , ,

Перенос FreeBSD

Конкретно, речь пойдет о наиболее часто встречающейся проблеме при переносе BSD системы

Для профессионалов, знающих Linux, BSD системы понятны «по аналогии», за исключением некоторых особенностей. Об особенностях и пойдет разговор.
Да, есть великолепное руководство по FreeBSD на оффициальном сайте, и даже на русском языке оно тоже есть, но момент о котором пойдет речь описывается далеко не на первой странице, а если «падает» критически важный сервер, к которому подходил последний раз лет -цать назад (или вообще никогда), и его нужно срочно поднять на другом хосте с неаналогичной конфигурацией, то искать можно долго.
И в то же время, это те основы, без изучения которых дальше идти нельзя.

Итак, практическая задача: перенос FreeBSD на другой хост (контроллеры могут различаться: IDE/Raid ISCI/VMware ESX/Citrix Xen).


Всем известно, что если жесткий диск с WinXP перенести на другой компьютер (аналогичный), то скорее всего (~99%), система загрузится. Если контроллеры HDD несовместимы, то можно получить знакомый BSOD. Схожая ситуация с Linux — там будет черная паника ядра.)
С BSD есть пара интересных вариантов.
Мой первый топик будет коротким, поэтому я буду рассматривать только один мой «плохой» вариант.

Перенос «в лоб» дает ошибку загрузки корневого каталога.
Из-за чего это произошло?
а) Система именования дисков изменилась (Саму нотацию именования можно посмотреть в любом руководстве по BSD)
б) Система нумерации дисков тоже изменилась (В BSD есть разница, в какой порт IDE/Sata вы подключили жесткий диск, и это не зависит от расстановки в загрузчике BIOS)

(Все же, коротко о необходимой дополнительной информации:
«Основной раздел» — Slice — участок. Сокращение s1 — первый участок. Разделом в BSD называется сегмент внутри участка («Windows основного раздела»).
Раздел (аналог логическому диску в Windows) имеет специальный файл, именование которого образуется от имени участка-slice добавлением буквы (a,b,c,d,e,f …). Swap традиционно имеет букву “b”. На диск — участок не более 4, разделов не более 8.
Логическая структура – Disk Label
Описание структуры диска:
/etc/fstab
Стандартная структура каталога – имя раздела, точка монтирования
/ root (root directory, not a root folder)
/ swap (2(3)xRAM)
/ tmp
/var
/ usr)

Алгоритм решения:
1)Загрузиться с загрузочного диска, поддерживающего файловую систему FreeBSD. Подойдет frenzy.
Во время загрузки мы внимательно смотрим как именуется обнаруженный старый диск на нашем новом железе.
Помним, что найденный диск наша загрузочная система может смонтировать в режиме «только чтение», поэтому проверяем это командой mount, и если это так, то перемонтируем (отмонтируем и монтируем заново) в обычном режиме.
Далее находим файл fstab (отвечает за монтирование дисков) и вручную (vi, mc) правим на нужный.
Лично в моем случае строки типа ad4s1a (… ad4s1f) (корневой каталог /) и все остальные нужно было переименовать в da0s1a, (… da0s1fa), что соответствует участку 1 нулевого SCSI диска.
В другом случае именование может измениться.
Сохраняемся.
Перезагружаемся.
Должно загрузится.

Далее вас ждет проверка работоспособности сети, ПО, возможное пересобирание портов и т.п., но это вопрос следующий…

Автор: EgorS

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js