Короче. У меня проблемы с доступом к файлам на моем жестком диске. Я также предполагаю, что это не аппаратная проблема (это больше на "программном уровне"). Я хотел бы знать, есть ли способы (команды Linux, инструменты Linux), которые могут помочь контролировать жесткий диск и обнаружить проблему. Вот более подробное описание произошедшего.

У меня есть жесткий диск Verbatim с большим количеством файлов. Сегодня я попытался использовать его под Ubuntu. В браузере файлов я увидел папку Verbatim и попытался ее открыть. В результате я увидел часы, указывающие на то, что процесс запущен и требует больше времени. Я взвешивался в течение одной минуты или около того, увидел ту же картинку (все еще работает, папка не открыта) и попытался сделать то же самое в терминале. Я использовал cd для входа в папку Verbatim, затем, находясь в папке, я выполняю ls -ltr . В результате я ничего не получил. Я пытался отменить команду с помощью Ctrl C , она не работала, поэтому я просто закрыл терминал. Затем на панели я попытался eject или unmount устройство (я не помню, как оно называется), и Ubuntu написала мне, что устройство занято выполнением команды ls (или что-то в этом роде). Я все равно отключил устройство.

Затем я попытался получить доступ к файлам на жестком диске, используя другой компьютер, работающий под Windows. Windows распознала устройство, но сообщила, что обнаружена ошибка, и рекомендуется выполнить сканирование (однако была возможность показывать файлы без сканирования). Я решил сделать сканирование. Это заняло слишком много времени, не показывая никакого прогресса, и я отменил сканирование.

Затем я отключил устройство и снова вставил. Был еще вариант сканирования. Сканирование может выполняться с двумя вариантами: (1) обнаруживать ошибки и исправлять их автоматически и (2) обнаруживать отсутствующие файлы и пытаться их восстановить. Первый вариант был отмечен по умолчанию (предыдущее (отмененное) сканирование я выполняю таким образом). На этот раз я также проверил второй вариант (так что оба варианта были проверены) и снова начал сканирование. Снова это было слишком медленно, не показывая никакого прогресса, поэтому я снова отменил его.

Затем я запустил сканирование с первой проверенной опцией (обнаружил ошибки и исправил их автоматически) и дал достаточно времени. Примерно через 20-30 минут все было готово. В результате я получил сообщение о том, что некоторые из папок не были доступны и были удалены навсегда. После этого я смог использовать устройство (введите папки и подпапки и посмотрите файлы).

Затем я попробовал устройство под Ubuntu снова. Ubuntu потребовалось около минуты, чтобы распознать устройство (это слишком долго). Тогда у меня была такая же проблема (я не мог видеть папки, расположенные на жестком диске). Это означает, что я вижу папку на жестком диске, я могу зайти в эту папку, но я не смог увидеть, какие файлы там.

Затем я подключил устройство к машине с Windows, и оно не смогло распознать устройство (оно его вообще не видит). Я предполагаю, что на Ubuntu я сделал unmount (или что-то в этом роде), и в этом я заблокировал жесткий диск (чтобы он не был виден на машине с Windows). Однако я не уверен в этом предположении. Возможно устройство как-то сломано.

Может кто-нибудь помочь мне с этим, потому что на устройстве у меня есть все мои семейные фотографии за последние 7 лет.

4 ответа4

1

Во-первых, вы должны определить тип файловой системы, используемой на этом диске. Это скорее всего FAT32. Вы можете сделать это с помощью команды fdisk:

fdisk -l

Это вернет список устройств, и в каждой строке будет "Тип", который покажет файловую систему:

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 219353087 219351040 104.6G 83 Linux
/dev/sda2       219355134 234440703  15085570   7.2G  5 Extended
/dev/sda5       219355136 234440703  15085568   7.2G 82 Linux swap / Solaris

Если у вас есть другой доступный диск, который равен или больше, чем диск, на котором произошел сбой, самый простой способ сделать попытку восстановления в моем опыте - использовать инструмент под названием dd-rescue. Более подробную информацию можно найти здесь: dd-rescue

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

Вот пример того, как вы можете сделать это вручную:

dd bs=4k if=/dev/sda of=/path/to/backup.img conv=noerror,sync 

В приведенной выше команде /dev /sda - поврежденный диск, а backup.img - это файл, который будет содержать содержимое всего диска в качестве резервной копии. Более подробную информацию об этой команде можно найти здесь:

восстановления-данных-от-а-мертвой на жестком диске с помощью-дд

Возможно, лучше использовать аргумент меньшего размера блока, чтобы вы могли потерять меньше данных при возникновении ошибок. например, "bs = 1024", однако это приведет к тому, что операция займет еще больше времени.

