ブート時にルートファイルシステムチェック(およびオプションで修正)を強制するにはどうすればよいですか?


10

昨日、私たちのコンピューターの1つがgrubシェルに落ちたか、正直なところ、マシンの電源を入れたときのシェルが何であったかわかりません。

この意味では、ルートファイルシステムなどをマウントできないのは、矛盾があるためです。

私は走った、と私は信じています:

fsck -fy /dev/sda2

再起動し、問題はなくなりました。

ここに質問の部分があります:

私はすでに彼女のルートのcrontabにあります:

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

スクリプトには以下が含まれます。

#!/bin/bash
touch /forcefsck

考えてみればわかりませんが、なぜこのような短いコマンドのスクリプトファイルを作成したのかはわかりませんが、とにかく...

さらに、ファイルでは:

/etc/default/rcS

私は定義しました:

FSCKFIX=yes

だから私はそれを取得しません。どのようにして状況が発生する可能性がありますか?


ブート時にルートファイルシステムチェック(およびオプションで修正)を強制するにはどうすればよいですか?

または、これら2つのことは私ができる最大のものですか?

OS: Linux Mint 18.x Cinnamon 64ビット。

fstab

cat /etc/fstab | grep ext4

ショー:

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

grub

fsck.mode=force

はすでにgrub構成に追加されています。

回答:


12

ext4 起動中のファイルシステムチェック

OSでテスト済み:仮想マシンのLinux Mint 18.x

基本情報

/etc/fstab有しfsck、例えば、最後の(6)列として順番に:

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

FSCKFIX=yes 変数 /etc/default/rcS

これはfsckを自動修正に変更しますが、fsckチェックを強制しません

から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.

から man tune2fs

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

皮切りに

次の設定

FSCKFIX=yes

ファイル内

/etc/default/rcS

fsが最後にチェックされた時刻を確認してメモします。

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

これらの2つのオプションは機能しませんでした

  1. -Ffsck再起動時に強制)引数を渡すshutdown

    shutdown -rF now
    

    いいえ。参照してくださいman shutdown

  2. /forcefsck空のファイルを追加する:

    touch /forcefsck
    

    これらのスクリプトはこれを使用しているようです:

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

    再起動時に機能しませんでしたが、ファイルは削除されました。

    検証者:

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

    これらはinitスクリプトのログのようです。

繰り返しますが、これらの2つのオプションは機能しませんでした。


これらの方法はどちらも機能しました

  1. systemd-fsckカーネルブートスイッチ

    メインgrub構成ファイルの編集:

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

    これは、以下で確認されたファイルシステムチェックを行いました。

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

    注:これはチェックをDIDしましたが、修正を強制するにはfsck.repair="preen"、またはを指定する必要がありますfsck.repair="yes"

  2. を使用tune2fsする前に、を使用してファイルシステムのマウント数を設定しますfsckman tune2fs

    tune2fs' info is kept in the file system superblock
    

    -c スイッチは、fsをチェックする前にfsをマウントする回数を設定します。

    sudo tune2fs -c 1 /dev/sda1
    

    確認:

    sudo tune2fs -l /dev/sda1
    

    このDIDは、次のように動作確認されています。

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

概要

fsckLinux Mint 18.xですべての起動時にを強制するには、カーネルコマンドラインスイッチのtune2fs、またはfsck.mode=force、またはオプションのfsck.repair=preen/ を使用しfsck.repair=yesます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.