ext4起動時にファイルシステムを確認する

ext4起動時にファイルシステムを確認する

昨日、私たちのコンピュータの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つが私ができる最大のものですか?

オペレーティングシステム:Linux Mint 18.xシナモン64ビット。

fstab:

cat /etc/fstab | grep ext4

示す:

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

grub:

fsck.mode=force

grub設定に追加されました。

ベストアンサー1

ext4起動時にファイルシステムを確認する

テストオペレーティングシステム:仮想マシンの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. -F(強制fsck再起動)引数を次に渡します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

繰り返します。どちらのオプションも機能しません!


どちらの方法も機能します。

  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"
    

    注:これした確認してください。ただし、強制的に修理するには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
    

    これした実績のある作業:

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

一般化する

fsckLinux Mint 18.xから起動するたびに強制的に実行するにはtune2fs、またはfsck.mode=forceおよびオプションfsck.repair=preen/fsck.repair=yesカーネルコマンドラインスイッチを使用します。

おすすめ記事