Очень трудно определить, действительно ли происходит сбой жесткого диска, если на вашем жестком диске не предусмотрены такие функции, как SMART. Вполне возможно, что ваш диск не выходит из строя и ваша проблема связана с повреждением файловой системы.

К сожалению, я не знаю хорошего способа реально определить, насколько поврежден жесткий диск, кроме таких функций, как SMART, который обычно контролируется BIOS.

После того, как вы определили тип файловой системы, которую вы используете на этом диске, вы можете попытаться восстановить файловую систему, как вы это делали ранее в Windows в Linux, с помощью команды fsck: (убедитесь, что вы используете fsck, который соответствует вашему конкретному типу файловой системы.

fsck.vfat /dev/sdb1

Следует отметить, что Linux не всегда хорошо восстанавливает ntfs или толстые разделы, и поэтому не следует пытаться делать это, пока вы не проверили свою резервную копию. На самом деле, я бы порекомендовал вместо этого выполнить попытку восстановления образа резервной копии. Инструкции по выполнению fsck для файла резервной копии можно найти здесь: mount-a-raw-partition-file-made-with-dd

В зависимости от того, как была смонтирована файловая система, команда ls может действительно повредить файловую систему, если она меняет файл, или метаданные каталога; в частности, путем обновления времени доступа. Отключение диска во время его записи приведет к ошибкам в файловой системе, особенно в файловых системах, которые не имеют хороших функций ведения журналов (например, FAT32). Эти ошибки обычно можно исправить с помощью fsck.

Мне очень жаль, что вы находитесь в таком опасном положении, и я надеюсь, что вы сможете восстановить эти файлы.

1

Вернитесь к своей системе Linux.

Откройте корневой терминал и введите tail -f /var/log/kern.log , чтобы развернуть это окно.

Подключите свой жесткий диск.

Если у вас возникла аппаратная проблема с диском, он появится здесь. Если это проблема с USB-соединением, вы получите сообщение "Невозможно перечислить устройство" или подобное. Если с диском возникла проблема с носителем, вы получите сообщения о неисправных блоках.

Если у вас есть ошибка подключения USB, возможно, проблема в кабеле USB, разъеме или адаптере USB-SATA, который находится в корпусе жесткого диска (сломанные контакты, разъем падает и т.д.)

Предполагая, что ваша модель внешнего жесткого диска не имеет функций шифрования на плате USB, вы можете извлечь диск из корпуса, напрямую подключить его к ПК и работать с ним как с любым внутренним диском. Если у него есть шифрование - вам действительно нужно, чтобы эта плата работала, и вы должны попытаться найти кого-то, кто хорошо разбирается в электронике / пайке, чтобы заменить USB-разъем или припаять кабель непосредственно к контактным площадкам на плате (которые, мы надеемся, не сорваны). ). Жесткий диск все еще будет работать в другой системе, но вы не сможете получить свои данные.

Пример платы USB, которая будет внутри корпуса:

После того, как вы устранили любую проблему с оборудованием, вы можете попробовать запустить Testdisk, чтобы посмотреть, что он может восстановить. Вы можете установить его из apt-get в корневом терминале под Ubuntu или загрузить и запустить версию Windows. Подготовьте другой диск для копирования файлов и резервного копирования данных в следующий раз.

Удачи.

0

Невозможно восстановить неисправный жесткий диск без риска потери файлов. В зависимости от того, сколько стоят данные на диске, вам лучше всего подойдет профессиональная служба восстановления данных. Я считаю, что эти услуги начинаются примерно с 500 долларов и растут, иногда резко, в зависимости от того, сколько усилий требуется для восстановления данных. Даже самая лучшая служба восстановления данных не сможет восстановить все ваши данные, но у них гораздо больше шансов на это, чем все, что вы могли бы сделать самостоятельно.

Я бы порекомендовал вам изучить Seagate Recovery Services для получения дополнительной информации.

Я уверен, что это не то, что вы хотите услышать, но профессиональное восстановление данных может открыть накопитель и выполнить другие процедуры, которые просто невозможно выполнить самостоятельно. Восстановление данных требует опыта, специального программного обеспечения и инструментов, жестких дисков и должно осуществляться в чистом помещении. Это не возможно сделать дома.

0

Вы пытались выполнить полную проверку диска с Windows вручную?

Если вы откроете cmd и введете chkdsk /?, Он предложит все возможные варианты.

Для NTFS-раздела вы можете выполнить команду chkdsk /F /R /B /X, которая выполняет наиболее полную проверку. Для FAT32, опустите /B.

Имейте в виду, что это занимает много времени в зависимости от вашего жесткого диска. Но это может быть возможность спасти некоторые данные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .