Подробный гайд по диагностике и восстановлению файловых систем от проверки, создания до ремонта

Подробный гайд по диагностике и восстановлению файловых систем: от проверки SMART и создания образа диска до ремонта ext4, NTFS, XFS и спасения данных.

2026.08.12                  


Подробный гайд по диагностике и восстановлению файловых систем от проверки, создания до ремонтаПодробный гайд по диагностике и восстановлению файловых систем от проверки, создания до ремонта

Главное правило:

Перед любыми действиями убедитесь, что есть резервная копия важных данных. Если её нет и данные критичны — первым шагом делайте посекторный образ диска, а уже потом экспериментируйте. При подозрении на аппаратную неисправность диска (щелчки, диск не определяется, SMART в плохом состоянии) не мучайте его — лучше обратиться в лабораторию восстановления данных.


Часть 1. Диагностика: определяем проблему



1.1. Симптомы проблем с файловой системой

Симптом Вероятная причина
«Read-only file system» при записи ФС повреждена и смонтирована только на чтение, либо ошибки на диске
Файлы исчезли / имена стали странными (? вместо имён) Повреждена структура ФС
Система не загружается, ругается на ФС Повреждён суперблок, journal, метаданные
Диск виден, но не монтируется Повреждена ФС или таблица разделов
Диск вообще не определяется Аппаратная проблема, контроллер, кабель
Зависания при чтении файлов Бэд-блоки, деградация диска
Пропадают разделы Повреждена таблица разделов (MBR/GPT)

1.2. Определяем тип файловой системы и устройство

Linux:

# Посмотреть блочные устройства и файловые системы
lsblk -f

# Подробная информация о разделе
sudo blkid /dev/sda1
sudo file -s /dev/sda1

# Информация о смонтированных ФС
df -hT
mount | column -t

Windows:

  • «Управление дисками» (diskmgmt.msc) — видно тип ФС (NTFS, FAT32, exFAT, ReFS)
  • diskpartlist volume
  • fsutil fsinfo volumeinfo C:

1.3. Проверяем физическое состояние диска

Это критически важный шаг. Если диск умирает, любые проверки файловой системы могут его добить.

Linux (SMART):

# Установить smartmontools, если нет
sudo apt install smartmontools   # Debian/Ubuntu
sudo dnf install smartmontools   # Fedora/RHEL

# Краткий статус
sudo smartctl -H /dev/sda

# Полная информация
sudo smartctl -a /dev/sda

# Для NVMe
sudo smartctl -a /dev/nvme0

# Запуск длительного теста (может занять часы)
sudo smartctl -t long /dev/sda
# Посмотреть результат
sudo smartctl -l selftest /dev/sda

На что смотреть в SMART:

  • Reallocated_Sector_Ct — переназначенные сектора. Растёт — диск умирает
  • Current_Pending_Sector — сектора, ожидающие переназначения
  • Offline_Uncorrectable — нечитаемые сектора
  • UDMA_CRC_Error_Count — часто указывает на плохой SATA-кабель
  • Media_Wearout_Indicator / Percentage Used (SSD/NVMe) — износ

Windows:

  • wmic diskdrive get status (базовая проверка)
  • CrystalDiskInfo (подробный SMART)
  • Victoria HDD / SSD (поверхностное сканирование)

1.4. Проверяем ошибки ввода-вывода

Linux:

# Смотрим системный журнал на предмет ошибок диска
dmesg | grep -iE "error|fail|i/o|ata|sd[a-z]"
journalctl -k | grep -iE "error|i/o"

# Проверка на бэд-блоки (осторожно, нагружает диск!)
sudo badblocks -v /dev/sda1          # только чтение
sudo badblocks -nsv /dev/sda1        # non-destructive write test

Windows:

  • Просмотр «Просмотр событий» → Система → ищите ошибки disk, Ntfs, volmgr
  • Get-PhysicalDisk и Get-StorageReliabilityCounter в PowerShell

Часть 2. Первое действие: создаём образ диска

Если есть подозрения на проблемы с диском или данные очень ценны — сначала образ, потом ремонт.

2.1. ddrescue (Linux) — лучший инструмент для проблемных дисков

sudo apt install gddrescue

# Создание образа с картой восстановления (карту можно переиспользовать при повторных попытках)
sudo ddrescue -d -r3 /dev/sda /mnt/backup/sda_image.img /mnt/backup/sda_map.log
  • -d — прямой доступ (без кэша)
  • -r3 — 3 попытки перечитать проблемные сектора
  • Файл .log (карта) позволяет прервать процесс и продолжить позже, не начиная заново

После этого все операции проводите с образом, а не с оригиналом:

