Зачем?
В моем случае мне понадобилось перевести домашний сервер с 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=RFRemixx2020x20x86_64 quiet
Сохраняем ISO-образ после редактирования, пишем его, например, на флешку и если первым пунктом у нас идет загрузка с USB, то втыкаем флешку, отправляем машину в ребут и возвращаемся обратно к рабочему месту с удобным креслом и чашкой кофе:
Автор: LooksWorking