Làm cách nào để buộc fsck ở mọi hệ thống khởi động - tất cả (có liên quan)?


14

Tôi đang làm việc với một PC không quạt (thực tế là hàng trăm trong số đó) có các phân vùng debian 6 và 3 (FAT và 2x ext2). Hệ thống không có nút nguồn vì vậy hầu hết mọi người có xu hướng kéo phích cắm để 'tắt nó' thay vì init 0 (hoặc tương đương). Kết quả là (các) hệ thống tập tin xây dựng lỗi khá nhanh.

Tôi đã thử sử dụng 'shutdown -rF' để buộc fsck nhưng điều này dường như không hoạt động. Tôi tự hỏi nếu có một số cách để yêu cầu hệ thống kiểm tra từng điểm gắn kết / FS trước khi chúng được gắn kết.

Tôi đã thử đặt thông số fsck trong / etc / fstab. Điều này thường mang lại cho tôi một 'Lỗi được tìm thấy. Chạy tin nhắn fsck bằng tay '.

Có những lựa chọn khác để thử?


1
A) Ai là người dùng của bạn? B) Bạn có thể thêm nút "Tắt máy" nổi bật luôn hiển thị trên màn hình không? C) Ngoài ra, bạn có thể giáo dục người dùng của bạn? D) Tại sao máy không có nút nguồn ở mặt trước?
không thể

Câu hỏi này gần như trùng lặp với unix.stackexchange.com/questions/180488/NH bởi cùng một người dùng.
không thể

Câu trả lời:


16

Trong /etc/init.d/checkfs.shlà dòng if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline, vì vậy việc cung cấp forcefscktrên dòng lệnh kernel hoặc tạo /forcefscktệp khi tắt máy sẽ gây ra một fsck trong lần khởi động lại tiếp theo.

Để ngăn việc chạy fsck thủ công, hãy yêu cầu fsckcố gắng tự động sửa lỗi với -ytùy chọn bằng cách bỏ ghi chú và thay đổi không thành yestrong mục / etc / default / rcS sau, sau khi chỉnh sửa, nó sẽ trông như sau:

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=yes

Một tùy chọn (forcefsck hoặc FSCKFIX) không ngụ ý khác.


Điều này sẽ xử lý điều kiện 'Chạy fsck thủ công'?
ethrbunny

Thật vậy, tôi đọc quá nhanh, cập nhật câu trả lời của tôi.
màu xám hữu hạn

Tôi đã đặt cả FSCKFIX = yes và giá trị trong checkfs.sh. Trong cả hai trường hợp, fsck không chạy khi tôi khởi động lại (thông qua init 6). Tôi phải thiếu một cái gì đó ở đây.
ethrbunny

Không thay đổi bất cứ điều gì checkfs.sh, chỉ chỉnh sửa / etc / defaults / rcS và chạy touch /forcefscktrước khi khởi động lại. Lệnh cuối cùng cần được chạy trước mỗi lần khởi động lại hoặc ngay sau khi bạn khởi động nhưng tập lệnh fsck init đã hoàn tất.
màu xám hữu hạn

Hmm .. không có may mắn. Tôi vẫn thấy thông báo 'gắn hệ thống tập tin không được kiểm soát' kèm theo rất nhiều lỗi 'xóa tham chiếu inode'. Cho đến nay thay đổi / etc / fstab là điều duy nhất có ảnh hưởng. Không chắc chắn những gì tôi đang làm để đề xuất của bạn không hoạt động.
ethrbunny

7

Tôi đang chỉnh sửa câu trả lời của mình:

Lệnh là:

sudo tune2fs -c 1 /dev/sdX

theo đối số manpages -c cho Tune2fs đếm số lượng phiên bản gắn kết cho một phân vùng. Do đó, 1 lực lượng để kiểm tra fs sau mỗi lần gắn.

( http://man7.org/linux/man-pages/man8/tune2fs.8.html )


2
Chỉ một lệnh là không đủ trong hầu hết các trường hợp, viết ít nhất là một lời giải thích tối thiểu.
peterh - Tái lập Monica

7

Thêm fsck.mode=forcetham số Kernel trên bộ tải khởi động của bạn. Nối tùy chọn này vào GRUB_CMDLINE_LINUX_DEFAULT=biến bên trong /etc/default/grub. Khi root, tạo tệp cấu hình grub mới:

[root@host]# grub-mkconfig -o /boot/grub/grub.cfg

Tham số này có tác dụng tương tự như tạo forcefscktệp bên trong gốc của điểm gắn kết.

Giải pháp sử dụng checkfs.shtập lệnh sẽ phù hợp hơn với Debian, nhưng không hoạt động trên các bản phát hành khác

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.