Удаленная установка FreeBSD через SSH |
[исправить] |
Задача: Установка FreeBSD на удаленном сервере, к которому имеется доступ
только через SSH и на котором отсутствует возможность обновления FreeBSD
штатными средствами (например, установлен Linux или очень старая версия FreeBSD).
Решение: 1. Сформировать отдельный загрузочный образ с настроенными параметрами
сетевого соединения и активным ssh-сервером. 2. Записать данный образ на диск
удаленного сервера и перезагрузиться.
Готовим загрузочный образ на локальной FreeBSD-системе.
Загружаем установочный ISO-образ:
fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-amd64-disc1.iso
Загружаем mfsBSD:
fetch http://people.freebsd.org/~mm/mfsbsd/mfsbsd-latest.tar.gz
Распаковываем и переходим в получившуюся директорию:
tar xvzf mfsbsd-1.0-beta1.tar.gz
cd mfsbsd-1.0-beta1/conf/
Правим файлы конфигурации и добавляем параметры сетевого соединения удаленного хоста:
На базе примера loader.conf.sample создаем loader.conf
geom_uzip_load="YES"
mfs_load="YES"
mfs_type="mfs_root"
mfs_name="/mfsroot"
tmpfs_load="YES"
vfs.root.mountfrom="ufs:/dev/md0"
mfsbsd.rootpw="123456"
На базе примера rc.conf.sample создаем rc.conf
# Настраиваем параметры сети для сетевого интерфейса em0
hostname="mfsbsd"
defaultrouter="192.168.1.1"
ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0"
varmfs="YES"
varsize="64m"
# Включаем SSH-сервер
sshd_enable="YES"
Добавляем адрес DNS-сервера:
echo "nameserver 8.8.8.8" >resolv.conf
Монтируем установочный ISO-образ
mdconfig -a -t vnode -f ../../FreeBSD-8.1-RELEASE-amd64-disc1.iso md0
mount_cd9660 /dev/md0 /cdrom/
Собираем загрузочный образ для удаленного сервера:
make BASE=/cdrom/8.1-RELEASE/
В результате будет получен файл mfsboot.img, который следует скопировать на удаленный сервер.
scp mfsboot.img user@remotehost:~/
Внимание ! Перед манипуляциями с удаленным сервером, рекомендуется обязательно
провести эксперимент на локальной машине, повторив на ней все дальнейшие шаги.
Заходим на удаленный сервер.
Записываем созданный загрузочный образ в начало диска:
dd if=mfsboot.img of=/dev/sda bs=1m
Перезагружаем сервер:
shutdown -r now
После перезагрузки заходим на сервер по ssh и запускаем инсталлятор sysinstall.
Если возникнут проблемы с созданием устройств в devfs, то разбиваем диск вручную:
Пометим системный диск как пустой:
dd if=/dev/zero of=/dev/ad0 count=2
Создадим слайс, размером во весь диск с записью загрузочного кода в сектор 0:
fdisk -BI /dev/ad0
Создаем стандартную разметку диска и устанавливаем загрузчик:
bsdlabel -wB /dev/ad0s1 auto
Форматируем разделы:
newfs /dev/ad0s1a
newfs /dev/ad0s1e
newfs /dev/ad0s1d
newfs /dev/ad0s1f
Создаем точки монтирования:
mount /dev/ad0s1a /mnt/
mkdir /mnt/var
mkdir /mnt/usr
mkdir /mnt/tmp
mount /dev/ad0s1d /mnt/var/
mount /dev/ad0s1e /mnt/tmp/
mount /dev/ad0s1f /mnt/usr/
Запускаем sysinstall и выбираем пункт меню "Custom". В пункте Options
обязательно меняем значение "Install Root" на /mnt.
Далее посещаем раздел "Distributions" и выбираем опцию Minimal. В блоке "Media"
выбираем ближайшее ftp-зеркало. Жмем Commit.
Копируем созданные для установочного образа настройки сети или устанавливаем
параметры в процессе работы sysinstall (не забудьте активировать ssh-сервер):
cp /etc/resolv.conf /mnt/etc/
cp /etc/rc.conf /mnt/etc/
Если диск разбивался вручную, после установки необходимо откорректировать fstab.
Копируем GENERIC-ядро в директорию /boot/kernel:
chroot /mnt
cp -Rp /boot/GENERIC/* /boot/kernel
Еще раз все проверив перезагружаем сервер.
|
|
|
|
Раздел: Корень / Администратору / Система / FreeBSD специфика / Установка и апгрейд FreeBSD и приложений. |
1.1, Anonym (?), 02:46, 10/12/2010 [ответить]
| +/– |
При прочтении заголовка вспомнился бородатый анекдот про гинеколога и починку машины через выхлопную трубу =))
| |
1.2, Ян Злобин (ok), 04:27, 10/12/2010 [ответить]
| +/– |
Вот стоит у тебя Убунта, вышел покурить, возвращаешься, а там уже FreeBSD! Круть!
Где-то писали, что у мелкомягких есть линуксовые сервера с SHH... ;-)
| |
|
2.6, upyx (ok), 08:34, 13/12/2010 [^] [^^] [^^^] [ответить]
| +/– |
Тогда комп не загрузится...
Вообще метод экстремальный, чуть что и труба :)
| |
|
1.5, mvalery (ok), 14:39, 12/12/2010 [ответить]
| +/– |
У меня нормально срабатывало когда переставлял Linux --> FreeBSD. А вот когда пытался переставить FreeBSD --> FreeBSD, система висла напрочь. По-моему мнению, "dd" ломает таблицу разделов. То что остается пугает загрузчик.
| |
1.7, vitlva (?), 10:19, 13/12/2010 [ответить]
| +/– |
Тогда я научился быстро водить машину и убедительно извиняться. Из книги Лукаса.
| |
|