sudo losetup -P /dev/loop0 /mnt/backup/sda_image.img
# Разделы образа будут доступны как /dev/loop0p1, /dev/loop0p2...

2.2. Альтернативы

Утилита Особенности
dd Простое копирование, не справляется с бэд-блоками так хорошо, как ddrescue
dcfldd dd с прогрессом и контрольными суммами
hddsuperclone / openhddsuperclone Для сложных случаев с умирающими дисками
DMDE (GUI) Кроссплатформенный, есть бесплатная версия



Часть 3. Восстановление файловой системы в Linux

3.1. EXT2/EXT3/EXT4 — утилита fsck

Никогда не запускайте fsck на смонтированной файловой системе! Это может привести к серьёзному повреждению данных. Раздел должен быть размонтирован или смонтирован только на чтение.

Базовый синтаксис:

# Размонтируем раздел
sudo umount /dev/sdb1

# Проверка с автоматическим исправлением
sudo fsck -y /dev/sdb1

# Более подробный вывод
sudo fsck -v /dev/sdb1

# Проверка без изменений (только диагностика)
sudo fsck -n /dev/sdb1

Расширенные сценарии:

# Повреждён суперблок. Сначала ищем резервные суперблоки:
sudo mke2fs -n /dev/sdb1
# В выводе будут адреса резервных суперблоков, например: 32768, 98304, 163840...
# Используем один из них:
sudo fsck -b 32768 /dev/sdb1

# Проверка и исправление бэд-блоков
sudo fsck -c /dev/sdb1        # один проход
sudo fsck -cc /dev/sdb1       # два прохода (тщательнее)

# Принудительная проверка при следующей загрузке
sudo touch /forcefsck
# или
sudo shutdown -rF now

Если файловая система вообще не распознаётся:

# Проверяем, что там на самом деле
sudo file -s /dev/sdb1

# Может понадобиться восстановить суперблок ext4
sudo e2fsck -f -b 32768 /dev/sdb1

Восстановление удалённых файлов на ext3/ext4:

sudo apt install extundelete
sudo extundelete /dev/sdb1 --restore-all
sudo extundelete /dev/sdb1 --restore-file path/to/file

# Альтернатива для ext4
sudo apt install ext4magic
sudo ext4magic /dev/sdb1 -r -d /mnt/recovered/

3.2. XFS — утилита xfs_repair

# Раздел должен быть размонтирован!
sudo umount /dev/sdb1

# Сначала проверка без изменений (dry run)
sudo xfs_repair -n /dev/sdb1

# Если есть ошибки — ремонт
sudo xfs_repair /dev/sdb1

# Если log повреждён и repair не идёт (крайняя мера, потеря данных из journal)
sudo xfs_repair -L /dev/sdb1

-L очищает журнал. Данные, которые были только в журнале и не записаны на диск, будут потеряны. Используйте только если xfs_repair без -L не справляется.


Если XFS не монтируется из-за ошибок:

# Проверить метаданные
sudo xfs_check /dev/sdb1   # только чтение (older)
sudo xfs_metadump /dev/sdb1 /tmp/xfs_meta.dump  # сохранить метаданные для анализа

3.3. Btrfs — встроенные механизмы

# Проверка (раздел размонтирован)
sudo btrfs check /dev/sdb1

# Проверка с деревом данных
sudo btrfs check --tree-root /dev/sdb1

# Ремонт (осторожно!)
sudo btrfs check --repair /dev/sdb1

# Scrub — онлайн-проверка с исправлением из копий (RAID1/DUP)
sudo btrfs scrub start /mount/point
sudo btrfs scrub status /mount/point

# Восстановление дерева
sudo btrfs restore /dev/sdb1 /mnt/recovered/

# Проверка контрольных сумм
sudo btrfs scrub start -d /mount/point

Btrfs хранит данные с контрольными суммами и может иметь дублирующие копии метаданных, что часто позволяет восстановить больше, чем в ext4.


3.4. Проверка и ремонт загрузчика / суперблока

Если система не грузится:

# Загрузиться с Live USB

# Найти корневой раздел
lsblk -f
sudo blkid

# Смонтировать и проверить
sudo mount /dev/sda2 /mnt
sudo fsck /dev/sda2

# Если повреждён initramfs
sudo chroot /mnt
mkinitcpio -P        # Arch
update-initramfs -u  # Debian/Ubuntu
dracut --regenerate-all --force  # Fedora/RHEL

# Переустановить GRUB при необходимости
sudo mount /dev/sda1 /mnt/boot/efi   # если EFI
sudo grub-install --root-directory=/mnt /dev/sda
sudo update-grub



Часть 4. Восстановление файловой системы в Windows

