fsck sẽ không fsck (không thể đặt cờ siêu khối)


12

Sau khi tắt máy ô uế trên thiết bị dựa trên thẻ SD, tôi lấy thẻ SD ra fsckhệ thống tập tin gốc. Điều này dẫn đến các biến thể sau:

e2fsck 1.43.1 (08-Jun-2016)
/dev/sdc2: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? no
Clear journal<y>? no
e2fsck: unable to set superblock flags on /dev/sdc2

Ở đây tôi đã trả lời "không" cả hai lần nhưng không có chuỗi có / không ngay lập tức không dẫn đến kết quả tương tự.

Hệ thống tập tin có thể được gắn kết và kiểm tra ngẫu nhiên có vẻ ổn; nó cũng hoạt động tốt trong thiết bị và đó là hệ thống tập tin gốc (thực ra nó không hoàn toàn tốt, xem bình luận; tldr một số thư mục bị hỏng không thể sửa chữa được).

Tôi ddlà phân vùng (8 GB) cho một tệp và đã thử fsck trên đó. Một cách thú vị:

e2fsck 1.43.1 (08-Jun-2016)
plush.rootfs: recovering journal
Clearing orphaned inode 18290 (uid=0, gid=0, mode=0100644, size=34096)
Clearing orphaned inode 18270 (uid=0, gid=0, mode=0100644, size=38916)
Clearing orphaned inode 18250 (uid=0, gid=0, mode=0100644, size=1128076)
Clearing orphaned inode 11411 (uid=0, gid=0, mode=0100644, size=293108)
Setting free inodes count to 406127 (was 408580)
Setting free blocks count to 1305622 (was 1347486)
plush.rootfs: clean, 60209/466336 files, 604906/1910528 blocks (check after next mount)

Sau đó fsck, sạch sẽ, hình ảnh có thể được gắn kết, và fsck -fsau đó cũng đi qua.

Nhưng hệ thống tập tin trên thẻ mà từ đó hình ảnh sao chép khối thô được tạo ra vẫn có cùng một vấn đề - ngoại trừ việc systemd-fsckxảy ra trong quá trình khởi động sẽ ghi hệ thống tập tin là "sạch". Sau đó, việc tắt máy đúng cách, rút ​​thẻ ra và thử fscklại từ một hộp khác cũng có lỗi tương tự.

Bất cứ khi nào bản gốc được gắn trên một máy khác, syslog ghi chú:

kernel: EXT4-fs (sdc2): 4 orphan inodes deleted
kernel: EXT4-fs (sdc2): recovery complete

Vì tôi đã sao lưu tất cả, tôi sẵn sàng thử mọi thứ ở đây. Tôi chỉ đơn giản là có thể quên điều này và đảo ngược phân vùng khỏi hình ảnh cố định rõ ràng, nhưng đó có vẻ không phải là một giải pháp rất thỏa đáng, vì điều đó có nghĩa là giả sử fsck đã thất bại trong việc giải quyết một vấn đề nhỏ.

Tôi nghi ngờ điều này sẽ biến thành một câu hỏi "yêu cầu tài liệu chính thức" liên quan đến những thứ như nhu cầu recovery_flag (hoặc chỉ đơn giản là câu hỏi "Điều này có nghĩa là gì?"), Vì vậy mọi đề xuất dọc theo những dòng đó đều được đánh giá cao.


Bất cứ điều gì trong bản ghi kernel về lỗi thiết bị? Đây không phải là lần đầu tiên thẻ SD đột nhiên trở thành chỉ đọc.
Đánh dấu Plotnick

@MarkPlotnick Không, và nó có thể ghi. Điều cuối cùng trong nhật ký từ trước khi xảy ra sự cố là khởi động lại hệ thống (thiết bị không đầu và không phản hồi sau một thời gian dài apt upgrade). Sau đó, nó ghi lại một khởi động bình thường - và systemd-fsck nói "sạch" (tôi sẽ chỉnh sửa nó trong), nhưng thử fsck bên ngoài bối cảnh đó vẫn thất bại.
goldilocks

Fsck của bạn trên bản sao đã xóa 4 nút, nhưng đã sửa số lượng nút miễn phí bằng cách giảm 2453 nút! Điều đó thật to lớn. Kiểm tra xem thiết bị có đủ năng lượng không.
meuh

@meuh Tôi nhận thấy bất cứ khi nào nó được gắn trên syslog hộp lớn đề cập đến 4 nút đó (được chỉnh sửa ở trên). Một số nội dung trên fs hóa ra đã bị rối (các mô-đun hạt nhân được cập nhật! \ O /) vì vậy tôi đã đốt một thẻ mới và sẽ giữ lại thẻ cũ trong trường hợp tôi có cơ hội tìm hiểu thêm về nó. Nó không hoàn toàn mới - một thẻ lớp 10 giá rẻ không có thương hiệu, trong (nhiệm vụ nhẹ) sử dụng 24/7 trong vài năm, vì vậy ... Tôi không nghĩ có cách nào để xác minh thẻ SD không còn tồn tại , nhưng tôi đoán nó có thể là như vậy. Sức mạnh sẽ ổn nhưng có thể là iffy trong những điều kiện nhất định.
goldilocks

