The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Удаленная установка 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, boot
Раздел:    Корень / Администратору / Система / FreeBSD специфика / Установка и апгрейд FreeBSD и приложений.

Обсуждение [ RSS ]
  • 1.1, Anonym (?), 02:46, 10/12/2010 [ответить]  
  • +/
    При прочтении заголовка вспомнился бородатый анекдот про гинеколога и починку машины через выхлопную трубу =))
     
  • 1.2, Ян Злобин (ok), 04:27, 10/12/2010 [ответить]  
  • +/
    Вот стоит у тебя Убунта, вышел покурить, возвращаешься, а там уже FreeBSD!  Круть!

    Где-то писали, что у мелкомягких есть линуксовые сервера с SHH... ;-)

     
     
  • 2.8, fx (ok), 14:48, 13/12/2010 [^] [^^] [^^^] [ответить]  
  • +/
    SHH это что?
     
     
  • 3.9, Ян Злобин (ok), 18:42, 13/12/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > SHH это что?

    SHH это очепятка :-)

     

  • 1.4, Аноним (-), 13:53, 12/12/2010 [ответить]  
  • +/
    А если загрузка не с нужного винта пойдет?
     
     
  • 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 [ответить]  
  • +/
    Тогда я научился быстро водить машину и убедительно извиняться. Из книги Лукаса.
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру