Sửa phân vùng NTFS bị hỏng mà không có Windows


84

Phân vùng NTFS của tôi đã bị hỏng bằng cách nào đó (đó là một di tích từ những ngày tôi đã cài đặt Windows).

Ảnh chụp màn hình GParted hiển thị các phân vùng khác nhau

Tôi đang đặt đầu ra gỡ lỗi của fdisk và blkid ở đây .

Đồng thời, bất kỳ HĐH nào cũng không thể gắn kết phân vùng gốc của tôi, nằm bên cạnh phân vùng NTFS của tôi. Tôi không chắc chắn nếu điều này có bất cứ điều gì để làm với nó, mặc dù. Tôi gặp lỗi sau khi cố gắn kết phân vùng gốc (sda5)

mount: wrong fs type, bad option, bad superblock on /dev/sda5,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

ubuntu@ubuntu:~$ dmesg | tail
[ 1019.726530] Descriptor sense data with sense descriptors (in hex):
[ 1019.726533]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
[ 1019.726551]         1a 3e ed 92 
[ 1019.726558] sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
[ 1019.726568] sd 0:0:0:0: [sda] CDB: Read(10): 28 00 1a 3e ed 40 00 01 00 00
[ 1019.726584] end_request: I/O error, dev sda, sector 440331666
[ 1019.726602] JBD: Failed to read block at offset 462
[ 1019.726609] ata1: EH complete
[ 1019.726612] JBD: recovery failed
[ 1019.726617] EXT4-fs (sda5): error loading journal

Khi tôi mở gparted (sử dụng CD trực tiếp), tôi nhận được một câu cảm thán bên cạnh ổ đĩa NTFS của mình. Ảnh chụp màn hình GParted hiển thị lỗi

Có cách nào để chạy chkdskmà không cần sử dụng windows?

Cố gắng của tôi để chạy fsckkết quả sau đây:

ubuntu@ubuntu:~$ sudo fsck /dev/sda
fsck from util-linux-ng 2.17.2
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

Cập nhật: Tôi đã có thể sửa phân vùng NTFS chạy chkdsk khỏi Hiren's BootCD, nhưng có vẻ như vấn đề siêu khối vẫn còn.

Cập nhật 2: Đã sửa lỗi superblocke2fsck -c /dev/sda5


1
Liên kết đến một câu hỏi có liên quan: askubfox.com/q/58755/31592
blong

Câu trả lời:


106

Cài đặt ntfs-3g với sudo apt-get install ntfs-3g. Sau đó chạy lệnh ntfsfix trên phân vùng NTFS của bạn.

Ví dụ:

ntfsfix /dev/hda6

ntfsfix v2.0.0 (libntfs 10: 0: 0)

Cách sử dụng: ntfsfix [tùy chọn] thiết bị

Attempt to fix an NTFS partition.

-h, --help             Display this help
-V, --version          Display version information

Địa chỉ email của nhà phát triển:

linux-ntfs-dev@lists.sf.netTrang chủ Linux NTFS: http://www.linux-ntfs.org


Đối với Ubuntus mới hơn Bạn có thể sử dụng -b-dtùy chọn cùng nhau. -bcố gắng sửa các cụm xấu và -dsửa các trạng thái bẩn. Vì vậy, lệnh có thể được

sudo ntfsfix -b -d /dev/sda6

--help cho họ thấy

ntfsfix v2015.3.14AR.1 (libntfs-3g)

Usage: ntfsfix [options] device
    Attempt to fix an NTFS partition.

    -b, --clear-bad-sectors Clear the bad sector list
    -d, --clear-dirty       Clear the volume dirty flag
    -h, --help              Display this help
    -n, --no-action         Do not write anything
    -V, --version           Display version information

Bạn có bất cứ đề nghị cho vấn đề siêu khối? Tôi đã sửa phân vùng NTFS.
Nemo

5
Thật không may, đây không phải là một câu trả lời hữu ích - vấn đề thực tế không phải là cách khắc phục cấu trúc hệ thống tập tin NTFS, mà là lỗi đọc không thể phục hồi ở cấp thiết bị khối (dưới NTFS). Điều này có nghĩa là (như psusi đã nói) "đĩa của bạn là bánh mì nướng" - tùy chọn duy nhất là mua một ổ cứng mới và khôi phục từ bản sao lưu. Nếu bạn không có bản sao lưu cập nhật, bạn có thể thử sử dụng GNU ddresTHER ("apt-get install gddresTHER") để khôi phục càng nhiều dữ liệu càng tốt cho tệp ảnh đĩa. Google phục hồi đĩa Ubuntu để được trợ giúp thêm.
RichVel

3
@RolandTaylor: Tôi chắc chắn rằng nó có ý định hữu ích, nhưng việc bảo ai đó chạy kiểm tra hệ thống tập tin khi có lỗi đọc không thể phục hồi trong nhật ký sẽ không giúp được họ. Họ có thể tạm thời sửa lỗi nhưng phần cứng đĩa thực sự bị lỗi và ntfix không giúp được điều đó.
RichVel

5
Xin lỗi, điều đó không đúng: phiên bản đầu tiên của câu hỏi bao gồm dòng "sd 0: 0: 0: [sda] Thêm. Sense: Lỗi đọc không được phục hồi - tự động phân bổ lại không thành công" trong nhật ký - Lỗi đọc không được phục hồi (URE ) là những gì chỉ ra rằng ổ đĩa bị lỗi. Nếu bạn gặp lỗi ghi không được phục hồi , có thể tồn tại trong một thời gian (ổ đĩa sẽ ánh xạ lại các khối), nhưng URE không ổn. Xem superuser.com/questions/114675/ trộm để biết lỗi tương tự. Xem en.wikipedia.org/wiki/SMART#cite_note-labs.google.com-1 - phân tích khổng lồ của Google.
RichVel

1
Thêm một liên kết tốt về vấn đề URE là câu trả lời này trên một trang web Stack Exchange khác: unix.stackexchange.com/questions/1869/ mẹo
RichVel

14

Tôi vừa sửa ổ USB của mình bằng "testdisk", tiện ích dòng lệnh Linux (nhưng thân thiện). Ổ đĩa của tôi thậm chí không được gắn trong Windows và Windows 8 được phát hiện như 6 phân vùng (khi ổ đĩa chỉ có một).

Để sử dụng tiện ích, hãy cài đặt nó:

sudo apt-get install testdisk

Sau đó chạy nó:

sudo testdisk

và làm theo hướng dẫn. Bạn phải tìm kiếm các phân vùng và sau đó viết các thay đổi.

Hy vọng điều này sẽ giúp bất cứ ai.


3
điều này thật tuyệt vời .. đã tạo ra một bảng phân vùng bị hỏng trên đĩa cứng ngoài của tôi! Cảm ơn bạn! V
vellvisher

11

Chỉ để xóa một số điểm của bạn lên.

Cố gắng chạy kết quả fsck của tôi sau đây:

ubuntu@ubuntu:~$ sudo fsck /dev/sda

...

fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

Bây giờ, điều đó không có gì lạ, bởi vì bạn đang cố gắng fsck đĩa, và không phải phân vùng của nó. Những gì fsck làm là, nó cố gắng nhận ra loại FS. Bởi vì bạn đã cho nó bề mặt đĩa thô, nó không thể nhận ra và sử dụng kiểu mặc định - ext, gọi fsck.ext.

fsck.ext không tìm thấy bất kỳ chữ ký FS nào trong vị trí và cố gắng tìm các siêu khóa. Cuối cùng, nó thất bại, bởi vì đĩa của nó chỉ có loại phân vùng NTFS.

Đây là lý do tại sao bạn có lỗi này.

Lệnh đúng sẽ là:

sudo fsck /dev/sda1

Điều đó sẽ cung cấp cho phân vùng FIRST của ổ cứng sata đầu tiên, chứ không phải đĩa sata đầu tiên.


đây có thể không phải là câu trả lời giải quyết vấn đề OP, thông tin của nó là vàng nguyên chất. Cảm ơn nhiều!
oliverjkb

bạn là sda1 phải ntfskhông
Adi Prasetyo

5

Đĩa của bạn là bánh mì nướng. Kiểm tra chẩn đoán SMART trong tiện ích đĩa để xác nhận; Nó sẽ nói rằng bạn có rất nhiều thành phần xấu và cần phải thay thế ổ đĩa.


5

Tôi đồng ý với @psusi: đĩa cần thay thế, hãy xem nhận xét của tôi dưới câu trả lời được chấp nhận. Làm một việc ntfsfixsẽ không giúp ích gì cả, và chỉ trì hoãn hành động thiết yếu của:

  1. sao lưu tất cả dữ liệu trên đĩa càng sớm càng tốt
  2. thay thế đĩa bằng một cái mới

Thực sự không cần phải kiểm tra chẩn đoán SMART - dù sao họ cũng chỉ nhận được một tỷ lệ phần trăm lỗi. Cờ đỏ là hai dòng:

[ 1019.726558] sd 0:0:0:0: [sda]  Add. Sense: **Unrecovered read error** - auto reallocate failed
[ 1019.726602] JBD: **Failed to read block** at offset 462

Ngay khi một đĩa bắt đầu đưa ra các lỗi đọc không thể phục hồi (URE), nó cần được thay thế ngay lập tức và chỉ được sử dụng để phục hồi dữ liệu. (Mức độ không phải URE quá cao cũng cho thấy cần phải thay thế.)

Đĩa nên được xem là vật tư tiêu hao phải được thay thế vài năm một lần, do đó có bản sao lưu thực sự tốt (tự động, hàng ngày, đầy đủ và ít nhất là cho một ổ đĩa ngoài) là rất quan trọng.


5

Trong Ubuntu 14.04 Chỉ cần thử điều này

sudo ntfsfix /dev/sdXY

Trong trường hợp XYlà phân vùng của bạn. ( /dev/sda2trong trường hợp của bạn)


2

fsckgpartedcác ứng dụng không thể được sử dụng để khắc phục sự cố với phân vùng ntfs. ntfsfixkhông nên được sử dụng để thử và khắc phục vấn đề này.

Các công cụ Windows thường được sử dụng. Tuy nhiên, chkdskkhông giúp được gì ở đây.

Bạn có thể thử sử dụng testdisktừ hệ điều hành Ubuntu.

sudo apt-get update # cập nhật cơ sở dữ liệu phần mềm

sudo apt-get install testdisk # cài đặt testdisk

sudo testdisk # bắt đầu kiểm tra

Truy cập vào trang web http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step để được trợ giúp sử dụng công cụ này.


Có thể muốn thêm rằng lỗi I / O thường có nghĩa là ổ đĩa chết hoặc phần của ổ đĩa. Đặc biệt nếu NTFS bị hỏng, bạn không thể sửa nó bằng chkdisk hoặc bất kỳ công cụ Windows nào.
Thomas Ward

@ThomasWard bạn hoàn toàn chính xác ... Lỗi I / O thường có nghĩa là rắc rối hơn. "@karel" đã cho tôi thêm điều này vào đây như một liên kết đến một liên kết anh ấy đặt trong một câu hỏi khác ... vì vậy tôi đã không đọc tất cả các chi tiết ở đây ... và câu hỏi đã có câu trả lời được chấp nhận, với các bản cập nhật.
heynnema

1

Như các câu trả lời khác đã nói, trong trường hợp này có lẽ đó là một đĩa xấu ..

