Як виправити помилку введення / виводу за допомогою dd?


14

Привіт, я намагаюся виправити свою систему Windows 7 зі зламаним жорстким диском, але він все ще працює.

Я намагаюся скопіювати всі дані на новий диск, щоб перевстановити Windows 7. Диск під назвою SQSERVICE.

Я взагалі не можу скопіювати - див. Нижче:

$ sudo dd if=/dev/sdc1 of=/dev/sda1
dd: reading `/dev/sdc1': Input/output error
11233976+0 records in
11233976+0 records out
5751795712 bytes (5.8 GB) copied, 187.731 s, 30.6 MB/s

Як виправити цю "помилку введення / виводу"?


1
@Gertvddijk завдяки вирішенню моєї орфографічної проблеми, я з Нідерландів все ще добре вивчаю англійську мову.
Erazer

Відповіді:


16

Ви самі це сказали: ваш диск зламаний. Ви можете спробувати ddrescue, можливо, це зможе обійти розбитий шлях. Але будьте обережні, що ви втратите дані.

Відновити резервну копію буде простіше :)

Правильне використання ddrescue:

sudo apt-get install gddrescue
sudo ddrescue /dev/sdc1 /dev/sda1

або якщо ви хочете передати stdoutінструмент моніторингу пророків:

sudo ddrescue /dev/sdc1 /dev/sda1 | pv

так, я сказав, що, але відновлення з резервного копіювання - на цьому диску .. І у цього диска є лише проблема сектора, ну як я можу використовувати цю команду? я просто новачок користувач Linux ..
Erazer

2
Отже, ваша резервна копія знаходиться на тому ж диску, що і накопичувач, який ви накопичуєте ?! переляк
Dennis Kaarsemaker

1
добре ж диск, але не на одній частині. ну я трохи дурний: '(резервне копіювання його зовсім не
безглузде

6

Я не знаю, чи це комусь корисно, але якщо я знайшов цю сторінку в пошуку, можливо, це допоможе комусь (крім ОП, які, сподіваємось, вирішили його проблему місяці тому).

У цьому випадку ddrescue може бути найкращим вибором для відновлення даних (відмінне від «виправлення» помилки / диска, як було сформульовано оригінальне запитання), як запропонував Денніс.

Можна також встановити диск і скопіювати файли. Це набагато швидше, якщо багато порожнього простору або якщо ви хочете лише певні файли. ПОПЕРЕДЖЕННЯ: зроблено з машини Linux, це втрачає всі розширені атрибути, такі як дозволи на файли, тому це дуже поганий вибір для файлів ОС, але допустимий для файлів користувачів. Якщо це робити з Windows, це повинно зберігати ці проблеми, але, можливо, не обробляє помилки плавно, можливо, робить це дуже повільним.

Інший варіант фактично "виправити" сектори, а не просто їх обійти, - перерозподілити погані сектори. Якщо ви знаєте номер сектору (у вашому випадку 11233976 припускає розмір блоку в dd, а розмір сектора - 512), просто запустіть це та запустіть ще раз для кожного нового поганого сектора, який ви знайдете:

hdparm –write-sector 11233976 –yes-i-know-what-i-am-doing /dev/sdb

Попередження: Це знищить дані про цей сектор. Тож будьте впевнені, що ви справді знаєте, що робите. Якщо цей сектор не вдається прочитати, його перезапис зупинить помилки, але це означає, що сектор містить сміття, можливо, пошкодить важливий файл.

Дивіться це для отримання додаткової інформації: http://www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sectors/

І якщо на вашому диску є велика кількість (можливо, тисяч) поганих секторів (або видно як Current_Pending_Sector, Offline_Uncorrectable або Reallocated_Sector_Ct), або якщо він новий і все ще є гарантією, або якщо число постійно збільшується з часом, то слід замінити диск все одно. Не дозволяйте їм сказати, що перерозподіл фіксує диск. Він лише фіксує відомі погані сектори та споживає сектори, відведені для перерозподілу. Якщо диск схильний розвивати більше поганих секторів, проблема просто повернеться, щоразу пошкоджуючи деякі дані.


1

Хоча деякі частини диска зламані, ви все ще можете скопіювати хороші частини диска.

$ dd --help
...
 noerror   continue after read errors
...
sudo dd if=/dev/sdc1 of=/dev/sda1 conv=noerror
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.