Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
  В итоге должно получиться примерно следующее:
|
  Собирать ядро будем сразу с необходимыми нам опциями, поэтому создаем файл конфигурации. В него вписываем только те директивы, которые нам нужны и не присутствуют в конфигурации по умолчанию. Все остальное подключаем из SMP (в свою очередь SMP подключает директивы из GENERIC).
|
  При сборке ядра (kernel) и мира (world) указываем, что нам нужна архитектура amd64, ну и, конечно же, файл конфигурации ядра. Местом для установки является каталог /mnt, в котором смонтирован второй hdd.
|
  При наполнении каталога /etc дистрибутивов у меня вылезла неожиданная мелкая проблема - для sendmail'а не хватило файлов конфигурации. Разбираться, почему и из-за чего так получилось, времени не было, поэтому я их просто скопировал со старой ОС. После этого make distribution отработал без ошибок.
|
  Если все прошло успешно, на втором hdd вы должны получить установленную ОС FreeBSD 6.3 adm64. Теперь необходимо все подготовить для ее загрузки. Для этого копируем новое ядро в каталог /boot первого hdd и переименовываем в kernel64. Для разовой загрузки FreeBSD в другую конфигурацию будем использовать утилиту nextboot. Ее можно просто вызвать с необходимыми параметрами, а можно вручную создать для нее файл конфигурации nextboot.conf в каталоге /boot. Второй вариант мне приглянулся больше. В этом файле указываем, какое ядро загружать и какой раздел считать корневым.
|
  Для того, чтобы можно было подключиться к новой ОС удаленно (и не только), копируем файлы пользовательских учеток и прочие настройки из старой ОС:
|
  Создаем в новой ОС файл fstab в соответствии с имеющимися разделами:
|
  Создаем файл конфигурации ОС rc.conf. В него записываем только самое необходимое: настройки сети, запуск демона sshd и проверку файловой системы. Все остальное отключаем.
|
  На этом подготовка новой ОС закончена. Теперь, скрестив пальцы, перезагружаемся.
|
  Если все было сделано правильно, то перед вами предстанет FreeBSD amd64. Если где-то ошиблись, то придется звонить/писать в службу поддержки вашего дата-центра и заказывать kvm. Вот тут-то и проявляется преимущество утилиты nextboot. Она пытается запустить ОС в новой конфигурации только один раз. Если ОС была перезагружена, то вы вернетесь к старому ядру.
  Но, тем не менее, даже если все было сделано правильно, есть возможность не увидеть свой сервер в сети. У меня, например, новое ядро переназначило нумерацию второго hdd (было ad5, стало ad8) и, соответственно, в автоматическом режиме ядро не загрузилось. Пришлось заказывать kvm и запускать ядро вручную.
|
  После этого все поднялось нормально и я смог подключиться к серверу по ssh.
  Проверяем:
|
  Немного поясню, что у нас получилось. Мы загрузились с нового ядра и с новым миром со второго hdd. Старую ОС (первый hdd) мы смонтировали в каталог /mnt.
  Теперь нам необходимо собрать и установить мир и ядро в старую ОС. Действия аналогичные тем, что были ранее, только отличается количеством потоков (опция -j8), так как новое ядро поддерживает SMP (симметричную многопроцессорность). Вообще сборка в несколько потоков имеет сомнительную выгоду, так как есть риск появления ошибок сборки. Но я еще не разу не огребал таких проблем, поэтому продолжаю использовать эту опцию на свой страх и риск.
|
  Комментируем все лишнее в rc.conf, оставив только самое нужное: настройки сети, запуск демона sshd, проверку файловой системы. Удаляем конфигурационный файл nextboot и перезагружаемся:
|
  Таким образом мы получили ОС, успешно мигрировавшую с архитектуры i386 на amd64. Но для полного счастья еще необходимо пересобрать все ранее установленное программное обеспечение и удалить старые библиотеки. Искренне вам желаю, чтобы ваше программное обеспечение было установлено из портов.
|
  Хотелось бы заметить, что пересборка портов заняла полный рабочий день, тогда как сама миграция около 3-4 часов. Все по причине того, что при сборке какого-нибудь порта вываливалась ошибка, которую приходилось исправлять вручную, чаще всего путем индивидуальной пересборки нужного порта. Поэтому полную пересборку портов приходилось запускать более 5 раз. Возможно, я тут что-то делал не оптимально, но в итоге все встало на свои места.
  Когда закончили с портами, убираем комментарии в rc.conf и делаем контрольную перезагрузку:
