Введение / Зачем это нужно
Когда жёсткий диск начинает «сыпаться», каждая минута на счету. Своевременное реагирование позволяет сохранить важные данные, предотвратить полную потерю информации и отложить дорогостоящий обмен носителя. В этом руководстве вы получите практические команды и инструменты, которые помогут выявить неисправность, скопировать повреждённые сектора и восстановить файлы без обращения к специалистам.
Требования / Подготовка
- Права суперпользователя (
sudo) на системе. - Утилита SMART (
smartmontools) для диагностики состояния диска.sudo apt install smartmontools # Debian/Ubuntu sudo dnf install smartmontools # Fedora - TestDisk (включает Photorec) для восстановления удалённых разделов.
sudo apt install testdisk # Debian/Ubuntu sudo dnf install testdisk # Fedora - GNU Core Utilities (команда
dd) и e2fsck/fsckдля ремонта FS. - Подготовьте надёжный внешний носитель или свободное место на сервере для сохранения образа диска.
Шаг 1: Выявить признаки неисправности
Сначала определите, что диск действительно начинает отказывать.
sudo smartctl -a /dev/sdX
Обратите внимание на:
- Overall Health — «Предупреждение» или «Проверка неисправности».
- **Self-assessment» — количество проведённых тестов и ошибок.
- **Current Pending Sectors» — сектора, которые система больше не может прочитать.
Если SMART показывает предсказуемую ошибку или вы видите сообщения типа Ошибка чтения диска, действуйте быстро — данные могут быть утрачены в любую секунду.
Шаг 2: Сделать точную копию диска
Копирование диска позволяет работать с образом, не рискуя дальнейшей потерей данных.
# Простое байт-в точное копирование
sudo dd if=/dev/sdX of=disk.img bs=4M status=progress
if=/dev/sdX— исходный диск.of=disk.img— файл-образ.bs=4Mускоряет процесс при больших объёмах.status=progressпоказывает текущий прогресс.
Для более надёжного копирования используйте ddrescue:
sudo ddrescue /dev/sdX disk.img --skip=0 --max-file-size=100G
Создайте этот образ на другом носителе — он станет вашей «страховкой» перед любыми операциями по восстановлению.
Шаг 3: Восстановить удалённые файлы с помощью TestDisk
TestDisk восстанавливает удалённые разделы и удалённые файлы с помощью Photorec.
sudo testdisk /dev/sdX
Интерактивный процесс:
- Выберите подключённый диск (
/dev/sdX). - Выберите Анализировать → Дополнительно → Глубокий анализ.
- Выберите тип файлов для восстановления (например,
Все файлы).
Когда анализ завершится, программа предложит сохранить найденные файлы в указанную папку. Укажите безопасное место, например /home/user/recovered/.
Шаг 4: Отремонтировать файловую систему
После извлечения данных вам, возможно, потребуется отремонтировать файловую систему, чтобы диск снова стал доступен.
# Для ext4
sudo e2fsck -f /dev/sdX
# Для других типов FS
sudo fsck -f /dev/sdX
Флаг -f принудительно запускает проверку, игнорируя предыдущие ошибки. После завершения диск можно смонтировать повторно (mount /dev/sdX /mnt).
Шаг 5: Проверить результат
Теперь убедитесь, что восстановленные данные неповреждены и доступны.
# Проверка образа
ls -lh disk.img
# Монтирование и просмотр файлов
sudo mount /dev/sdX /mnt
ls /mnt
sudo umount /mnt
Откройте несколько важных файлов (например, документы, базы данных) и убедитесь, что они открываются корректно. Если что-то повреждено, рассмотрите возможность восстановления из более раннего снимка или использования дополнительных инструментов, таких как photorec с более глубокими настройками.
Проверка результата
- Все необходимые файлы найдены и сохранены в указанном месте.
- Диск работает без ошибок SMART после ремонта (
smartctl -a /dev/sdX). - Файловая система смонтирована корректно (
df -h /mntпоказывает свободное место).
Если что-то из вышеперечисленного не выполнено, вернитесь к соответствующему шагу: возможно, потребуется повторить копирование или применить более глубокий анализ с помощью Photorec.
Возможные проблемы
- Диск не определяется системой – проверьте кабели, переключатель SATA, убедитесь, что диск не заблокирован BIOS. Используйте
lsblkилиfdisk -lдля проверки. - TestDisk не находит разделы – запустите
sudo testdisk /dev/sdXс параметром--deep, это улучшит поиск. - fsck зацикливается – если ремонт занимает слишком много времени, прервите процесс (
Ctrl+C) и попробуйте отремонтировать через безопасный режим или с использованиемe2fsck -y. - Образ диска повреждён – создайте новый образ с использованием
ddrescueс параметром--ignore-existingили--max-retries=5, чтобы избежать повторных ошибок чтения.
Если проблема сохраняется, возможно, носитель физически повреждён — лучше обратиться в специализированный сервис.