Подробный гайд по диагностике и восстановлению файловых систем от проверки, создания до ремонта
Главное правило:
Перед любыми действиями убедитесь, что есть резервная копия важных данных. Если её нет и данные критичны — первым шагом делайте посекторный образ диска, а уже потом экспериментируйте. При подозрении на аппаратную неисправность диска (щелчки, диск не определяется, 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) diskpart→list volumefsutil 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 не распознаёт файловую систему. Не форматируйте!
Попробуйте:
chkdsk— часто не работает на RAW- TestDisk (см. ниже) — может восстановить загрузочный сектор NTFS
- R-Studio / UFS Explorer — сканирование и извлечение данных
Часть 5. Восстановление удалённых файлов и потерянных разделов
5.1. TestDisk — восстановление разделов и загрузочных секторов
sudo apt install testdisk
sudo testdisk /dev/sda
Основные возможности:
- Восстановление удалённых разделов
- Восстановление загрузочного сектора FAT/NTFS
- Исправление таблицы разделов MBR/GPT
- Восстановление загрузчика
Типичный сценарий:
- Запустить → выбрать диск
- Выбрать тип таблицы разделов (обычно определяется автоматически)
Analyse→Quick Search→ если разделы найдены, можно перезаписать таблицуDeeper Searchесли Quick Search не нашёл- Для восстановления загрузочного сектора NTFS: выбрать раздел →
Advanced→Boot→Rebuild 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. Важные правила при восстановлении удалённых файлов
- Немедленно прекратите запись на диск/раздел
- Не устанавливайте программы восстановления на тот же диск
- Сохраняйте восстановленные файлы на другой носитель
- Чем меньше времени прошло с удаления, тем выше шансы
- Для 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. Повреждение файловой системы из-за сбоя питания
- Не выключать и не перезагружать систему многократно
- Загрузиться с Live USB
- Выполнить
fsck/xfs_repair/chkdskв зависимости от ФС - Проверить SMART — внезапные сбои питания могут повредить и аппаратную часть
- После восстановления включить журналирование (если отключено) и настроить 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) при условии, что сам диск физически здоров. В остальных случаях главное — не навредить: сначала образ, потом ремонт. А лучшая защита от потери данных — регулярные резервные копии и мониторинг состояния дисков.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.