...

пятница, 27 декабря 2013 г.

[Из песочницы] Удаленная установка Fedora/CentOS в headless-режиме без носителей и TFTP

Зачем?



В моем случае мне понадобилось перевести домашний сервер с Ubuntu на Fedora и было лень нести его к компьютеру, подключать к монитору, записывать установочный образ на флешку. Не менее лень было поднимать TFTP-сервер и разбираться с PXE. Способ подходит в принципе и для некоторых других дистрибутивов, но с Fedora и Centos он немного проще, поскольку содержимое установочных дисков доступно по HTTP. Если надо установить любой другой дистрибутив, использующий инсталлятор Anaconda, то можно скачать его образ, смонтировать и переписать содержимое в папку, доступ к которой можно получить по FTP/HTTP. Например, это относится к RedHat и Oracle Linux.



Теория



Anaconda, умеет и сеть, и VNC. Исходный дистрибутив при этом не имеет значения, это может быть даже не Linux, нам достаточно, чтобы текущая ОС использовала GRUB (неважно при этом GRUB Legacy или GRUB2, в статье я приведу примеры для обоих). От нас требуется создать или изменить существующую запись меню загрузчика GRUB таким образом, чтобы он передал инсталлятору параметры которые:


  • настроят сеть

  • запустят VNC-сервер

  • укажут расположение нашего нового дистрибутива

  • выведут установщик в сессию VNC




Практика




Первое, что нам надо сделать, это скачать файлы ядра и RAM-диска нужного нам дистрибутива.

wget http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/x86_64/os/isolinux/vmlinuz -O /boot/vmlinuz_remote
wget http://dl.fedoraproject.org/pub/fedora/linux/releases/19/Fedora/x86_64/os/isolinux/initrd.img -O /boot/initrd_remote.img




Далее нам нужно настроить GRUB. Если у вас установлен GRUB Legacy, понадобится просто добавить следующий пункт в конфигурационный файл, как правило /boot/grub/menu.lst

title Fedora Install
root (hd0,0)
kernel /vmlinuz_remote repo=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/x86_64/os/ vnc vncpassword=q1q1q1q1 ip=192.168.1.51 netmask=255.255.255.0 gateway=192.168.1.1 dns=192.168.1.1 noselinux headless xfs panic=60
initrd /initrd_remote.img
savedefault 0




Если вы грузитесь не с первого раздела первого диска, то запись root(hd0,0) надо соответствующим образом изменить.

Если эта конфигурация у нас вторая по счету, то выполняем


[root@localhost ~]# echo 'savedefault --default=1 --once' | grub --batch


В результате мы загрузимся в этот пункт один раз и если что-то пойдет не так, через пару минут вернемся обратно.


Если же у вас GRUB2, то добавляем наш пункт в /etc/grub.d/40_custom в соответствии с новым синтаксисом, не забывая, что файл должен заканчиваться пустой строкой и нумерация разделов сместилась на единицу — первый раздел теперь 1, а не 0.



menuentry "Fedora Install" {
set root=(hd0,1)
linux /boot/vmlinuz_remote repo=http://dl.fedoraproject.org/pub/fedora/linux/releases/19/Fedora/x86_64/os/ vnc vncpassword=q1q1q1q1 ip=192.168.1.51 netmask=255.255.255.0 gateway=192.168.1.1 nameserver=192.168.1.1 noselinux headless xfs panic=60
initrd /boot/initrd_remote.img



Обновляем cfg-файл:

[user@localhost ~]$ sudo update-grub


Для того, чтобы как в прошлом примере загрузиться в наше меню только один раз, можно использовать команду

sudo grub-reboot N

где N — номер нашей записи.


Собственно всё, после перезагрузки подключаемся к нашей машине с помощью VNC-клиента и выполняем установку в обычно режиме.


Если же по каким-то причинам (неподходящий дистрибутив, нестабильный интернет), этот способ нам не подходит, то всегда можно скачать установочный образ нужного нам дистрибутива, открыть его в каком-либо редакторе ISO-файлов и изменить конфигурацию GRUB'а на данном диске. Например, на диске образа той же Fedora 20 (и RFRemix), настройки GRUB'а хранятся в isolinux/isolinux.cfg:



label linux
menu label ^Install RFRemix 20
kernel vmlinuz vnc vncpassword=q1q1q1q1 ip=192.168.1.50 netmask=255.255.255.0 gateway=192.168.1.1 nameserver=192.168.1.1
append initrd=initrd.img inst.stage2=hd:LABEL=RFRemix\x2020\x20x86_64 quiet




Сохраняем ISO-образ после редактирования, пишем его, например, на флешку и если первым пунктом у нас идет загрузка с USB, то втыкаем флешку, отправляем машину в ребут и возвращаемся обратно к рабочему месту с удобным креслом и чашкой кофе:


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий