<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Danik.info &#187; миграция</title>
	<atom:link href="http://danik.info/tag/migraciya/feed/" rel="self" type="application/rss+xml" />
	<link>http://danik.info</link>
	<description>useful notes for admins</description>
	<lastBuildDate>Fri, 13 Jan 2012 08:39:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Полная переустановка OS FreeBSD со сменой архитехтуры с i386 на amd64 на удаленном сервере</title>
		<link>http://danik.info/polnaya-pereustanovka-os-freebsd-so-smenoj-arxitextury-s-i386-na-amd64-na-udalennom-servere/</link>
		<comments>http://danik.info/polnaya-pereustanovka-os-freebsd-so-smenoj-arxitextury-s-i386-na-amd64-na-udalennom-servere/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 08:23:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tools for admins]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[документация]]></category>
		<category><![CDATA[миграция]]></category>

		<guid isPermaLink="false">http://danik.info/polnaya-pereustanovka-os-freebsd-so-smenoj-arxitextury-s-i386-na-amd64-na-udalennom-servere/</guid>
		<description><![CDATA[Постановка задачи. Имеется сервер с ОС FreeBSD i386 (далее реальный сервер). Физического доступа к серверу нет, только SSH. Требуется переустановить систему на последнюю версию ОС FreeBSD с архитектурой amd64. С первого взляда задача проста, но т.к. при этом нужно не уронить систему, права на ошибку у нас нет. Скачать archive.sh и update.sh ШАГ 1. Подготовка [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://danik.info/wp-content/uploads/2009/11/freebsd.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="freebsd" border="0" alt="freebsd thumb Полная переустановка OS FreeBSD со сменой архитехтуры с i386 на amd64 на удаленном сервере" src="http://danik.info/wp-content/uploads/2009/11/freebsd_thumb.png" width="485" height="175" /></a> </p>
<p>Постановка задачи. Имеется сервер с ОС FreeBSD i386 (далее реальный сервер). Физического доступа к серверу нет, только SSH. Требуется переустановить систему на последнюю версию ОС FreeBSD с архитектурой amd64. С первого взляда задача проста, но т.к. при этом нужно не уронить систему, права на ошибку у нас нет.</p>
<p> <span id="more-286"></span>
<p>Скачать <noindex><a href="http://ww.inf-sys.ru/files/archive.sh" rel="nofollow">archive.sh</a></noindex> и <noindex><a href="http://ww.inf-sys.ru/files/update.sh" rel="nofollow">update.sh</a></noindex></p>
<p><strong>ШАГ 1</strong>. Подготовка новой системы. Берем любой эмулятор виртуальной машины (WMware, qemu итд), создаем конфигурацию виртуальной машины (в WMware с помощью визарда, в qemu — настройками и опциями), максимально приближенную к вашей реально работающей системе (идентичную дисковую подсистему, сетевой интерфейс и т.д.). Устанавливаем последнюю версию ОС FreeBSD amd64 в эмуляторе (далее виртуальный сервер). Дерево портов пока можно не ставить. </p>
<p><strong>ШАГ 2</strong>. Проверка пригодности. Настраиваем на виртуальном сервере ip адрес, шлюз по умолчанию идентичные реальному серверу, не забываем настроить ssh сервер. Проверяем: возможность входа по ssh, совпадение имен сетевых интерфейсов. Если имена интерфейсов на реальном хосте и на виртуальном получились разные, то обязательно добавьте в rc.conf виртуального блок настроек с именем интерфейса как на реальном сервере, пусть временно будет 2 блока, после завершения ненужный удалите.</p>
<p><strong>ШАГ 3</strong>. Проверка загрузки. Просматриваем опции загрузки ядра, опции загрузчика, файл /etc/fstab реальной системы и делаем соответствующие дописки/изменения в нашей виртуальной, чтобы сервер беспрепятственно загрузился после обновления. </p>
<p><strong>ШАГ 4</strong>. Паковка данных. Я приверженец стандартной для FreeBSD разбивки файловой системы (отдельные разделы для корня, /tmp, /usr, /var.). Ниже приведен скрипт, который пакует новую систему автоматически, требуется только свободное место на разделе, подмонтированном к /usr. ВНИМАНИЕ! Скрипт необходимо разместить в папке /usr/archive/, предварительно её создав.     <br />Итак, если все шаги проделанны и конфигурация виртуальной системы соотвествует реальному серверу (что не помешает ещё раз перепроверить), пускаем скрипт: </p>
<blockquote><p>virtualserver# cd /usr/archive/      <br />virtualserver# sh ./update.sh </p>
</blockquote>
<p>На моем компьютере это заняло 5 минут. Пока идет паковка, переходим к следующему шагу. </p>
<p><strong>ШАГ 5</strong>. Сохранение данных реального сервера. ВСЕ СТАРЫЕ ДАННЫЕ БУДУТ УДАЛЕНЫ! В связи с чем прошу грамотно заранее всё сохранить, запаковать, и положить либо в папку /usr/update, которая не удаляется в процессе обновления, либо временно скопировать ваши данные на другой сервер. Моя процедура сохранения данных выглядела следующим образом:</p>
<blockquote><p>realserver# mkdir -p /usr/update/rescue      <br />realserver# cd /       <br />realserver# cp -rf etc usr/local/etc boot usr/home var /usr/update/rescue/</p>
</blockquote>
<p>Пока идет копирование, запускаем закачку полученных архивов usr.tar.gz, var.tar.gz, root.tar.gz на переустанавливаемый сервер: </p>
<blockquote><p>virtualserver# cd /usr/archive      <br />virtualserver# scp *.tar.gz hash@realserver.ru :~/       <br />realserver# cd /home/hash       <br />realserver# mv usr.tar.gz var.tar.gz root.tar.gz /usr/update/</p>
</blockquote>
<p><strong>ШАГ 6</strong>. Итак, мы получили 3 архива usr.tar.gz, var.tar.gz, root.tar.gz в папке /usr/update.     <br />ВНИМАНИЕ! В Процессе обновления в цикле будут удалены все лишние папки корневой структуры реального сервера, и если к некой папке будет примонтированны дополнительные разделы — все данные в них тоже будут удалены! С связи с чем нужно выполнить: </p>
<blockquote><p>realserver# mount&#160; </p>
</blockquote>
<p>и убедиться что все лишнее отмонтированно!    <br />Копируем скрипт обновления в папку /usr/update/ и запускаем его: </p>
<blockquote><p>realserver# ./update.sh </p>
</blockquote>
<p>после его отработки, и если всё прошло без критических ошибок, пускаем команду&#160; <br />realserver# /tmp/rescue/reboot</p>
<p>Внимание! Если вы что-то забыли исправить, и после выполнения скрипта update.sh заметили, вы можете отредактировать файлы и после отработки скрипта обновления копиями резервных утилит, которые теперь находятся в папке /tmp/rescue. Например для редактирования /etc/fstab нужно написать: </p>
<blockquote><p>realserver# /tmp/rescue/vi /etc/fstab </p>
</blockquote>
<p>Ждем несколько секунд затаив дыхание </p>
<blockquote><p>[root@hash disk]# ping 192.168.0.99      <br />PING 192.168.0.99 (192.168.0.99) 56(84) bytes of data.       <br />From 192.168.0.15 icmp_seq=15 Destination Host Unreachable       <br />From 192.168.0.15 icmp_seq=16 Destination Host Unreachable       <br />64 bytes from 192.168.0.99: icmp_seq=17 ttl=64 time=1001 ms       <br />64 bytes from 192.168.0.99: icmp_seq=18 ttl=64 time=1.45 ms       <br />64 bytes from 192.168.0.99: icmp_seq=19 ttl=64 time=0.236 ms </p>
</blockquote>
<p>Заходим по ssh, проверяем </p>
<blockquote><p>server# uname -a      <br />FreeBSD server.is 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 08:58:24 UTC 2009<a href="mailto:root@driscoll.cse.buffalo.edu">root@driscoll.cse.buffalo.edu</a> :/usr/obj/usr/src/sys/GENERIC amd64 </p>
</blockquote>
<p>Теперь можно приступить к выкачиванию последней версии портов (рекомендуем утилиту portsnap) и настройке системы. </p>
<p>Заключение. Проверяя данный метод я достиг результат за 2 часа 34 минуты. Изложенный в данной статье способ безусловно может быть подвержен критике, т.к. многие специалисты посоветую многоэтапное обновление, с выкачиванием последних исходников по cvs, пересборкой их под другую архитектуру и т.д, мотивируя что «так будет правильно». Мое личное мнение — правильно то, что эффективно, быстро и надежно, а усовершенствовать систему путем пересборки спокойно можно после смены архитектуры. Обсуждение статьи на форуме в соответствующем разделе.</p>
<p><strong>Автор: Игнатьев Алексей Николаевич</strong></p>
<p><strong>Источник:</strong> <noindex><a href="http://ww.inf-sys.ru/" rel="nofollow">http://ww.inf-sys.ru/</a></noindex><noindex></noindex></p>
]]></content:encoded>
			<wfw:commentRss>http://danik.info/polnaya-pereustanovka-os-freebsd-so-smenoj-arxitextury-s-i386-na-amd64-na-udalennom-servere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

