Вопрос или проблема
У меня есть внешний жесткий диск, отформатированный в формате Ext4, подключенный к серверу Raspberry Pi. В последнее время сервер часто зависает, и в результате жесткий диск поврежден. Когда я подключаю его к своему компьютеру и запускаю sudo fsck /dev/sda
, я получаю следующий вывод
fsck from util-linux 2.40.2
e2fsck 1.47.0 (5-фев-2023)
ext2fs_open2: Неверный магический номер в суперблоке
fsck.ext2: Суперблок недействителен, пытаемся использовать резервные блоки...
fsck.ext2: Неверный магический номер в суперблоке при попытке открыть /dev/sda
Суперблок не удалось прочитать или он не описывает действительную файловую систему ext2/ext3/ext4. Если устройство действительно действительное и оно действительно содержит файловую систему ext2/ext3/ext4 (а не swap или ufs или что-то еще), то суперблок поврежден, и вы можете попробовать запустить e2fsck с альтернативным суперблоком:
e2fsck -b 8193 <устройство>
или
e2fsck -b 32768 <устройство>
Найдена таблица разделов gpt в /dev/sda
Я искал информацию в интернете и нашел этот ответ https://unix.stackexchange.com/a/628354, объясняющий, как найти резервные суперблоки. Однако, когда я запускаю mke2fs
, я не получаю ясного вывода, как ожидал, ни на устройстве (sda), ни на разделах (sda1 или sda2), и я не хочу продолжать, если не знаю, что делаю. Я боюсь, что сломаю что-то. Вот выводы:
sudo mke2fs -n /dev/sda
mke2fs 1.47.0 (5-фев-2023)
Найдена таблица разделов gpt в /dev/sda
Продолжить все равно? (д,Н)
sudo mke2fs -n /dev/sda2
mke2fs 1.47.0 (5-фев-2023)
/dev/sda2 содержит файловую систему ext4 с меткой 'data'
последний монтирован на /srv/dev-disk-by-uuid-19f0b495-7b9d-4f67-ae8e-9f8933ff19eb в субботу, 2 ноября 2024 года, 13:36:52
Продолжить все равно? (д,Н)
sudo mke2fs -n /dev/sda1
mke2fs 1.47.0 (5-фев-2023)
/dev/sda1 выравнивание смещено на 3072 байта.
Это может привести к очень плохой производительности, рекомендуется (пере)разделение.
/dev/sda1 содержит файловую систему vfat с меткой 'EFI'
Продолжить все равно? (д,Н)
Это ясно дает мне понять, что проблема на разделе sda1, но я все еще не уверен, чтобы продолжить с mke2fs
. То, как он спрашивает Продолжить все равно?
, заставляет меня беспокоиться о том, что я что-то сломаю. Более того, я не знаю, почему жесткий диск имеет 2 раздела и что такое раздел EFI sda1 (это не системный диск, а просто внешний диск для данных, хотя на нем установлены контейнеры docker).
Правильна ли команда mke2fs -n
для меня здесь? Если да, то должен ли я запустить ее на sda или sda1? Должен ли я повторить то, что я сделал, и выбрать Продолжить все равно?
Ответ или решение
Восстановление данных с поврежденного внешнего HDD, отформатированного в Ext4
Ваша ситуация с внешним HDD, отформатированным в файловой системе Ext4 и подключенным к Raspberry Pi серверу, требует внимательного подхода к восстановлению данных. Ошибка, о которой вы упоминаете, указывает на повреждение суперблока, который является критически важной частью файловой системы. Однако есть возможность использования резервных суперблоков для восстановления доступа к данным.
Понимание суперблоков
Суперблок — это структура данных, которая хранит важную информацию о файловой системе, включая ее структуру, размеры и состояние. Если основной суперблок поврежден, системы do предоставляют резервные суперблоки для восстановления доступа к данным. Эти резервные суперблоки размещены в определенных местах на диске.
Шаги по восстановлению
-
Использование
mke2fs
для получения резервных суперблоков:
На основе ваших команд сmke2fs -n
, вы находитесь на правильном пути. Команда-n
позволяет узнать, где находятся резервные суперблоки, не внося при этом изменений в файловую систему.- Примечание: Вывод, который показывает, что sda1 содержит файловую систему vfat и не является частью Ext4, говорит о том, что с этим разделом ничего делать не нужно. Основное внимание должно быть уделено sda2, где, вероятно, и находится ваша поврежденная Ext4 файловая система.
-
Использование команды
e2fsck
:
Далее вам следует использоватьe2fsck
для проверки вашего разделаsda2
с указанием резервных суперблоков, полученных изmke2fs
.Например, после запуска
mke2fs -n /dev/sda2
, вы получите информацию о расположении резервных суперблоков (например, 8193 и 32768). Вы можете использовать их следующим образом:sudo e2fsck -b 32768 /dev/sda2
или
sudo e2fsck -b 8193 /dev/sda2
-
Проверка файловой системы:
После этогоe2fsck
начнет проверку файловой системы, используя указанный резервный суперблок. Это может занять некоторое время в зависимости от объема данных на диске. В процессе проверки могут быть предложены действия для исправления ошибок. Подтверждайте их, если уверены, что это не повредит вашим данным. -
Восстановление данных:
В случае успешного завершения командыe2fsck
, вы должны получить доступ к своим данным. Рекомендуется сделать резервную копию важных данных на другом носителе, если это возможно. -
Предостережение и мониторинг:
Обязательно следите за состоянием диска в будущем. Возможно, стоит протестировать диск с помощью SMART (например, с помощью командыsmartctl
), чтобы удостовериться, что проблемы с жестким диском не повторятся.
Заключение
Проблемы с файловой системой могут быть стрессовыми, но с правильным подходом и процедурами, вы сможете восстановить доступ к вашим данным. Используйте резервные суперблоки и будьте осторожны в процессе, особенно если информация на диске важна. Если вы не уверены на каком-то этапе, возможно, стоит обратиться к профессионалам для помощи в восстановлении данных.