Từ khu vực xấu đến tập tin bị hỏng của tập tin - đã làm điều đó cho Linux / ext3, tôi có thể làm điều đó cho Windows / NTFS không?


17

Khi kiểm tra SMART trên đĩa báo cáo một khu vực xấu, điều quan trọng là có thể xác định tệp có khu vực xấu - và khôi phục nó từ bản sao lưu. Dưới đây, tôi trình bày cách tôi đã làm điều này cho máy chủ Phần mềm Linux / ext3 của tôi - nhưng có ai biết liệu điều này có thể được thực hiện cho Windows / NTFS không?

Đây là cách tôi đã làm cho Linux / ext3: Trước tiên tôi yêu cầu ổ đĩa thực hiện quét bề mặt phần cứng (dưới mức hệ điều hành, với các mạch SMART trên ổ đĩa):

vserver:~# smartctl -t long /dev/sdc

Tôi đã xem kết quả:

vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       9
...
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%     27679         591363172

Vì vậy, một khu vực đã bị đánh dấu xấu, 9 khu vực được đánh dấu để thay thế từ không gian khu vực "dàn dựng". Quan trọng hơn, địa chỉ khối logic đầu tiên (LBA) không thể đọc được, là 591363172.

Tôi tìm thấy phân vùng (và phần bù bên trong nó) mà số này "đã dịch" thành:

vserver:~# fdisk -lu /dev/sdc
Device Boot      Start         End      Blocks   Id  System
/dev/sdc1           32   976773119   488386544   83  Linux

Phân vùng bắt đầu ở khu vực 32. Vì vậy, khu vực xấu là ...

vserver:~# bc -l
591363172-32+1
591363141

... ở mức bù 591363141 ngành từ đầu phân vùng.

Bây giờ tôi có thể tìm thấy tập tin nào bị "hosed":

vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size:               4096

Kích thước khối của hệ thống tệp EXT3 này là 4096 byte, do đó, bad sector đã phá hủy khối này trong hệ thống tệp:

vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000

Và số khối (73920392) tương ứng vào tệp này:

vserver:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs:  open /dev/sdc1
testb 73920392
debugfs:  testb 73920392
Block 73920392 marked in use
debugfs:  icheck 73920392
Block           Inode number
73920392        18472967
debugfs:  ncheck 18472967
Inode           Pathname
18472967        /path/to/filewithbadsector

Và tôi đã khôi phục tập tin đó từ bản sao lưu của mình.

Có một quy trình tương đương tôi có thể làm theo cho Windows / NTFS không?


FYI: số lượng chờ xử lý hiện tại là 9 có nghĩa là có 9 lĩnh vực xấu, không chỉ một. Tự kiểm tra mở rộng chỉ dừng lại ở lần đầu tiên nó tìm thấy. Trước khi bạn khôi phục từ bản sao lưu, bạn cũng muốn xử lý khu vực xấu bằng cách viết số không cho nó dd. Điều này sẽ buộc ổ đĩa phải sửa chữa hoặc phân bổ lại.
psusi

Đúng, bạn đúng. Sau khi khôi phục, tôi đã thực hiện một kiểm tra SMART khác và thấy rằng tất cả đều ổn - vì vậy việc viết tệp rõ ràng đã viết trên các thành phần xấu 9 + 1 (và khu vực tổ chức cung cấp thay thế). Nhưng còn Windows thì sao? :-)
ttsiodras

Tôi nghĩ rằng tính toán của bạn cho phần bù trong một phân vùng là không chính xác. Số ngành (khác với vật lý, còn gọi là CHS) đều dựa trên số 0, vì khu vực 32 là phân vùng 32-32 == 0, không phải 1.

Thật đáng kinh ngạc khi chưa có ai nói điều này trong một năm + câu hỏi cũ: Khi bạn bắt đầu thấy các thành phần xấu trên ổ đĩa, điều đó có nghĩa là bạn đã có quá nhiều ánh xạ khối xấu tự động bên trong ổ đĩa không thể bù đắp được nữa. Thay vì khôi phục từ bản sao lưu sang ổ đĩa chết, bạn nên thay thế ổ đĩa và khôi phục lại ổ đĩa mới.
voretaq7

Câu trả lời:


7

Tôi biết bạn có một NTFS NTFS và chạy các cửa sổ trên FS đó. Tôi không biết liệu bạn "có thể" khởi động Linux trực tiếp để hoạt động trên trình điều khiển đó hay không.

Nếu bạn có thể khởi động Linux từ CD hoặc USB, bạn có thể sử dụng ntfspross. nhìn vào -

ntfscluster 

ntfsinfo 

Tôi tin rằng ntfscluster cho bạn biết tập tin nào lưu trữ một cụm cụ thể. Tôi hy vọng điều này đặt bạn đi đúng hướng.


Tôi tìm thấy bài đăng diễn đàn này có trình bao bọc tiện ích để thực hiện việc này trên các hệ thống tệp khác nhau và cũng sử dụng ntfscluster. ubuntuforums.org/showthread.php?t=1943721
Lethargy

Có, tính năng ddrutility: Tìm các tệp liên quan đến các thành phần xấu, Cũng có thể sử dụng một tệp có danh sách ngành, có thể chúng ta có thể sử dụng "badblocks -nvs" + "ddrutility"
Tự làm
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.