Исправляем неполадки Windows в Selectel Rescue

Windows Linux Rescue

Мы уже писали о диагностике и устранении неполадок на сервере с помощью нашей консоли восстановления. Во всех публикациях на эту тему речь шла исключительно о неисправностях Linux-систем.
Но пользователи OC Windows, которых среди наших клиентов немало, тоже часто сталкиваются с аварийными ситуациями: заражение вирусами, физические повреждения дисков, ошибки при обновлении системы. Штатные средства Windows в подобных случаях очень часто оказываются бессильными. Однако исправить неполадки можно и другим способом: привлечь на помощь Linux.

Загрузиться в режиме восстановления (Rescue) прямо из панели управления может любой пользователь услуги «Выделенный сервер». В памяти сервера будет запущена Linux-система, из-под которой можно будет попытаться «вылечить» Windows. Все необходимые диагностические утилиты уже добавлены в Rescue, и вам даже ничего дополнительно устанавливать.
О путях устранения наиболее типичных неисправностей мы расскажем ниже. Надеемся, что материалы статьи будут полезными как нашим пользователям, так и начинающим системным администраторам и специалистам технической поддержки.

Работа с динамическими дисками: ldmtool

В серверах под управлением OC Windows часто используются так называемые динамические диски. По своим возможностям они близки к LVM томам в Linux. Технология динамических дисков позволяет объединять отдельные диски в единый том, разделять данные между несколькими дисками, а также дублировать данные на нескольких дисках для повышения уровня надёжности и отказоустойчивости (функциональность RAID0, RAID1, RAID5).
С помощью утилиты ldmtool можно управлять динамическими дисками из-под Linux-окружения.

Рассмотрим следующий практический кейс: сервер перестал загружаться, и нужно срочно получить доступ к хранимым на нём данным, чтобы избежать их потери.

Решить эту задачу с помощью утилиты ldmtool просто. Сначала загрузимся в rescue и сканируем систему на наличие динамических томов:

# ldmtool scan

Вывод этой команды будет содержать информацию об обнаруженных группах дисков, представленную в формате JSON:

[
 "cc085e40-8ddd-11e5-80b9-003048db0adf"
]

Для просмотра более подробной информации используются следующие команды:

$ ldmtool show diskgroup cc085e40-8ddd-11e5-80b9-002048db0adf

{
 "name" : "CS18298-Dg0",
 "guid" : "cc085e40-8ddd-11e5-80b9-002048db0adf",
 "volumes" : [
  "Volume2",
  "Volume1",
  "Volume3"
 ],
 "disks" : [
  "Disk1",
  "Disk2"
 ]
}

# ldmtool show volume cc085e40-8ddd-11e5-80b9-002048db0adf Volume2


{
 "name" : "Volume2",
 "type" : "mirrored",
 "size" : 235536384,
 "chunk-size" : 0,
 "hint" : "C:",
 "partitions" : [
  "Disk1-02",
  "Disk2-02"
 ]
}
# ldmtool show partition cc085e40-8ddd-11e5-80b9-002048db0adf Disk1-01


{
 "name" : "Disk1-02",
 "start" : 718785,
 "size" : 235536384,
 "disk" : "Disk1"
}

Теперь можно смонтировать нужный нам том:

#создаём device mapper
# ldmtool create cc085e40-8ddd-11e5-80b9-002048db0adf

После этого том будет доступен в /dev/mapper/ldm_vol_FOOBAR-Dg0_Volume1, и его можно будет смонтировать с помощью ntfs-3g.

Работа с файловой системой NTFS: ntfs-3g

Как было сказано выше, для монтирования разделов c NTFS используется ntfs-3g — свободная реализация «виндовой» файловой системы NTFS с поддержкой чтения и записи данных.

В состав пакета ntfs-3g входит набор утилит ntfsprogs. Он включает полезные инструменты для исправления повреждений NTFS, резервного копирования и восстановления данных.

Прежде чем начинать работу с NTFS, нужно примонтировать соответствующий раздел. Это можно сделать с помощью традиционной команды mount:

# mount -t ntfs /dev/mapper/ldm_vol_FOOBAR-Dg0_Volume1 /mnt/

Есть ещё один способ — обращение к ntfs-3g напрямую:

# ntfs-3g /dev/mapper/ldm_vol_FOOBAR-Dg0_Volume1 /mnt

После монтирования можно приступать к восстановлению данных. Здесь нам и пригодятся инструменты из набора ntfsprogs.

Для проверки файловой системы и исправления повреждений используется утилита ntfsfix. Приведём пример её использования:

# отмонтируем раздел с NTFS
# umount /dev/sda2

#запускаем ntfsfix
# ntfsfix /dev/sda2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
NTFS volume version is 3.1.
NTFS partition /dev/sda2 was processed successfully.


#снова монтируем раздел с NTFS
# mount /dev/sda2

Утилита ntfsclone создаёт образ файловой системы, который затем можно будет развернуть на другом сервере:

# ntfsclone -o win.img /dev/sda2

При подозрении на наличие физических повреждений диска можно воспользоваться опцией —rescue:

# ntfsclone --rescue -o win.img /dev/sda2

Сброс пароля: chntpw

Довольно частое происшествие: пользователь забыл пароль для входа в Windows и не может попасть на сервер. В такой ситуации можно привлечь на помощь Linux — и сбросить пароль. Специально для этого в нашем Rescue имеется утилита chntpw. Порядок действий таков: загружаемся в Rescue, монтируем раздел с папкой Windows, затем выполняем:

# cd /media/win/Windows/System32/config/
# chntpw SAM

Вот и всё. После сброса пароля мы снова можем войти на сервер.

Редактирование реестра: chntpw и registry-tools

Для устранения многих неисправностей Windows требуется редактировать реестр. Здесь нам тоже может помочь утилита chntpw.

Загружаемся в Rescue и монтируем раздел с NTFS так же, как в предыдущем пункте. Далее выполняем:

# chntpw -l /media/win/Windows/System32/config/software

Теперь мы можем вносить правки в реестр. Для перемещения по веткам используется команда cd, например:

cd Microsoft/Windows NT/CurrentVersion/Winlogon

Для просмотра ключей используется команда dir, а для редактирования — ed, например:

ed Shell

Отредактировать реестр можно также с помощью утилиты regshell из пакета registry-tools.
При запуске утилиты regshell будет открыта командная строка реестра. Для перемещения по ветками реестра используется команда ck (или cd). Удаление ключей и значений осуществляется с помощью команд rmkey и rmval соответственно. Создать новой ключ можно с помощью команды mkkey. Более подробно о командах regshell можно прочитать в официальном руководстве.

Заключение

В этой статье мы проделали обзор основных утилит для диагностики и исправления неполадок Windows из-под Linux-окружения. Если у вас есть опыт решения проблем, подобных описанных нами, было бы интересно ознакомиться. А если вы знаете какие-то полезные утилиты, которые в наш обзор не вошли — расскажите о них в комментариях.