Работа сервера в 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:
- Выполните загрузку сервера в Rescue-режим.
- Выполните монтирование файловой системы ОС.
Введите и следуйте указаниям утилиты:
passwd root
После ввода пароля введите:
sync
Вернитесь в консоль Rescue, введя команду:
exit
Копирование данных с сервера
Существует множество способов для удаленной передачи данных, например подключение по протоколу SFTP.
SFTP — это протокол, предназначенный для выполнения операций с файлами поверх SSH. Вам потребуется приложение, которое поддерживает работу с SFTP, например FileZilla.
Для получения доступа к файловой системе на удаленном сервере:
- Выполните загрузку сервера в Rescue-режим.
- Выполните монтирование файловой системы ОС.
- Подключитесь к серверу с помощью SFTP-клиента.
Пример подключения с помощью FileZilla:
Заполните поля:
- Host —
sftp://IP_адрес_сервера
; - Username — имя пользователя, которое находится на странице сервера в разделе Операционная система;
- Password — пароль из этого раздела.
В окне FileZilla Remote Site будут доступны файлы сервера.
Изменение сетевых настроек сервера
Изменение настроек зависит от дистрибутива операционной системы.
Ubuntu (версии 18.04 и выше)
- Выполните загрузку сервера в Rescue-режим.
- Выполните монтирование файловой системы ОС.
Откройте конфигурационный файл утилиты netplan (например, с помощью vim):
vi /etc/netplan/01-netcfg.yaml
или
vi /etc/netplan/50-cloud-init.yam
В конфигурационном файле измените значения
addresses
иgateway4
на новый IP-адрес и шлюз соответственно:addresses: [<IP/MASK>] gateway4: <GATEWAY>
Пример конфигурационного файла для подсети
188.93.23.36/29
с IP-адресом сервера188.93.23.36
и шлюзом188.93.23.33
:Обратите внимание! Конфигурационный файл написан на языке YAML, чувствительном к табуляции и пробелам. Заполните его по аналогии с тем, как он был заполнен ранее.
Сохраните файл и выйдите из текстового редактора.
В консоли введите:
netplan --debug generate netplan apply
Перейдите на вкладку Порты в карточке сервера.
В поле Интернет замените значение Общая на значение выделенного VLAN.
CentOS
- Выполните загрузку сервера в Rescue-режим.
- Выполните монтирование файловой системы ОС.
Для просмотра всех сетевых адаптеров, установленных в системе, введите:
ip a
Откройте конфигурационный файл (например, с помощью vim):
vi /etc/sysconfig/network-scripts/ifcfg-EN1
Где EN1 — имя сетевого адаптера, настройки которого нужно изменить.
Например, для настройки адаптера eno1 введите:
vi /etc/sysconfig/network-scripts/ifcfg-eno1
В конфигурационном файле измените значения
IPADDR
иGATEWAY
на новый IP-адрес и шлюз соответственно.Пример конфигурационного файла для подсети
188.93.23.32/29
с IP-адресом сервера188.93.23.37
и шлюзом188.93.23.33
:Сохраните файл и выйдите из текстового редактора.
Если вы используете CentOS 7, введите в консоли:
systemctl restart network
В CentOS 8:
systemctl restart NetworkManager nmcli networking off; nmcli networking on
Перейдите на вкладку Порты в карточке сервера.
В поле Интернет измените значение Общая на значение выделенного VLAN.
Debian / Ubuntu (версии 16.04 и ниже)
- Выполните загрузку сервера в Rescue-режим.
- Выполните монтирование файловой системы ОС.
Откройте файл конфигурации интерфейсов (например, с помощью vim):
vi /etc/network/interfaces
В конфигурационном файле измените значения
address
иgateway
на новый IP-адрес и шлюз соответственно.Пример конфигурационного файла для подсети с IP-адресом сервера
188.93.23.37
и шлюзом188.93.23.33
:Сохраните файл и выйдите из текстового редактора.
В консоли введите:
ip addr flush EN1
Где EN1 — имя сетевого адаптера, настройки которого были изменены.
Введите:
service networking restart
Перейдите на вкладку Порты в карточке сервера.
В поле Интернет измените значение Общая на значение выделенного VLAN.
Восстановление загрузчика ОС
Восстановление загрузчика Linux
Основной загрузчик операционных систем Linux — GRUB. При возникновении проблем восстановить загрузчик можно с помощью LiveCD — загрузиться в режим Rescue.
В Live-системе необходимо смонтировать все разделы в заранее созданную папку (например /mnt
) аналогично тому, как они были смонтированы в основной системе.
Чтобы восстановить загрузчик:
Запустите систему с LiveCD и откройте терминал.
Найдите корневой раздел, в который установлена система, с помощью команды
fdisk
(в выводе найдите раздел с типомLinux filesystem
):fdisk -l
- Если система установлена в разделе без использования LVM, то корневой раздел будет находиться в
/dev/sda*
- В разделе с использованием LVM —
/dev/mapper
- Если разделы находятся на софтверном RAID-массиве —
/dev/md*
(монтирование выполняется в соответствующий массив)
- Если система установлена в разделе без использования LVM, то корневой раздел будет находиться в
Допустим, в основной системе есть корневой раздел
/
, находящийся в/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-образе.Примонтируйте директории
/sys
,/proc
,/dev
:mount --bind /sys /mnt/sys mount --bind /proc /mnt/proc mount --bind /dev /mnt/dev
Перейдите в окружение основной системы с помощью
chroot
:chroot /mnt
Если возникает ошибка, то используйте команду с
/bin/bash
:chroot /mnt /bin/bash
Если GRUB на дисках не установлен, то установите его. Если установка не требуется, то переходите к шагу 7. GRUB нужно устанавливать на все диски, с которых вы планируете загружаться. Например, если для загрузочного раздела используется RAID0:
grub-install /dev/sda grub-install /dev/sdb
В зависимости от количества устройств в RAID может быть больше дисков.
Для генерации файла конфигурации GRUB введите:
update-grub
или
update-grub2
Выйдите из окружения
chroot
:exit
Список утилит
Для работы в Rescue также доступны другие утилиты – Список утилит.