4.1. CHKDSK — основная утилита

:: Проверка без исправлений
chkdsk C:

:: Проверка с исправлением ошибок
chkdsk C: /f

:: Полная проверка с поиском бэд-секторов и восстановлением данных
chkdsk C: /r

:: Принудительная проверка при следующей загрузке
chkdsk C: /f /r /x
:: /x — принудительно размонтирует том перед проверкой

Через PowerShell:

Repair-Volume -DriveLetter C -Scan        # только проверка
Repair-Volume -DriveLetter C -OfflineScan # проверка при перезагрузке
Repair-Volume -DriveLetter C -SpotFix     # точечное исправление

Важно:

  • /r включает /f и дополнительно ищет бэд-секторы
  • Проверка системного тома требует перезагрузки
  • На больших дисках /r может занимать многие часы
  • Если chkdsk зависает или не может завершиться — это признак серьёзных проблем с диском

4.2. SFC и DISM — проверка системных файлов

Это не про файловую систему напрямую, но часто нужно после сбоев:

:: Проверка и восстановление системных файлов
sfc /scannow

:: Если SFC не справляется — сначала DISM
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

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

:: Загрузиться с установочного USB → «Восстановление системы» → Командная строка

:: Пересоздание BCD
bootrec /fixmbr
bootrec /fixboot
bootrec /scanbcd
bootrec /rebuildbcd

:: Если не помогает — пересоздать хранилище загрузки
bcdboot C:\Windows /s S: /f UEFI   :: для UEFI
:: или
bcdboot C:\Windows /s S: /f BIOS    :: для Legacy

4.4. Восстановление NTFS-структур

:: Проверка и восстановление метаданных NTFS
chkdsk C: /f /r

:: Если NTFS повреждена серьёзно (MFT, USN journal)
:: Использовать специализированные утилиты:
:: - R-Studio
:: - UFS Explorer
:: - DMDE
:: - GetDataBack for NTFS

Если том виден как RAW:

Это означает, что Windows не распознаёт файловую систему. Не форматируйте!

Попробуйте:

  1. chkdsk — часто не работает на RAW
  2. TestDisk (см. ниже) — может восстановить загрузочный сектор NTFS
  3. R-Studio / UFS Explorer — сканирование и извлечение данных

Часть 5. Восстановление удалённых файлов и потерянных разделов

5.1. TestDisk — восстановление разделов и загрузочных секторов

sudo apt install testdisk
sudo testdisk /dev/sda

Основные возможности:

  • Восстановление удалённых разделов
  • Восстановление загрузочного сектора FAT/NTFS
  • Исправление таблицы разделов MBR/GPT
  • Восстановление загрузчика

Типичный сценарий:

  1. Запустить → выбрать диск
  2. Выбрать тип таблицы разделов (обычно определяется автоматически)
  3. AnalyseQuick Search → если разделы найдены, можно перезаписать таблицу
  4. Deeper Search если Quick Search не нашёл
  5. Для восстановления загрузочного сектора NTFS: выбрать раздел → AdvancedBootRebuild BS

5.2. PhotoRec — восстановление файлов по сигнатурам

sudo photorec /dev/sdb1
  • Работает поверх файловой системы, ищет файлы по заголовкам
  • Не сохраняет имена файлов и структуру каталогов
  • Поддерживает сотни форматов
  • Указывайте для сохранения другой диск, не тот, с которого восстанавливаете!

5.3. Другие утилиты восстановления

Утилита Платформа Особенности
R-Studio Win/Mac/Linux Профессиональный уровень, RAID, сетевое восстановление
UFS Explorer Win/Mac/Linux Поддержка множества ФС, включая APFS, ZFS
DMDE Win/Linux Мощный, есть бесплатная версия (до 4000 файлов)
Recuva Windows Простой, для базовых случаев
disk drill Win/Mac GUI, удобный, есть бесплатная версия
Scalpel / Foremost Linux Восстановление по сигнатурам из консоли
Sleuth Kit Linux Форензика, анализ файловых систем



5.4. Важные правила при восстановлении удалённых файлов

  1. Немедленно прекратите запись на диск/раздел
  2. Не устанавливайте программы восстановления на тот же диск
  3. Сохраняйте восстановленные файлы на другой носитель
  4. Чем меньше времени прошло с удаления, тем выше шансы
  5. Для SSD шансы значительно ниже из-за TRIM

Часть 6. Специфические сценарии

6.1. Повреждена таблица разделов

Linux:

# Восстановление GPT (если повреждён основной header, но цел backup)
sudo gdisk /dev/sda
# В gdisk: r (recovery) → d (rebuild MBR from GPT) → w (write)
# Или: r → b (restore backup GPT header)

