Tôi nên làm gì để buộc kiểm tra hệ thống tập tin gốc (và tùy chọn sửa lỗi) khi khởi động?


10

Hôm qua, một trong những máy tính của chúng tôi đã rơi vào grubvỏ hoặc thành thật mà nói, tôi không chắc nó là vỏ gì khi chúng tôi bật máy.

Nó cho thấy rằng nó không thể gắn kết hệ thống tập tin gốc hoặc một cái gì đó theo nghĩa này, vì sự không nhất quán.

Tôi chạy, tôi tin:

fsck -fy /dev/sda2

Khởi động lại và vấn đề đã biến mất.

Đây là phần câu hỏi:

Tôi đã có trong crontab gốc của cô ấy:

@reboot /home/ruzena/Development/bash/fs-check.sh

trong khi tập lệnh chứa:

#!/bin/bash
touch /forcefsck

Nghĩ về nó, tôi không biết, tại sao tôi lại tạo tập tin script cho một lệnh ngắn như vậy, nhưng dù sao thì ...

Hơn nữa, trong tập tin:

/etc/default/rcS

Tôi đã xác định:

FSCKFIX=yes

Vì vậy, tôi không nhận được nó. Làm thế nào tình hình thậm chí có thể phát sinh?


Tôi nên làm gì để buộc kiểm tra hệ thống tập tin gốc (và tùy chọn sửa lỗi) khi khởi động?

Hay hai điều này là tối đa, mà tôi có thể làm?

HĐH: Linux Mint 18.x Quế 64-bit.

fstab:

cat /etc/fstab | grep ext4

trình diễn:

UUID=a121371e-eb12-43a0-a5ae-11af58ad09f4    /    ext4    errors=remount-ro    0    1

grub:

fsck.mode=force

đã được thêm vào grubcấu hình.

Câu trả lời:


12

ext4 kiểm tra hệ thống tập tin trong khi khởi động

Đã thử nghiệm trên HĐH: Linux Mint 18.x trong Máy ảo

Thông tin cơ bản

/etc/fstabfsckthứ tự là cột cuối cùng (thứ 6), ví dụ:

<file system>    <mount point>    <type>    <options>    <dump>    <fsck>
UUID=2fbcf5e7-1234-abcd-88e8-a72d15580c99 / ext4 errors=remount-ro 0 1

FSCKFIX=yes biến trong /etc/default/rcS

Điều này sẽ thay đổi fsck thành tự động sửa, nhưng không bắt buộc kiểm tra fsck.

Từ man rcS:

FSCKFIX
    When  the  root  and all other file systems are checked, fsck is
    invoked with the -a option which means "autorepair".   If  there
    are  major  inconsistencies then the fsck process will bail out.
    The system will print a  message  asking  the  administrator  to
    repair  the  file  system manually and will present a root shell
    prompt (actually a sulogin prompt) on the console.  Setting this
    option  to  yes  causes  the fsck commands to be run with the -y
    option instead of the -a option.  This will tell fsck always  to
    repair the file systems without asking for permission.

Từ man tune2fs

If you are using journaling on your filesystem, your filesystem
will never be marked dirty, so it will not normally be checked.

Bắt đầu với

Thiết lập như sau

FSCKFIX=yes

trong file

/etc/default/rcS

Kiểm tra và lưu ý lần cuối fs đã được kiểm tra:

sudo tune2fs -l /dev/sda1 | grep "Last checked"

Hai tùy chọn này KHÔNG hoạt động

  1. Truyền đối số -F(buộc fsckkhởi động lại) vào shutdown:

    shutdown -rF now
    

    Không; xem : man shutdown.

  2. Thêm /forcefscktệp trống với:

    touch /forcefsck
    

    Các tập lệnh này dường như sử dụng điều này:

    /etc/init.d/checkfs.sh
    /etc/init.d/checkroot.sh
    

    đã không làm việc trên khởi động lại, nhưng các tập tin đã bị xóa.

    Xác nhận qua:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    sudo less /var/log/fsck/checkfs
    sudo less /var/log/fsck/checkroot
    

    Đây dường như là nhật ký cho các initkịch bản.

Tôi nhắc lại, hai tùy chọn này KHÔNG hoạt động!


Cả hai phương pháp này đều hoạt động DID

  1. công tắc khởi động kernel systemd-fsck

    Chỉnh sửa grubtập tin cấu hình chính :

    sudoedit /etc/default/grub
    
    GRUB_CMDLINE_LINUX="fsck.mode=force"
    
    sudo update-grub
    sudo reboot
    

    Điều này đã làm một kiểm tra hệ thống tập tin như được xác minh với:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

    Lưu ý: DID này kiểm tra, nhưng để buộc sửa quá, bạn cần chỉ định fsck.repair="preen", hoặc fsck.repair="yes".

  2. Sử dụng tune2fsđể đặt số lần gắn kết hệ thống tệp trước khi thực hiện fsck,man tune2fs

    tune2fs' info is kept in the file system superblock
    

    -c switch đặt số lần gắn kết fs trước khi kiểm tra fs.

    sudo tune2fs -c 1 /dev/sda1
    

    Xác minh với:

    sudo tune2fs -l /dev/sda1
    

    DID này hoạt động như được xác minh với:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

Tóm lược

Để buộc một fscklần khởi động trên Linux Mint 18.x, hãy sử dụng tune2fshoặc fsck.mode=force, với tùy chọn fsck.repair=preen/ fsck.repair=yes, chuyển đổi dòng lệnh kernel.

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.