Làm cách nào tôi có thể fsck một phân vùng khi thiết bị đọc là bận (nhưng đã được xác nhận khác)?


11

Tôi đang cố chạy fsck -p /dev/sda5để sửa lỗi trên phân vùng ext4, tuy nhiên lệnh xuất ra

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

Tôi đã xác nhận bằng cách sử dụng /etc/mtablsofkhông có gì sử dụng phân vùng và nó không được gắn kết. Tôi cũng đã từng fuser -k /dev/sda5buộc phải đóng bất cứ thứ gì bằng cách sử dụng tệp và umountcố gắng ngắt kết nối nó thành vô ích.

Làm thế nào tôi có thể buộc fsckít nhất phải kiểm tra và hy vọng sửa chữa phân vùng mặc dù thực tế là nó đọc là bận rộn? Giả sử tôi đủ tự tin rằng nó không được gắn kết cũng không được sử dụng và khả năng tham nhũng dữ liệu không phải là vấn đề.

Tất cả các lệnh đã được thực thi với quyền root từ Ubuntu 10.04 32 bit liveCD. Phân vùng là phần hệ thống (không phải ở nhà) của bản cài đặt Ubuntu 10.04 32 bit.


Tôi đã tìm thấy một phương pháp giải quyết vấn đề lớn hơn liên quan đến câu hỏi này, nhưng tôi vẫn đang tìm câu trả lời về cách buộc fscknếu thiết bị bận (hoặc tại sao không thể thực hiện được).
Keeblebrox

Tôi đang gặp vấn đề tương tự trên hệ thống RHEL5.8. / tmp đã được bỏ qua, / etc / mtab và / Proc / mounts không hiển thị dấu vết của hệ thống tệp. Tôi thậm chí đã khởi động lại máy, đảm bảo tôi là người duy nhất đăng nhập. lsof cho thấy không có tập tin nào được sử dụng trên / tmp. Quy trình tương tự hoạt động tốt trên 4 máy chủ tương tự được cài đặt sử dụng cùng một cấu hình khởi động. Sự khác biệt giữa các máy chủ này và máy chủ này là máy chủ này có bộ lưu trữ SAN được gắn vào nó. Đa daemon có thể gây ra điều này?
Bram

Nó không giúp ích gì trong trường hợp của tôi, nhưng Red Hat KB ( access.redhat.com/ledgeledge/solutions/54184 ) khuyên bạn nên thêm tùy chọn kernel gật đầu như một cách giải quyết cho vấn đề này.
Bram

Câu trả lời:


4

Có những thứ (thường là trong kernel, như các luồng NFS, các tệp hoán đổi, các liên kết gắn kết, v.v.) có thể khiến một hệ thống tập tin bận rộn không xuất hiện fuser.

Nếu bạn cố gắng vào fsckmột hệ thống tập tin được gắn kết, nó sẽ bị hỏng. Bạn nên tìm một đĩa CD trực tiếp không tự động gắn hệ thống tập tin của bạn, như Knoppix hoặc Fedora.


Tất cả mọi thứ đã được chạy từ một đĩa sống cho đến nay. Tôi đang cố gắng đến fsckmột hệ thống tập tin cục bộ, vì vậy tôi hy vọng rằng NFS sẽ không khiến nó bận rộn - tuy nhiên, tôi hiểu những gì bạn nói về kernel khiến nó bận rộn theo những cách không nhất thiết phải xuất hiện. Vì nó vẫn xảy ra trong môi trường đĩa sống, tuy nhiên, bạn có biết cách ngăn hạt nhân truy cập nó đủ lâu để tôi chạy fsckkhông?
Keeblebrox

Rất tiếc. Sử dụng từ một đĩa sống? Tôi chỉ có thể nghĩ về hai điều: 1) Thử một đĩa sống khác (ví dụ Fedora thay vì Ubuntu). 2) Kiểm tra / etc / fstab trên hệ thống thực. Có lẽ có một tập tin trao đổi hoặc gắn kết liên kết được bật tự động? Không nhất thiết phải theo thứ tự đó, tôi có thể thêm ...
Steven Pritchard

OK, bằng cách nào đó tôi hoàn toàn bỏ lỡ dòng cuối cùng của câu hỏi. Tôi đã cập nhật câu trả lời của mình một cách thích hợp.
Steven Pritchard

+1 vì việc bạn đề cập đến trao đổi tự động gắn kết dẫn đến một bước đột phá không liên quan và phản hồi của bạn đã giúp giải quyết vấn đề lớn hơn. Tôi vẫn muốn tìm cách ép buộc fsckkhi tôi biết rằng thiết bị không bận cũng không được gắn và khi hỏng dữ liệu không phải là vấn đề.
Keeblebrox

Có lẽ mdadm đã phát hiện chữ ký đột kích trên phân vùng và ràng buộc với nó? Kiểm tra / Proc / mdstat.
psusi

4

Bạn có thể xóa phân vùng khỏi fstabvà khởi động lại máy


2

Hãy thử khởi động một liveCD khác - Tôi khuyên dùng SystemResTHERCD được thiết kế đặc biệt để giải quyết các vấn đề với cài đặt linux. Nó cũng nhỏ hơn các liveCD thông thường của hệ điều hành. Và để ở bên an toàn, hãy chạy fscktừ bàn điều khiển (không có X).

Nếu tiêu chuẩn fsck -pkhông hoạt động, bạn cũng có thể thử e2fsck -y -f.


Theo trang người đàn ông , e2fsck -y -fbuộc kiểm tra trên một phân vùng sạch. Nó không đề cập bất cứ điều gì về phân vùng gắn kết. Bạn có biết liệu nó cũng sẽ buộc kiểm tra không?
Keeblebrox

Có lẽ là không, nhưng bạn chắc chắn nên tránh các hệ thống tập tin được gắn kết fsck (xem các đoạn văn ở đầu e2fscktrang). Một suy nghĩ khác: nếu /etc/mtabdường như chỉ ra phân vùng không được gắn kết, nhưng bạn vẫn gặp lỗi, bạn cũng nên kiểm tra /proc/mounts, vì mtabtệp có thể bị lỗi thời vì một lý do lạ.
rozcietrzewiacz

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.