Nhưng vì lợi ích của những người khác phải đối mặt với tham nhũng NTFS thực tế - thật không may, công cụ ntfsfix rất hạn chế so với chkdsk của Microsoft. Hãy thử cài đặt Windows - tốt nhất là với phiên bản Windows mới nhất vì Microsoft có lẽ liên tục cải tiến chkdsk (tôi hy vọng ..) Các phiên bản Windows mới hơn thường có sẵn miễn phí dưới dạng thử nghiệm. Nếu sự cố nằm ở đĩa USB, bạn có thể thử cài đặt Windows trong một cái gì đó như VirtualBox và cung cấp cho VM quyền kiểm soát thiết bị USB.


1

Thật không may, các công cụ miễn phí có sẵn trên Linux rất hạn chế liên quan đến việc sửa các phân vùng NTFS.

Nhiều khả năng bạn vẫn có thể khôi phục dữ liệu của mình bằng cách sử dụng MFT thứ cấp được lưu trữ ở cuối đĩa. Nó thường không được sử dụng, nhưng nó nên chứa một phiên bản cập nhật của cấu trúc thư mục của bạn. Có một cơ hội tốt nó không bị ảnh hưởng bởi các lỗi đĩa.

Trước đây, tôi đã sử dụng sản phẩm GetDataBack NTFS của Runtime Software (79 đô la) với thành công lớn cho việc này. Đây là một trong số ít các công cụ NTFS (duy nhất?) Chạy trong WINE và dưới dạng Linux LiveCD , và bản demo miễn phí phải đủ để xem liệu dữ liệu của bạn có còn ở đó không. Nếu có, dữ liệu của bạn có thể đáng để mua công cụ.

LiveCD chạy Knoppix Linux và có tất cả các công cụ của họ được cài đặt sẵn. Lưu ý rằng bạn vẫn sẽ cần một khóa cấp phép để thực sự sử dụng các công cụ, nhưng nó đủ để xem nó có hoạt động trên máy tính của bạn không.

Tuyên bố miễn trừ trách nhiệm: Tôi không có liên kết với phần mềm Runtime ngoài việc đã mua sản phẩm của họ vài năm trước.


+1 không phải vì tôi có kinh nghiệm với những gì trong câu trả lời này; mục đích là để nâng cao nhận thức về các lựa chọn thay thế ít được biết đến hơn đối với những thứ như Phép thuật chia cắt.
Graham Perrin

0

Câu trả lời này có thể sẽ chỉ hoạt động cho 10.04 (sáng suốt) và các phiên bản mới hơn của Ubuntu!

Hãy thử sudo ntfsfix -b /dev/sda2.

  • Bạn cần cài đặt ntfs-3gCài đặt ntfspross . Nếu bạn không có nó, bạn có thể cài đặt nó trong Trung tâm phần mềm bằng cách nhấp vào liên kết đó hoặc từ Terminal ( Ctrl+ Alt+ T) bằng cách chạy các lệnh sau:

    sudo apt-get update
    sudo apt-get install ntfs-3g
    

4
Tại sao nên sử dụng NTFSProgs khi NTFS-3g được cài đặt theo mặc định? NTFSProgs đã chết, vì nó đã được hợp nhất hoàn toàn vào NTFS-3g. Chuyển sang cái trước có thể gây ra nhiều vấn đề hơn nó giải quyết.
TSJNachos117

1
NTFSProgs không còn là một phần của kho lưu trữ gói sau ngày 12.04 chính xác.
kynan

0

Tôi chỉ gặp vấn đề tương tự trên USB NTFS 3TB. Kịch lớn, như bạn có thể tưởng tượng.

Lần đầu tiên tôi cố gắng sửa nó trên hộp Windows của vợ tôi. Không có niềm vui.

sudo ntfsfix / dev / sdcx cực kỳ nhanh chóng sửa nó.

Hoan hô! Trở lại kinh doanh. Thực sự phải có một đĩa mới và kịp thời định dạng lại nó thành một hệ thống tập tin người lớn thích hợp.

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.