Как удаленно установить CentOS
Раздел(ы): GNU Linux - CentOS / Debian
Просмотры: 14735
Комментарии: 1
Самым радикальным способом избавиться от «мусора» в операционной системе является ее «чистая» переустановка. Что достаточно простая задача, при наличии физического доступа к серверу (компьютеру). Однако большинство WEB серверов находятся на расстоянии многих и многих километров от своих хозяев. В данной статье я подробно расскажу как установить CentOS удаленно используя только доступ к консоли сервера по SSH.
Необходимость переустановки операционной системы
Причин может быть несколько. Неполадки в работе, когда система тормозит, или ни с того ни с чего терять производительность. Периодически может «глючить» какой-нибудь софт или вообще отказывается работать. Если необходимо сменить разрядность, к примеру с 32-х бит на 64 или наоборот. Когда необходима чистая ОС, к примеру для установки панели управления хостингом ISPmanager или Vesta Panel.
Три способа установки операционной системы на сервер
- Приехать в ДАТА центр и установить ОС;
- Оплатить услуги администрирования и сотрудники ДАТА центра установят Вам операционную систему;
- Использовать VNC и установить ОС удаленно.
Мне по душе третий вариант.
Нахрена козе баян? Или почему ОС лучше ставить самому.
Для себя вижу несколько причин переустановить операционную систему самостоятельно:
- Дороговизна услуг администрирования. Если у Вас бюджетный сервер и услуга администрирования оплачивается отдельно.
- Отсутствие контроля за действиями администратора. Сервер как и жену не доверю никому 🙂
- Потеря времени, у администратора хостинг провайдера может быть куча дел с другими клиентами и их серверами.
- Образы операционных систем неизвестного происхождения. Как правило никто не будет ставить Вам операционную систему с нуля из дистрибутива, а зальют на диск заранее подготовленный образ. Который может быть далеко неидеальным.
Три слагаемых успеха
- Доступ к серверу по SSH с правами ROOT.
- «Живой» сервер CentOS с доступом в интернет.
- ПО удалённого доступа к рабочему столу компьютера, к примеру TightVNC
ИНСТРУКЦИЯ по удаленной установке CentOS
Предварительные ласки или с чего начать
Писал, пишу и буду писать: не забудь про бэкап! И хотя статья не об этом, но резервные копии надо сделать обязательно, так как после переустановки операционной системы Ваш сервер будет чист как белый лист.
Необходимо определить сетевые настройки Вашего сервера. Нас интересуют следующие значения:
Сетевой интерфес (МАС адрес или наименование);
IP адрес сетевого интерфейса сервера;
Маска сети;
IP адрес шлюза по-умолчанию;
IP адрес доступного DNS сервера, как правило можно использовать публичные DNS от Google 8.8.8.8 и 8.8.4.4
Для определения необходимый параметров выполним в консоли несколько команд:
ifconfig ip route show cat /etc/sysconfig/network-scripts/ifcfg-eth0 cat /etc/sysconfig/network cat /etc/resolv.conf
Я получил следующие значения:
//Ip 193.170.128.128 //Gateway 193.170.128.1 //DNS 193.170.128.2 //MASK 255.255.252.0 //MAC 12:14:01:4a:25:b5
Загрузка образов для старта
Необходимо выбрать загружаемые образы в зависимости от версии операционной системы и ее разрядности. К примеру для CentOS 64 бит версии 6.4 выполните следующие команды:
wget -O /boot/vmlinuz_remote http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/vmlinuz wget -O /boot/initrd_remote.img http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/initrd.img
Если необходима установка 32-х битной операционной системы то смените в адресах x86_64 на i386:
wget -O /boot/vmlinuz_remote http://mirror.centos.org/centos/6.4/os/i386/isolinux/vmlinuz wget -O /boot/initrd_remote.img http://mirror.centos.org/centos/6.4/os/i386/isolinux/initrd.img
Обращаю Ваше внимание, что загрузка будет произведена с официальных серверов CentOS. Предварительно проверьте правильность путей открыв адреса в браузере.
Конфигурация загрузчика GRUB для удаленной установки CentOS
Переходим к самому важному пункту — настройка конфигурации загрузчика GRUB. В двух словах, мы пропишем в настройках альтернативную загрузку с использованием свежескаченного дистрибутива. И укажем grub попробовать загрузить его один раз. А если что-то пойдет не так, то автоматически вернемся к ранее установленному дистрибутиву после перезагрузки через 120 секунд (в некоторых случаях для перезагрузки может понадобиться помощь специалистов ДАТА центра).
Открываем файл grub.conf (как правило /boot/grub/grub.conf) и добавляем в него следующие строки:
title Remote Install root (hd0,0) kernel /boot/vmlinuz_remote lang=en_US keymap=us method=http://mirror.centos.org/centos/6.4/os/x86_64/ vnc vncpassword=123456 ip=193.170.128.128 netmask=255.255.252.0 gateway=193.170.128.1 dns=193.170.128.2 noselinux ksdevice=eth0 headless xfs panic=120 initrd /boot/initrd_remote.img
где, root (hd0,0) — расположении /BOOT партиции, vncpassword — пароль для доступа к удаленному рабочему столу VNC сервера (придумайте свой), ip — ip адрес Вашего сервера, netmask — маска сети, gateway — ip адрес шлюза по-умолчанию, dns — ip адрес DNS сервера (можно использовать публичные от Google 8.8.8.8 или 8.8.4.4), ksdevice — наименование сетевого интерфейса или его MAC-адрес, panic — время перезагрузки, если что-то пойдет не так.
Кроме этого проверьте адреса загрузки на доступность и имена файлов, которые мы скачали на предыдущем шаге.
Для 32-х битной операционной системы изменения будут выглядеть так (как всегда меняем в адресе x86_64 на i386):
title Remote Install root (hd0,0) kernel /boot/vmlinuz_remote lang=en_US keymap=us method=http://mirror.centos.org/centos/6.4/os/i386/ vnc vncpassword=123456 ip=193.170.128.128 netmask=255.255.252.0 gateway=193.170.128.1 dns=193.170.128.2 noselinux ksdevice=eth0 headless xfs panic=120 initrd /boot/initrd_remote.img
Теперь самое важное, куда же все это вставлять 🙂
Мой файл grub.conf выглядит так:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-358.2.1.el6.i686) root (hd0,0) kernel /boot/vmlinuz-2.6.32-358.2.1.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.2.1.el6.i686.img title CentOS (2.6.32-358.el6.i686) root (hd0,0) kernel /boot/vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.el6.i686.img
Как Вы видите система имеет в списке загрузки два варианта. И мы должны добавить свой. Добавим его в самый конец:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-358.2.1.el6.i686) root (hd0,0) kernel /boot/vmlinuz-2.6.32-358.2.1.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.2.1.el6.i686.img title CentOS (2.6.32-358.el6.i686) root (hd0,0) kernel /boot/vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.el6.i686.img title Remote Install root (hd0,0) kernel /boot/vmlinuz_remote lang=en_US keymap=us method=http://mirror.centos.org/centos/6.4/os/i386/ vnc vncpassword=123456 ip=193.170.128.128 netmask=255.255.252.0 gateway=193.170.128.1 dns=193.170.128.2 noselinux ksdevice=eth0 headless xfs panic=120 initrd /boot/initrd_remote.img
Наша конфигурация загрузки CentOS идет третьим пунктом. Укажем grub попробовать загрузить ее один раз:
grub grub> savedefault --default=2 --once savedefault --default=2 --once grub> quit
После чего можно перегружать сервер:
reboot
Ждем когда сервер начнет пинговаться и пробуем подключиться по VNC по адресу 193.170.128.128:1 (адрес нашего сервера, VNC порт=1). В зависимости от мощности сервера и скорости канала на это может уйти до получаса. За это время скачаются и установятся все необходимые пакеты.
После этого на экране будет стандартный рабочий стол установщика CentOS с графическим интерфейсом. Ну а сама установка операционной системы на сервер — это совсем другая история.
Замечания по удаленной установке CentOS
VNC не поддерживает Keepalives и при длительном простое может «отвалиться». Поэтому если Вы подключили VNC клиент, то нужно сразу приступать к делу, либо принудительно отключиться от сервера.
Если у Вас на сервере нет файла grub.conf, то это значит, что у вас виртуальный сервер на основе OpenVZ и данная инструкция Вам не подходит. Это еще один повод использовать аппаратные методы виртуализации, к примеру VmWare, как это сделано в компании Adman.
В статье приведен безопасный метод загрузки, с возможностью вернуться к существующей операционной системе. Но Вы можете записать новую конфигурацию на первое место и тогда не будет необходимости в команде savedefault —default=2 —once. Grub будет использовать первую по списку.
Спасибо! статья пригодилась в 2019-м !!! Только ссылки по тексту надо поправить на крайнюю версию шестерки CentOS 6.10 — http://mirror.centos.org/centos/6.10/ Иначе ничего не заработает.