Инсталляция на систему без использования монитора.
Описание
Данное описание покажет Вам, как внести изменения в загрузочную часть диска, чтобы при запуске программы установки происходил запуск VNC сервера для подключения к нему VNC клиента. Задача этого нового загрузочного диска проста --> возможность установить вторую систему CentOS без необходимости подключения клавиатуры / мыши / монитора. Просто подключите питание и сетевой кабель и вперед (если система будет загружаться с CD).
ISO прошедшие тестирование
Я лично сделал это со следующими ISO:
- CentOS 4.2 Server CD
- CentOS 5.1/5.2 netboot
- CentOS 5.2 CD
- CentOS 5.3 DVD
Замечание - я не вижу причин того, что один из ISO образов работать не будет, просто здесь перечислено то, что было проверено на себе.
Загрузка ISO
Первое, что Вам нужно, это один из ISO файлов с CentOS зеркала. С этого момента я буду сылку на загружаемый ISO именовать как "centos.iso" независимо от того какой именно Вы скачивали.
- Скачать Centos.iso в домашнюю папку.
# cd /home/yourDirectory # wget http://dom.com/path/to/centos.iso
Монтирование ISO и подготовка его для редактирования
Сейчас мы смонтируем загруженный centos.iso для того, чтобы скопировать файлы в нашу файловую систему и сделать необходимые изменения.
- Выполнените нижеприведенные команды для извлечения ISO файлов на вашем жестком диске:
# mount -oloop centos.iso /mnt # mkdir /tmp/installDisk # cp -a /mnt/* /tmp/installDisk/ # cp /mnt/.* /tmp/installDisk/ # cd /tmp/installDisk
Редактирование isolinux.cfg
Теперь, когда у нас есть файлы, скопированные на наш диск из ISO, мы должны внести изменения в файл "isolinux.cfg". Мы отредактируем "boot options", которые передаются при установке с компакт диска в начале инсталяции.
- Откройте файл в любом вашем любимом редакторе:
# vi isolinux/isolinux.cfg
или
# nano isolinux/isolinux.cfg
В настоящий момент этот файл выглядит так:
default linux prompt 1 timeout 600 display boot.msg F1 boot.msg F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg F7 snake.msg label linux kernel vmlinuz append initrd=initrd.img ramdisk_size=8192 label text kernel vmlinuz append initrd=initrd.img text ramdisk_size=8192 label expert kernel vmlinuz append expert initrd=initrd.img ramdisk_size=8192 label ks kernel vmlinuz append ks initrd=initrd.img ramdisk_size=8192 label lowres kernel vmlinuz append initrd=initrd.img lowres ramdisk_size=8192 label local localboot 1 label memtest86 kernel memtest append -
-Чтобы использовать различные настройки его необходимо изменить. Основными изменениями будут:
- * promt
- * timeout
- * append line under the "label linux"
Замечание
Внесение изменений в файл для установочного CD/DVD (при использовании DHCP):
default linux prompt 0 timeout 0 display boot.msg F1 boot.msg F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg F7 snake.msg label linux kernel vmlinuz append initrd=initrd.img ramdisk_size=8192 vnc vncconnect=192.168.0.100 headless ip=dhcp ksdevice=eth0 method=cdrom lang=en_US keymap=us label text kernel vmlinuz append initrd=initrd.img text ramdisk_size=8192 label expert kernel vmlinuz append expert initrd=initrd.img ramdisk_size=8192 label ks kernel vmlinuz append ks initrd=initrd.img ramdisk_size=8192 label lowres kernel vmlinuz append initrd=initrd.img lowres ramdisk_size=8192 label local localboot 1 label memtest86 kernel memtest append -
Если у Вас нет DHCP-сервера, то ниже приведен пример изменений в файле для CD/DVD (для статических параметров сети).
Внимание - не забудьте изменить настройки (IP, маску подсети, адрес шлюза, DNS и т.д) для вашей сети.
Внесение изменений в файл для установочного CD/DVD (при статических параметрах сети):
default linux prompt 0 timeout 0 display boot.msg F1 boot.msg F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg F7 snake.msg label linux kernel vmlinuz append initrd=initrd.img ramdisk_size=8192 vnc vncconnect=192.168.0.100 headless ip=192.168.0.10 gateway=192.168.0.254 netmask=255.255.255.0 dns=192.168.0.254 ksdevice=eth0 method=cdrom lang=en_US keymap=us label text kernel vmlinuz append initrd=initrd.img text ramdisk_size=8192 label expert kernel vmlinuz append expert initrd=initrd.img ramdisk_size=8192 label ks kernel vmlinuz append ks initrd=initrd.img ramdisk_size=8192 label lowres kernel vmlinuz append initrd=initrd.img lowres ramdisk_size=8192 label local localboot 1 label memtest86 kernel memtest append -
Для Netboot CD (с использованием DHCP)
Внимание - Нам необходимо указать URL, чтобы получить установочные файлы. Здесь есть несколько незначительных отличий от версии с обычным CD.
default linux prompt 0timeout 0 display boot.msg F1 boot.msg F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg F7 snake.msg label linux kernel vmlinuz append initrd=initrd.img ramdisk_size=8192 vnc vncconnect=192.168.0.100 headless ip=dhcp ksdevice=eth0 method=http://mirror.centos.org/centos/5.2/os/i386 lang=en_US keymap=us label text kernel vmlinuz append initrd=initrd.img text ramdisk_size=8192 label expert kernel vmlinuz append expert initrd=initrd.img ramdisk_size=8192 label ks kernel vmlinuz append ks initrd=initrd.img ramdisk_size=8192 label lowres kernel vmlinuz append initrd=initrd.img lowres ramdisk_size=8192 label local localboot 1 label memtest86 kernel memtest append -
Примечание - Может быть более правильным (мудрым) решением будет - иметь локальный источник установки (в вашей внутренней локальной сети).
Внимание - Вы можете объединить статический пример с netboot примером, сделав версию не требующую DHCP сервер.
- Убедитесь в правильности и сохраните изменения в вашем файле.
Как видите я изменил несколько незначительных параметров, как promt и timeout на "0". Это сделано для того, что я не хочу делать какие либо действия на клавиатуре и не смогу видеть экран. Этот диск для установки с помощью VNC. Еще был изменен стандартный вариант загрузки.Теперь добавлен вариант загрузки в котором по умолчанию инициализировано VNC соединение с клиентской частью по адресу "192.168.0.100". Очевидно что адрес сети можно изменить в соответствии с потребностями.Существует VNC параметр, как пароль,который может быть передан (в загрузочной опции). Вы можете установить пароль на VNC-сервер, но для локальной сети под защитой брандмауэра это не актуально. Другая опция это передача необходимых параметров при инсталляции, которые по умолчанию предостовляются автоматически - иначе будет предложен вариант выбрать их, а у нас нет клавиатуры и монитора. Поэто мы передаем дополнительную информацию здесь.
-Получить разрешение на исправления можно командой...
# chmod u+w isolinux/*
Создать новый ISO
Теперь мы собираемся сделать новый образ ISO, чтобы нарезать новый диск.
Примечание - мое последнее ISO названо "vncCentOS.iso" - Вы можете назвать подругому.
# mkisofs -o ../vncCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T .
Отключение проверки диска
Нам необходимо убрать проверку диска (media check), в противном случае процесс инсталяции никогда не начнется.
-Проверте установлен ли пакет anaconda runtime.
# yum list | grep anaconda-runtime
Вывод YUM должен сказать вам, установлен ли он.
- Если он не установлен, то выполните:
# yum install anaconda-runtime
Теперь к инструменту. Он называется "implantisomd5" (внедрение контрольной суммы md5 в образ). Эта программа устанавливается в "/usr/lib/anaconda-runtime/". Примечание: в CentOS 6 она установлена в “/usr/bin/implantisomd5”.
-Отключение проверки диска:
# /usr/lib/anaconda-runtime/./implantisomd5 --supported-iso ../vncCentOS.iso
- в CentOS 6
# /usr/bin/implantisomd5 --supported-iso ../vncCentOS.iso
Внимание - Если вы назвали вашу систему по другому, то необходимо изменить вышеприведенную команду.
- Запишите ISO образ любой программой для прожига CD.
- Запустите VNC клиента (на вашей машине) в режим прослушивания.
- Запустите машину на которой вы хотите произвести инсталляцию, вставте в нее диск и произведите установку как обычно.
Надеюсь, это поможет.
Внимание - В первый раз протестируйте ваш установочный диск при подключенном мониторе, поскольку мы отключили проверку диска.
Примечание - VNC серверу может потребоваться немного времени (1..5 минут) для поднятия соединения с клиентом.