2
Nó không thực sự hấp dẫn khi chính công cụ được cho là khắc phục vấn đề của bạn, không hoạt động vì bản chất của vấn đề? Kết luận: Công cụ này là xấu và cần được sửa chữa.
Marc.2377

Câu trả lời:


11

Tôi chỉ gặp vấn đề tương tự. Sau khi gỡ lỗi sự cố với người e2fsckbảo trì, chúng tôi nhận ra rằng thẻ SD đã bị hỏng. Nó đã chấp nhận ghi mà không có lỗi, nhưng nó không thực sự ghi dữ liệu vào thẻ. Thẻ SD chỉ được đọc một cách hiệu quả.

Có vẻ như thẻ đã chuyển sang một chế độ không an toàn, trong đó dữ liệu vẫn có thể được đọc, nhưng không có gì được ghi.

Các e2fsckthông điệp unable to set superblock flagscó nghĩa là nó đã cố gắng để viết thư cho superblock để đánh dấu trên tạp chí như chế biến, trong đó xảy ra mà không có lỗi, nhưng khi nó đã đi để đọc superblock lại một lần nữa nó vẫn chỉ ra rằng trên tạp chí cần thiết để được thực hiện lại. Nói cách khác, những thay đổi được ghi trong siêu khối không được lưu trên phương tiện lưu trữ.

Thẻ tôi đang sử dụng có vấn đề này là Samsung Evo 16GB microSD, tôi chỉ đề cập đến trong trường hợp đó là sự cố phổ biến với các thẻ này.

Tôi đã có thể kiểm tra điều này bằng cách sử dụng ddđể ghi 4096 byte từ /dev/zerothẻ vào khối 0, sau đó tôi đọc lại từ thẻ và thay vì nhận tất cả các số 0 như tôi nên, tôi vẫn nhận được siêu khối ext4 không thay đổi ban đầu.

Bây giờ tôi đang trong quá trình chuyển dữ liệu sang thẻ mới và sau đó xem liệu tôi có thể nhận được sự thay thế từ Samsung hay không, người dường như cung cấp bảo hành 10 năm cho thẻ SD.

CẬP NHẬT: Samsung đã thay thế thẻ 16 GB bằng thẻ 32 GB trong cùng dòng Evo, vì vậy tôi đoán là tôi không thể phàn nàn quá nhiều!


"nơi dữ liệu vẫn có thể được đọc, nhưng không có gì được ghi" -> Các fs có thể ghi được.
goldilocks

@goldilocks: Âm thanh như siêu khối fs của bạn có thể không thể ghi được. Ngoài ra, fs của tôi xuất hiện có thể ghi được nhờ bộ nhớ đệm, chỉ sau khi vượt qua và kể lại, tôi nhận thấy bất kỳ thay đổi nào đã bị mất.
Malvineous

Đó không phải là ảo ảnh do bộ nhớ đệm.
goldilocks

7

Tôi biết đây là một chủ đề cũ, nhưng, tôi đoán rằng tôi sẽ cung cấp một số cái nhìn sâu sắc.

Đây dường như là cách thẻ sd chết một cách tự nhiên. Số lượng thẻ sd chu kỳ đọc / ghi có thể chịu đựng thấp hơn đáng kể so với hầu hết các phương tiện khác được coi là 'đọc / ghi'. Khi đã hết, thẻ sẽ chuyển sang chế độ chỉ đọc, nhưng sẽ không thông báo cho bạn về điều đó. Rất nhiều thứ sẽ nghĩ rằng họ đang ghi vào thẻ nhờ bộ nhớ đệm hệ điều hành, v.v., nhưng không có gì dính vào.

Một cách tuyệt vời để tiêu diệt thẻ sd là gắn kết nó dưới dạng phân vùng trao đổi hoặc thứ gì đó rất đọc / ghi chuyên sâu. Bạn sẽ ngạc nhiên khi bạn có thể giết một lá bài nhanh như vậy. Tôi đã phát hiện ra rằng việc chạy knoppix khỏi thẻ sd hoặc ổ USB sẽ chỉ kéo dài một hoặc hai tháng, tùy thuộc vào chất lượng của thẻ và cường độ sử dụng knoppix. (Kể từ khi tôi chuyển sang chạy knoppix từ ổ USB usb đã tồn tại vài năm nay).

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.