Удаленная установка Fedora/CentOS в headless-режиме без носителей и TFTP

в 7:32, , рубрики: CentOS, Fedora, grub, linux, redhat, метки: , , , , ,
Зачем?

В моем случае мне понадобилось перевести домашний сервер с 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-клиента и выполняем установку в обычно режиме.
Удаленная установка Fedora/CentOS в headless режиме без носителей и TFTP

Если же по каким-то причинам (неподходящий дистрибутив, нестабильный интернет), этот способ нам не подходит, то всегда можно скачать установочный образ нужного нам дистрибутива, открыть его в каком-либо редакторе 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=RFRemixx2020x20x86_64 quiet

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

Автор: LooksWorking

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js