Удаленная переустановка CentOS 7 по сети без CD-ROM, носителей USB и ISO образов

Опубликовано: 25 декабря 2016 / Обновлено: 8 апреля 2017
Раздел(ы): GNU Linux - CentOS / Debian, Программное обеспечение
Просмотры: 9297
Комментарии: 7
Реклама: Браузер для организаций с персональной технической поддержкой. Защищает данные компании и сотрудников. Проверяет загрузки на вирусы, защищает от фишинга и кражи паролей, а также блокирует трекеры, чтобы сторонние сайты не отслеживали действия пользователей. Подробнее.

Для всех читателей блога представляю подробную инструкцию как удаленно переустановить CentOS 7, когда из всех подручных средств есть только доступ к серверу по SSH. В сети достаточно рекомендаций по этому поводу, но к сожалению ни одна из них не является самодостаточным руководством.

Ранее я уже описывал алгоритм удаленной переустановки CentOS 6 https://moonback.ru/page/centos-remote-install.

Условия для успешной установки CentOS 7

Должны быть выполнены следующие условия:

  • Сервер на базе CentOS 7;
  • У сервера должен быть доступ в интернет, как минимум к репозиториям CentOS;
  • У вас должен быть доступ к серверу по SSH протоколу (я использую SSH-клиент PuTTY) с правами привилегированного пользователя ROOT;
  • Вы должны знать сетевые настройки сервера: IP адреса сервера, шлюза, DNS и маску сети;
  • На рабочем компьютере должен быть установлен VNC клиент (UltraVNC, TightVNC).

Инструкция была протестирована на реальном виртуальном сервере в интернете и не содержит ошибок.

Необходимые файлы CentOS 7

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

# cd /boot
# wget http://mirror.centos.org/centos/7/os/x86_64/isolinux/vmlinuz -O vmlinuz-7
# wget http://mirror.centos.org/centos/7/os/x86_64/isolinux/initrd.img -O initrd-7.img

Эта операция может растянуться на 5..10 минут, так как суммарный размер файлов превышает 40 МБ.

Настройка GRUB2

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

Но я поступил иначе… сразу редактируем файл /boot/grub2/grub.cfg, ищем первый блок в секции ### BEGIN /etc/grub.d/10_linux ### начинающийся с menuentry ‘CentOS Linux…. У меня он выглядел так:

menuentry 'CentOS Linux (3.10.0-327.36.3.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-66f6066d-cca0-4062-a954-3f66545e66d2' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  66f6066d-cca0-4062-a954-3f66545e66d2
        else
          search --no-floppy --fs-uuid --set=root 66f6066d-cca0-4062-a954-3f66545e66d2
        fi
        linux16 /boot/vmlinuz-3.10.0-327.36.3.el7.x86_64 root=UUID=66f6066d-cca0-4062-a954-3f66545e66d2 ro crashkernel=auto rhgb quiet LANG=en_US.UTF-8
        initrd16 /boot/initramfs-3.10.0-327.36.3.el7.x86_64.img
}

Копируем этот блок в секцию ### BEGIN /etc/grub.d/40_custom ###
вставляя между строк:
# the ‘exec tail’ line above.
и
### END /etc/grub.d/40_custom ###

Затем, меняем название на NetInstall и редактируем последние строки. Должно получиться следующее:

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'NetInstall' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-66f6066d-cca0-4062-a954-3f66545e66d2' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  66f6066d-cca0-4062-a954-3f66545e66d2
        else
          search --no-floppy --fs-uuid --set=root 66f6066d-cca0-4062-a954-3f66545e66d2
        fi
        linux16 /boot/vmlinuz-7 repo=http://mirror.centos.org/centos/7/os/x86_64/ vnc vncpassword=123456 ip=193.170.128.128 netmask=255.255.252.0 gateway=193.170.128.1 nameserver=193.170.128.2 noselinux headless xfs panic=120
        initrd16 /boot/initrd-7.img
}
### END /etc/grub.d/40_custom ###

небольшие пояснения:

  • vncpassword=123456 — пароль для подключения с помощью VNC клиента (используйте другой);
  • ip=193.170.128.128 — адрес вашего сервера;
  • netmask=255.255.252.0 — маска сети;
  • gateway=193.170.128.1 — адрес шлюза по-умолчанию;
  • nameserver=193.170.128.2 — DNS сервер (думаю можно использовать DNS от Google 8.8.8.8) .

Подготовка к перезагрузке

Укажем серверу, что при следующей перезагрузке он должен использовать наш пункт меню:

# grub2-reboot NetInstall

Перезагрузка и установка CentOS 7

Перезагружаем сервер и идем пить кофе…

# reboot

…так как объем загружаемых данных из репозитория CentOS составляет около 280 МБ, то не спешим и лишь минут через 15..20 пробуем подключиться VNC клиентом (UltraVNC, TightVNC) к нашему серверу по адресу: 193.170.128.128:1
centos-7-remote-install-1
вводим пароль, что указали в конфигурации меню загрузки…
centos-7-remote-install-2
…и выполняем установку в обычном режиме.
centos-7-remote-install-3
Но это уже совсем другая история…
centos-7-remote-install-4

Благодарности

При написании статьи были использованы следующие источники:

  1. https://lowendtalk.com/discussion/78509/tutorial-install-centos-7-remotely-through-vnc
  2. https://habrahabr.ru/post/207584/

Обсуждение (комментарии к статье)

  1. Для установки Centos 7 необходим сервер с Centos 7. Супер условие просто, зачем тогда устанавливать Centos 7 если уже есть.

      1. Например, от какого «мусора» в Centos7 Вы хотели избавиться? Может имело смысл найти и почистить «мусор» в операционной системе, а не использовать Windows подход — переустановку? Если речь шла о неконсистентности, о нарушении целостности операционной системы, то может лучше применить командочки yum reinstall, yum check, rpm -Va, yum distribution-synchronization? Не ломайте аптайм своих серверов и не портите репутацию RedHat переустановкой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2026
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 9 | 0,186 сек. | 5.11 МБ