|
размещено: 2008-04-28,
последнее обновление: 2008-05-03,
автор: serge
SAS, 2008-04-28 в 21:32:17
Эх, где же вы были раньше! Буквально пару недель назад думал над онлайн миграцией, но решил не рисковать, т.к. dedicated + далеко от меня.
Но спасибо за статью, очень пригодится в будущем :)
vyruz, 2008-04-29 в 10:12:22
Спасибо за статью, только у меня обратное направление :) Буду делать по аналогии
Heliar, 2008-04-30 в 5:27:26
Все по причине того, что при сборке какого-нибудь порта вываливалась ошибка, которую приходилось исправлять вручную, чаще всего путем индивидуальной пересборки нужного порта.
Если добавить в опции portupgrade -k, то оно отваливаться не будет, а будет пропускать. А в конце выведет список непоставившихся портов с примерными причинами (вообще, в любом случае).
Samm, 2008-05-04 в 10:24:46
Спасибо за заметку, собирался делать подобное на одном из серверов, но всёже, решил не рисковать и поставил всё заново. По поводу ключика -j, он уже очень давно как совершенно безопасен и применяется многими разработчиками/админами для сборки системы. А вот при сборке портов его применять и в самом деле не надо, там бывают траблы.
sava, 2008-05-20 в 17:54:32
Не так он совершенно и безопасен. Даже в 7 фряхе попробуй собрать ядро с опцией libalias. Не собирается.
weec, 2008-05-28 в 16:31:44
serge, подправь чуток статью, пусть используется swap вместо второго hdd
только-только мигрировал на amd64
http://mirrorbox.livejournal.com/236227.html
Test, 2008-07-15 в 20:06:39
ребят, у вас ошибка в cp -rp host.conf ssh passwd group master.passwd pwd.db /
spwd.db resolv.conf /mnt/etc
тут слеш в конце строки не в ту сторону
lissyara, 2008-09-29 в 14:16:12
Тока что успешно переставил ОС по этой инструкции.
Правда без смены платформы - x64=>x64 - просто старый совсем от экспериментов убился.
Единственная допущенная ошибка - юзеров в новой ось заводил руками через vipw - забыл себя в группу wheel засунуть =)
receptor, 2009-03-06 в 0:33:51
Статья очень интересная и полезная, он не проще бы было установить чистую систему со всеми прогами и скопировать конфиги?
shirker, 2009-05-21 в 12:50:09
статья абалденная! и актуальная
если нет второго hdd можно по совету Петера Вемма и mirrorbox из жж (его статья упоминается выше в крякозяблах).. короче можно объединить извращения и поставить временную ось на своп, если размер оного позволит:
swapoff /dev/ad0s1b
newfs /dev/ad0s1b
mount /dev/ad0s1b /mnt
а далее все как тут написано))
playnet, 2009-12-06 в 21:05:16
/var всего 10 гиг.
У меня на боевом сервере было 15 гиг выделено (веб-сервер), так очень быстро раздел в ноль забивается. Это при том, что фактически там только /var/db да /var/log самые большие. База мускуля и логи апача. Сами проекты апача в /home/www лежат...
В итоге логи пришлось перенести к проектам в /home/www. Вынести туда же базы не вышло, мускуль просто не стартует. Так что думаю, как отрезать от /home 4 гигов и прилепить их к var...
playnet, 2009-12-06 в 21:06:33
=45 гигов
Wic, 2010-10-26 в 15:04:29
Спасибо большое, удачно мигрировал по этому гайду с 7,2 х86 на 8,1 амд64. Если добавить отличие конфигурации ядра разных веток то будет совсем хорошо
Хуита, 2011-04-27 в 8:42:34
полнейшая хуита.
Собираем ядро с миром х64 в любую папку и после копируем папку boot и ядро 64 заместо того что есть, грузимся, и пересобираем мир.
Весь тот онанизм ни к чему.
ыавыа, 2011-04-30 в 4:26:04
есть только одно замечание: как автор сделал \"portupgrade -fca\", если portupgrade у него 32-х бит, а система 64-х?
weec, 2011-05-24 в 17:48:34
HellSentinel, 2011-06-08 в 12:36:44
А кто нибудь пробовал провернуть шутку, описанную в комментарии пользователя "Хуита"? Хотя бы теоретически это прокатить может?
P.S. не пинайте тока сильно - ну не знаю я какой спектр файлов использует фряха для запуска (изменяющихся в зависимости от платформы)
weec, 2011-06-10 в 11:27:04
пробовал, ядро загружается, но с 32-битным миром многое не работает
weec, 2011-06-10 в 14:53:39
столкнулся с проблемой - после указания нужной рутовой партиции, система монтировала партицию по умолчанию
решил проблему прописав параметр vfs.root.mountfrom в /boot/defaults/loader.conf
fantasticos, 2011-10-17 в 23:56:04
в статье ошибки, не грузится ядро подобным способом. надо там пункт один допилить
fantasticos, 2011-10-18 в 14:42:21
ошибки в /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ad6s1b none swap sw 0   0
/dev/ad4s1a /   ufs rw 1 1
/dev/ad6s1e /tmp ufs rw 2   2
/dev/ad6s1f /usr ufs rw 2   2
/dev/ad6s1d /var ufs rw 2   2
/dev/ad6s1a /mnt ufs rw 2 2
где ad4 - диск с залитой системой amd64, ad6 - диск в i386
иначе не загрузится, соответственно придется ехать к серваку
Dimon, 2012-08-17 в 8:39:08
А если просто поставить голую систему на отдельный винт, из под неё примонтировать разделы с исходной системы, далее в голой системе создать мир и ядро, установив их на исходную систему, или это всё для того, чтобы делать такие вещи удалённо?
Gamerman, 2014-01-08 в 14:24:04
А зачем 2 раза собирать ядро и мир?
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [23 шт.]