Làm cách nào để sửa lỗi Nhập / Xuất bằng dd?


13

Xin chào. Tôi đang cố gắng sửa hệ thống Windows 7 của mình với một ổ cứng bị hỏng, nhưng nó vẫn đang chạy.

Tôi đang cố gắng sao chép tất cả dữ liệu vào một ổ đĩa mới để cài đặt lại Windows 7. Ổ đĩa có tên là SQSERVICE.

Tôi hoàn toàn không thể sao chép - xem bên dưới:

$ 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

Làm cách nào để khắc phục "lỗi đầu vào / đầu ra" này?


1
@Gertvddijk nhờ sửa lỗi chính tả của tôi, tôi đến từ hà lan vẫn học tốt tiếng Anh.
Erazer

Câu trả lời:


15

Bạn tự nói: đĩa của bạn bị hỏng. Bạn có thể thử ddrescue, nó có thể làm việc xung quanh con đường bị hỏng. Hãy coi chừng, rằng bạn sẽ mất dữ liệu.

Khôi phục từ bản sao lưu sẽ dễ dàng hơn :)

Cách sử dụng đúng ddrescuenhư sau:

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

hoặc nếu bạn muốn chuyển stdoutsang công cụ giám sát progess:

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

vâng tôi đã nói vậy nhưng việc khôi phục từ bản sao lưu trên ổ đĩa đó .. và tôi ổ đĩa này chỉ có vấn đề về ngành, làm thế nào tôi có thể sử dụng lệnh đó? tôi chỉ là người dùng linux mới ..
Erazer

2
Vì vậy, bản sao lưu của bạn nằm trên cùng ổ đĩa với ổ đĩa bạn đang xử lý?! lởn vởn
Dennis Kaarsemaker

1
cũng cùng ổ đĩa có nhưng không trên cùng một phân vùng. tôi cũng hơi ngu ngốc: '(sao lưu nó không quan trọng chút nào
Erazer

6

Tôi không biết điều này có hữu ích với bất kỳ ai không, nhưng nếu tôi tìm thấy trang này trong tìm kiếm của mình, có thể nó sẽ giúp được ai đó (ngoài OP, người hy vọng giải quyết vấn đề của anh ta vài tháng trước).

ddresTHER có thể là lựa chọn tốt nhất trong trường hợp này, để phục hồi dữ liệu (khác với "sửa" lỗi / đĩa như câu hỏi ban đầu đã được diễn đạt), như Dennis đề xuất.

Ngoài ra, bạn cũng có thể gắn đĩa và sao chép các tập tin. Đây là NHIỀU nhanh hơn nếu có nhiều không gian trống, hoặc nếu bạn chỉ muốn một số tệp cụ thể. CẢNH BÁO: được thực hiện từ máy Linux, điều này làm mất tất cả các thuộc tính mở rộng, chẳng hạn như quyền tệp, do đó, là một lựa chọn rất tệ cho các tệp hệ điều hành, nhưng chấp nhận được đối với các tệp của người dùng. Làm điều đó từ các cửa sổ sẽ bảo vệ chúng, nhưng có thể không xử lý các lỗi một cách trơn tru, có thể làm cho nó đi rất chậm.

Một lựa chọn khác để thực sự "sửa chữa" các lĩnh vực, không chỉ bỏ qua chúng, là phân bổ lại các khu vực xấu. Nếu bạn biết số khu vực (trong trường hợp của bạn, 11233976 giả sử kích thước khối của bạn trong dd và kích thước khu vực là 512), chỉ cần chạy mã này và chạy lại cho mỗi khu vực xấu mới mà bạn tìm thấy:

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

CẢNH BÁO: Điều này sẽ phá hủy dữ liệu trên khu vực đó. Vì vậy, hãy chắc chắn rằng bạn thực sự biết những gì bạn đang làm. Nếu khu vực này không thể được đọc, ghi đè nó sẽ dừng các lỗi, nhưng điều đó có nghĩa là khu vực đó sẽ chứa rác, có thể làm hỏng một tệp quan trọng.

Xem phần này để biết thêm thông tin: http://www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sector/

Và nếu đĩa của bạn có một số lượng lớn (hàng nghìn có lẽ) các thành phần xấu (được xem là Current_Pending_Sector, Offline_Uncncable hoặc Reallocated_Sector_Ct), hoặc nếu nó mới và vẫn được bảo hành, hoặc nếu số lượng luôn tăng theo thời gian, thì bạn nên thay thế đĩa nào. Đừng để họ nói với bạn rằng việc tái phân bổ sửa chữa đĩa. Nó chỉ sửa chữa các khu vực xấu đã biết và tiêu thụ các khu vực dành riêng cho việc tái phân bổ. Nếu đĩa có xu hướng phát triển nhiều thành phần xấu hơn, vấn đề sẽ tiếp tục quay trở lại, mỗi lần làm hỏng một số dữ liệu.


0

Trong khi một số phần của đĩa bị hỏng, bạn vẫn có thể sao chép các phần tốt của đĩa.

$ dd --help
...
 noerror   continue after read errors
...
sudo dd if=/dev/sdc1 of=/dev/sda1 conv=noerror
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.