Работа сервера в Rescue-режиме

Подробнее о загрузке сервера в Rescue.

Монтирование файловой системы

Перед любыми операциями в режиме Rescue требуется примонтировать файловую систему ОС, если данное действие не произошло автоматически. Для этого используется специальная команда:

infiltrate-root

В некоторых случаях infiltrate-root может не сработать. Одной из причин может быть то, что не собрался RAID.

Проверьте, как организована файловая система ОС:

fdisk -l

Если не указаны устройства md, но в sda, sdb и так далее есть разделы с типом Linux RAID (в поле Type), то необходимо собрать RAID. Если разделы Linux RAID отсутствуют, то это означает, что операционная система без RAID и можно переходить к монтированию разделов по инструкции ниже.

Сборка RAID

Устройства sda, sdb и так далее с разделами типа Linux RAID представляют собой части единого массива. Чтобы получить к ним доступ, нужно произвести сборку массива в виртуальные устройства, которые будут иметь вид /dev/md0, /dev/md1 и так далее.

Для этого необходимо выполнить команду mdadm --assemble, в качестве аргументов нужно передать название виртуального устройства и части массива. Например, есть 2 диска: /dev/sda и /dev/sdb. В первом диске есть разделы /dev/sda2 и /dev/sda3, а во втором — /dev/sdb2 и /dev/sdb3. Все они имеют тип Linux RAID. Необходимо объединить все разделы на разных дисках в рамках одного порядкового номера.

Пример для двух дисков:

mdadm --assemble /dev/md0 /dev/sda2 /dev/sdb2
mdadm --assemble /dev/md1 /dev/sda3 /dev/sdb3

В зависимости от количества устройств в RAID может быть больше дисков. Пример для четырёх дисков (как правило, это актуально для RAID 10):

mdadm --assemble /dev/md0 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
mdadm --assemble /dev/md1 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3

После завершения сборки можно переходить к монтированию файловой системы.

Монтирование раздела (без использования LVM)

Если в списке файловой системы есть только устройства вида /dev/sda, /dev/sdb и так далее, то это значит, что не используется менеджер логических томов (LVM). Например, если у диска /dev/sda есть раздел /dev/sda1, то для монтирования раздела нужно выполнить команду:

mount /dev/sda1 /mnt

Для монтирования с изменением корневого каталога используется infiltrate-root:

infiltrate-root /dev/sda1 

Монтирование раздела (с использованием LVM)

Если в списке есть устройства с root в названии (например, /dev/mapper/vg0-root), то в таком случае используется LVM и для монтирования раздела нужно выполнить команду:

mount /dev/mapper/vg0-root /mnt

Для монтирования с изменением корневого каталога:

infiltrate-root /dev/mapper/vg0-root

При использовании infiltrate-root раздел будет смонтирован в директорию /newroot.

Монтирование файловой системы в Windows

Монтирование файловой системы можно выполнить аналогично инструкции для Linux без использования LVM при помощи команды:

mount /dev/sda1 /mnt

В некоторых случаях может возникать ошибка:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

В таком случае не будет возможности производить запись на смонтированный том. Если у вас нет в этом необходимости, то сообщение можно игнорировать. В противном случае нужно размонтировать том и выполнить процедуру исправления базовых ошибок в файловой системе NTFS с помощью утилиты ntfsfix, после чего повторить операцию монтирования:

umount /mnt
ntfsfix /dev/sda1
mount /dev/sda1 /mnt

Также можно смонтировать раздел с NTFS, напрямую обратившись к компоненту ntfs-3g:

ntfs-3g /dev/sda1 /mnt

Сброс и восстановление пароля

Для восстановления пароля в Linux:

  1. Выполните загрузку сервера в Rescue-режим.
  2. Выполните монтирование файловой системы ОС.
  3. Введите и следуйте указаниям утилиты:

    passwd root
  4. После ввода пароля введите:

    sync
  5. Вернитесь в консоль Rescue, введя команду:

    exit

Копирование данных с сервера

Существует множество способов для удаленной передачи данных, например подключение по протоколу SFTP.

SFTP — это протокол, предназначенный для выполнения операций с файлами поверх SSH. Вам потребуется приложение, которое поддерживает работу с SFTP, например FileZilla.

Для получения доступа к файловой системе на удаленном сервере:

  1. Выполните загрузку сервера в Rescue-режим.
  2. Выполните монтирование файловой системы ОС.
  3. Подключитесь к серверу с помощью SFTP-клиента.

Пример подключения с помощью FileZilla:

Заполните поля:

  • Host — sftp://IP_адрес_сервера;
  • Username — имя пользователя, которое находится на странице сервера в разделе Операционная система;
  • Password — пароль из этого раздела.

В окне FileZilla Remote Site будут доступны файлы сервера.

Изменение сетевых настроек сервера

Изменение настроек зависит от дистрибутива операционной системы.