# Восстановление MBR
sudo testdisk /dev/sda

Windows:

:: Загрузиться с установочного диска
diskpart
list disk
select disk 0
:: Для UEFI:
:: Пересоздать EFI раздел и BCD (см. 4.3)

6.2. RAID-массив

# Linux mdadm
sudo mdadm --examine /dev/sdb1          # посмотреть метаданные
sudo mdadm --assemble --scan            # попробовать собрать
sudo mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1

# Проверка ФС после сборки
sudo fsck /dev/md0

Для программных RAID в Windows (Storage Spaces) — использовать PowerShell:

Get-StoragePool
Get-VirtualDisk
Repair-VirtualDisk -FriendlyName "MyPool"

6.3. LVM (Linux)

sudo pvscan
sudo vgscan
sudo vgchange -ay          # активировать тома
sudo lvscan
sudo fsck /dev/vg_name/lv_name
sudo mount /dev/vg_name/lv_name /mnt

Если LVM-метаданные повреждены:

sudo vgcfgrestore -f /etc/lvm/backup/vg_name vg_name
sudo pvscan --cache
sudo vgchange -ay

6.4. Повреждение файловой системы из-за сбоя питания

  1. Не выключать и не перезагружать систему многократно
  2. Загрузиться с Live USB
  3. Выполнить fsck / xfs_repair / chkdsk в зависимости от ФС
  4. Проверить SMART — внезапные сбои питания могут повредить и аппаратную часть
  5. После восстановления включить журналирование (если отключено) и настроить UPS

Часть 7. Профилактика

7.1. Резервное копирование

  • Правило 3-2-1: 3 копии данных, на 2 разных носителях, 1 копия вне площадки/в облаке
  • Инструменты: rsync, borgbackup, restic, Veeam, Macrium Reflect, Duplicati

7.2. Мониторинг дисков

- Настроить автоматический SMART-мониторинг:

# smartd (Linux)
sudo systemctl enable smartd
# Конфигурация в /etc/smartd.conf
  • Windows: CrystalDiskInfo с автозапуском, или smartctl по расписанию

7.3. Файловые системы с защитой от повреждений

  • Btrfs / ZFS — контрольные суммы, самовосстановление (scrub), снапшоты
  • ReFS (Windows Server) — устойчивость к повреждениям, integrity streams

7.4. Общие рекомендации

  • Не выдёргивайте накопители без безопасного извлечения
  • Используйте ИБП
  • Проверяйте кабели SATA/SAS при росте CRC-ошибок
  • Обновляйте прошивки SSD/NVMe
  • Не заполняйте SSD под 100% — это ускоряет деградацию

- Включайте TRIM:

# Linux
sudo systemctl enable fstrim.timer

# Windows — обычно включено по умолчанию
fsutil behavior query DisableDeleteNotify

Часть 8. Алгоритм действий: краткая шпаргалка

1. Диск определяется?
   ├─ Нет  → Проверить кабели, питание, SMART. Если диск мёртв → лаборатория
   └─ Да   → Шаг 2

2. Проверить SMART
   ├─ Плохой (растут Reallocated, Pending) → СРОЧНО делать образ (ddrescue)
   └─ Нормальный → Шаг 3

3. Сделать образ (если данные важны)
   └─ ddrescue / dcfldd → образ на здоровый диск

4. Определить тип ФС
   └─ lsblk -f / blkid / Управление дисками

5. Проверить/восстановить ФС
   ├─ ext2/3/4 → fsck (раздел размонтирован!)
   ├─ XFS      → xfs_repair
   ├─ Btrfs    → btrfs check / scrub / restore
   ├─ NTFS     → chkdsk /f /r (или R-Studio, DMDE)
   ├─ FAT/exFAT→ fsck.fat / chkdsk / R-Studio
   └─ Не определяется → testdisk, photorec

6. Если не помогло
   ├─ testdisk — восстановить разделы / загрузочный сектор
   ├─ photorec / R-Studio / UFS Explorer — извлечь данные по сигнатурам
   └─ Обратиться к специалистам

7. После восстановления
   ├─ Проверить целостность данных
   ├─ Настроить резервное копирование
   └─ Выявить и устранить причину сбоя



Вывод:

В 90% случаев программные повреждения файловой системы успешно лечатся встроенными утилитами (fsck, xfs_repair, chkdsk) при условии, что сам диск физически здоров. В остальных случаях главное — не навредить: сначала образ, потом ремонт. А лучшая защита от потери данных — регулярные резервные копии и мониторинг состояния дисков.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (спец по ЗИ)(· · · — — — · · ·)

Комментарии

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