Buộc fsck.ext4 khởi động lại, nhưng thực sự là mạnh mẽ


21

Một trong những máy chủ Ubuntu 10.04 của tôi đang gây rắc rối cho tôi. Khi tôi chạy, fsck.ext4 -n /dev/sda5nó báo cho tôi biết có lỗi trong số lượng inode miễn phí, số khối miễn phí và hơn thế nữa.

Tôi đã thử:

touch /forcefsck

Cũng đã thử:

shutdown -rF now

Và sau khi khởi động lại, tôi thấy lỗi.

Tôi cũng vừa kiểm tra trên netbook eeePC của mình, Ubuntu 10.10 và gặp vấn đề tương tự!

Làm cách nào tôi có thể buộc một "fsck" thực sự "bắt buộc" nghiêm trọng sửa chữa hệ thống tập tin của tôi "fsck của hệ thống tập tin" / "khi khởi động lại?

Làm rõ: Tôi chạy fsck.ext4 -nvì đó là một hệ thống tập tin được gắn kết, để kiểm tra xem có lỗi không. Điều này cho tôi biết rằng có. Tôi nghĩ rằng fsck tự động cứ sau 30 lần gắn kết trong quá trình khởi động chính xác là để xử lý các lỗi trong hệ thống tập tin gốc. Nhưng nó không làm điều đó trong trường hợp của tôi. Tôi có thể khởi động lại với LiveCD và sửa lỗi, sau đó khởi động lại, nhưng đó là một số thời gian chết nghiêm trọng đối với máy chủ trực tiếp. Khởi động lại, tự động fsck, sau đó tiếp tục khởi động bền vững hơn nhiều trên máy chủ trực tiếp và tôi tin rằng đó là hành vi đúng.

Thông tin bổ sung: Đây là đầu ra. Có vẻ như một cái gì đó mà autofsck sẽ sửa chữa, phải không?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

phiên bản máy chủ Ubuntu bạn đang sử dụng là gì?
crncosta

10.04. Tôi sẽ chỉnh sửa câu hỏi của tôi.
UrkoM

Tôi không nghĩ rằng bạn thực sự có thể làm điều đó, trên thực tế bạn có thể tốt hơn nên thực hiện kiểm tra bằng tay.
RolandiXor

1
Xin lỗi nhưng tôi vẫn cần thêm thông tin. Bạn đang làm fsck trên các hệ thống tập tin gắn kết? bạn có thể khởi động từ LiveCD và kiểm tra lại (với / dev / sda5 không đếm được) không?
crncosta

Có phải không phải hệ thống tập tin mà là ổ cứng bị hỏng? Trong trường hợp đó, người ta dự đoán rằng ext4 sẽ không sửa lỗi cũng như chỉ có một vài thành phần xấu.
Stefano Palazzo

Câu trả lời:


10

Từ trang người đàn ông e2fsck:

"Lưu ý rằng nói chung không an toàn khi chạy e2fsck trên các hệ thống tệp được gắn kết. Ngoại lệ duy nhất là nếu tùy chọn -n được chỉ định và các tùy chọn -c, -l hoặc -L không được chỉ định. Tuy nhiên, ngay cả khi nó an toàn Để làm như vậy, kết quả được in bởi e2fsck không hợp lệ nếu hệ thống tệp được gắn kết. Nếu e2fsck hỏi bạn có nên kiểm tra hệ thống tệp được gắn hay không, câu trả lời đúng duy nhất là '' không ''. họ đang làm nên cân nhắc trả lời câu hỏi này theo bất kỳ cách nào khác. "

Vì vậy, nếu bạn kiểm tra một FS được gắn kết với fsck ngay cả khi sử dụng tùy chọn -n, kết quả có thể không hợp lệ. Đừng kiểm tra các hệ thống tập tin được gắn. Sử dụng Live-CD / Live-USB.

Nếu bạn không kiểm tra hệ thống tập tin trong khi nó được gắn kết, tôi không hiểu tại sao bạn cần sử dụng, touch /forcefsckbạn chỉ có thể ngắt kết nối và sửa nó. Nhưng nếu đó là trường hợp và sau khi sửa lỗi, FS của bạn vẫn có lỗi thì bạn có thể xem xét sử dụng:

e2fsck -cy /dev/sda5

Điều đó sẽ khắc phục một sự cố liên quan đến ổ cứng được gọi là khối xấu mà bạn có thể có (việc này sẽ mất nhiều thời gian).

Nếu bạn muốn kiểm tra một hệ thống tập tin được gắn kết, tôi không biết cách tiến hành nhưng tôi nghĩ bạn nên tạo một câu hỏi khác.


Bạn đã đúng, hệ thống tập tin được gắn kết. Và tất nhiên tôi cần phải làm fsck khi chưa từng có. Nhưng tôi chạy fsck -n để kiểm tra trong khi gắn kết, mà không thực hiện thay đổi và nó cho tôi biết có lỗi. Và không nên fsck khi khởi động lại sửa chúng ???
UrkoM

Tôi chỉ nhận thấy những gì bạn nói trong câu đầu tiên: tại sao fsck -n không hợp lệ trên một hệ thống tập tin được gắn kết? Làm cách nào để kiểm tra xem hệ thống tập tin được gắn có lỗi theo cách đáng tin cậy không?
UrkoM

Bạn có thể kiểm tra trang man e2fsck có nội dung: "Lưu ý rằng nói chung không an toàn khi chạy e2fsck trên các hệ thống tệp được gắn. Ngoại lệ duy nhất là nếu tùy chọn -n được chỉ định và các tùy chọn -c, -l hoặc -L là Tuy nhiên, ngay cả khi an toàn để làm như vậy, kết quả được in bởi e2fsck không hợp lệ nếu hệ thống tệp được gắn. Nếu e2fsck hỏi bạn có nên kiểm tra hệ thống tệp được gắn hay không, câu trả lời đúng duy nhất là '' không ''. Chỉ những chuyên gia thực sự biết họ đang làm gì mới nên xem xét trả lời câu hỏi này theo bất kỳ cách nào khác. "
Nyamiou The Galeanthrope

Tôi không biết cách kiểm tra hệ thống tệp được gắn kết, có lẽ bạn nên tạo một câu hỏi khác.
Nyamiou The Galeanthrope

Bạn có thể thêm hai ý kiến ​​cuối cùng vào câu trả lời của bạn? Sau đó, tôi sẽ chấp nhận nó. Tôi không biết điều đó, vì vậy đó là lý do tại sao ... Tôi nghĩ đó là vì fsck -n không xử lý tạp chí, vì vậy trạng thái hệ thống tập tin không nhất quán mà không xem xét các thay đổi mới nhất được giữ ở đó.
UrkoM

24

Tôi biết đây là một chủ đề thực sự cũ, nhưng gần đây tôi đã phải giải quyết vấn đề này vì vậy tôi muốn đăng bài cách buộc HĐH khắc phục các sự cố được tìm thấy với fsck trong quá trình khởi động (cho 12.04).

Bạn cần phải chạy lệnh sudo touch /forcefsck. Điều này sẽ khiến nó thực hiện một fsck trong lần khởi động tiếp theo. Bạn có thể xem kết quả của fsck trong /var/log/boot.log.

Tuy nhiên, bạn không được đảm bảo rằng fsck sẽ sửa bất cứ thứ gì nó tìm thấy. Để làm điều này, bạn sẽ cần chỉnh sửa tệp / etc / default / rcS. Có một dòng ở cuối tập tin đó:

FSCKFIX=no

Điều này cần phải được thay đổi thành như sau:

FSCKFIX=yes

Điều này sẽ có tác dụng tương tự như chạy fsck với tùy chọn -y sẽ buộc tất cả các bản sửa lỗi có thể được thực hiện và nó sẽ không yêu cầu tương tác của người dùng.

Điều này sẽ cho phép bạn chạy fsck như OP đã yêu cầu mà không cần phải khởi động từ đĩa trực tiếp, điều này không phải lúc nào cũng có thể, đặc biệt nếu bạn đang ở trên một hệ thống từ xa.


1
Chỉnh sửa mục này trên phiên bản Ubuntu EC2 của tôi cùng với sudo touch /forcefscksudo shutdown -rcác lệnh đã giải quyết thành công các sự cố hệ thống tệp và cảnh báo kiểm tra khi đăng nhập. Dễ dàng và không phá vỡ - chúc mừng.
c.gutierrez

Câu hỏi tương tự đã được hỏi trên Server Fault và câu trả lời này cũng là câu hỏi phù hợp với tôi, trên hệ thống Ubuntu 14.04. Chỉ làm sudo touch /forcefsckvà sau đó khởi động lại không; chỉnh sửa rcSlà cần thiết.
Teemu Leisti

12
sudo touch /forcefsck
sudo reboot

Bạn đã mắc một lỗi đánh máy - bạn đang chạm / forcefcsk. "C" và "s" được hoán đổi. fsck là viết tắt của FileSystemChecK.


Điều này sẽ không hoạt động với tôi vì hệ thống tập tin gốc được gắn kết chỉ đọc do lỗi tôi phải sửa fsck! Vấn đề gà và trứng chỉ có thể được giải quyết thông qua liveCD hoặc kéo ổ đĩa vào máy khác.
HDave

3

Bạn không thể buộc fsck bật / sẽ sửa chữa vì phân vùng đang được sử dụng. Hãy thử chạy kiểm tra từ một phân vùng khác hoặc cd trực tiếp.


2
Rất đúng, nhưng fsck tự động khi khởi động phải xảy ra trước khi phân vùng được sử dụng, chính xác để có thể sửa lỗi trên "/". Nếu không, vấn đề là gì?
UrkoM

3
Tôi tin rằng kiểm tra xảy ra trước khi sử dụng, tuy nhiên, nó là một kiểm tra tư vấn nhiều hơn. Tùy thuộc vào bạn để quyết định cách sửa lỗi. Một kiểm tra dễ dàng là khi nhìn vào / etc / fstab. "/" Nhận một kiểm tra khác sau đó các phân vùng khác.
charlie-tca

Nó xảy ra trước khi root được xoay vòng? I E. Đĩa Ram đầu tiên.
mckenzm

1

Bạn có thể thực hiện các sửa đổi tự động theo cách sau:

Tune2fs -c 5 -i 10 / dev / sda1

-clà số lần gắn kết tối đa trước khi chạy fsck-ilà số ngày tối đa trước khi chạy fsck.

Trong trường hợp này sẽ được thực hiện cứ sau 5 lần gắn hoặc cứ sau 10 ngày, tùy theo điều kiện nào đến trước.

Tôi có hai máy tính, một với Linux SuSE 13.2 và một với Linux Mint 18.0 và cả hai đều hoạt động hoàn hảo.


Các biểu mẫu và nhận xét trong biểu mẫu tự động như sau: Tune2fs -c 5 -i 10 / dev / sda1 Trong đó: -c là số lần gắn kết tối đa trước khi chạy fsck Trong đó: -i là số ngày tối đa trước khi chạy fsck Trong trường hợp này sẽ được thực hiện cứ sau 5 lần gắn hoặc cứ sau 10 ngày, tùy theo điều kiện nào đến trước. Tôi có hai máy tính, một với Linux SuSE 13.2 và một với Linux MInt 18.0 và cả hai đều hoạt động hoàn hảo.
hk3jld

Các biểu mẫu và nhận xét trong biểu mẫu tự động như sau: Tune2fs -c 5 -i 10 / dev / sda1 Trong đó: -c là số lần gắn kết tối đa trước khi chạy fsck Trong đó: -i là số ngày tối đa trước khi chạy fsck Trong trường hợp này sẽ được thực hiện cứ sau 5 lần gắn hoặc cứ sau 10 ngày, tùy theo điều kiện nào đến trước. Tôi có hai máy tính, một với Linux SuSE 13.2 và một với Linux MInt 18.0 và cả hai đều hoạt động hoàn hảo. Tôi không biết tiếng Anh nhưng tôi sử dụng một dịch giả, tôi hy vọng việc đào tạo sẽ ổn
hk3jld

1
Nó cũng hoạt động trên Ubuntu phải không?
George Udosen

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.