Ubuntu (версии 18.04 и выше)

  1. Выполните загрузку сервера в Rescue-режим.
  2. Выполните монтирование файловой системы ОС.
  3. Откройте конфигурационный файл утилиты netplan (например, с помощью vim):

    vi /etc/netplan/01-netcfg.yaml

    или

    vi /etc/netplan/50-cloud-init.yam
  4. В конфигурационном файле измените значения addresses и gateway4 на новый IP-адрес и шлюз соответственно:

    addresses: [<IP/MASK>]
    gateway4: <GATEWAY>

    Пример конфигурационного файла для подсети 188.93.23.36/29 с IP-адресом сервера 188.93.23.36 и шлюзом 188.93.23.33:

    Обратите внимание! Конфигурационный файл написан на языке YAML, чувствительном к табуляции и пробелам. Заполните его по аналогии с тем, как он был заполнен ранее.

  5. Сохраните файл и выйдите из текстового редактора.

  6. В консоли введите:

    netplan --debug generate
    netplan apply
  7. Перейдите на вкладку Порты в карточке сервера.

  8. В поле Интернет замените значение Общая на значение выделенного VLAN.

CentOS

  1. Выполните загрузку сервера в Rescue-режим.
  2. Выполните монтирование файловой системы ОС.
  3. Для просмотра всех сетевых адаптеров, установленных в системе, введите:

    ip a

  4. Откройте конфигурационный файл (например, с помощью vim):

    vi /etc/sysconfig/network-scripts/ifcfg-EN1

    Где EN1 — имя сетевого адаптера, настройки которого нужно изменить.

    Например, для настройки адаптера eno1 введите:

    vi /etc/sysconfig/network-scripts/ifcfg-eno1
  5. В конфигурационном файле измените значения IPADDR и GATEWAY на новый IP-адрес и шлюз соответственно.

    Пример конфигурационного файла для подсети 188.93.23.32/29 с IP-адресом сервера 188.93.23.37 и шлюзом 188.93.23.33:

  6. Сохраните файл и выйдите из текстового редактора.

  7. Если вы используете CentOS 7, введите в консоли:

    systemctl restart network

    В CentOS 8:

    systemctl restart NetworkManager
    nmcli networking off; nmcli networking on
  8. Перейдите на вкладку Порты в карточке сервера.

  9. В поле Интернет измените значение Общая на значение выделенного VLAN.

Debian / Ubuntu (версии 16.04 и ниже)

  1. Выполните загрузку сервера в Rescue-режим.
  2. Выполните монтирование файловой системы ОС.
  3. Откройте файл конфигурации интерфейсов (например, с помощью vim):

    vi /etc/network/interfaces
  4. В конфигурационном файле измените значения address и gateway на новый IP-адрес и шлюз соответственно.

    Пример конфигурационного файла для подсети с IP-адресом сервера 188.93.23.37 и шлюзом 188.93.23.33:

  5. Сохраните файл и выйдите из текстового редактора.

  6. В консоли введите:

    ip addr flush EN1

    Где EN1 — имя сетевого адаптера, настройки которого были изменены.

  7. Введите:

    service networking restart
  8. Перейдите на вкладку Порты в карточке сервера.

  9. В поле Интернет измените значение Общая на значение выделенного VLAN.

Восстановление загрузчика ОС

Восстановление загрузчика Linux

Основной загрузчик операционных систем Linux — GRUB. При возникновении проблем восстановить загрузчик можно с помощью LiveCD — загрузиться в режим Rescue.

В Live-системе необходимо смонтировать все разделы в заранее созданную папку (например /mnt) аналогично тому, как они были смонтированы в основной системе.

Чтобы восстановить загрузчик:

  1. Запустите систему с LiveCD и откройте терминал.

  2. Найдите корневой раздел, в который установлена система, с помощью команды fdisk (в выводе найдите раздел с типом Linux filesystem):

    fdisk -l
    • Если система установлена в разделе без использования LVM, то корневой раздел будет находиться в /dev/sda*
    • В разделе с использованием LVM — /dev/mapper
    • Если разделы находятся на софтверном RAID-массиве — /dev/md* (монтирование выполняется в соответствующий массив)
  3. Допустим, в основной системе есть корневой раздел /, находящийся в /dev/sda2 и раздел /boot, находящийся в /dev/sda1. Смонтируйте разделы в /mnt:

    mount /dev/sda2 /mnt/  
    mount /dev/sda1 /mnt/boot  

    Если используется UEFI-загрузчик, то примонтируйте также EFI-раздел:

    mount /dev/sda3 /mnt/boot/efi

    Где /dev/sda3 — раздел c EFI.

    Обратите внимание! С помощью команды cat /mnt/etc/fstab можно посмотреть точку монтирования в основной ОС, а также UUID диска и сопоставить его с UUID-диска в Live-образе.

  4. Примонтируйте директории /sys, /proc, /dev:

    mount --bind /sys /mnt/sys
    mount --bind /proc /mnt/proc
    mount --bind /dev /mnt/dev
  5. Перейдите в окружение основной системы с помощью chroot:

    chroot /mnt

    Если возникает ошибка, то используйте команду с /bin/bash:

    chroot /mnt /bin/bash
  6. Если GRUB на дисках не установлен, то установите его. Если установка не требуется, то переходите к шагу 7. GRUB нужно устанавливать на все диски, с которых вы планируете загружаться. Например, если для загрузочного раздела используется RAID0:

    grub-install /dev/sda
    grub-install /dev/sdb

    В зависимости от количества устройств в RAID может быть больше дисков.

  7. Для генерации файла конфигурации GRUB введите:

    update-grub

    или

    update-grub2
  8. Выйдите из окружения chroot:

    exit

Список утилит

Для работы в Rescue также доступны другие утилиты – Список утилит.