私のUbuntuはすべてのブートアップでfsckを実行しています


19

すべての起動時に同じです:

/dev/sda1: clean, 908443/38690816 files, 44176803/154733312 blocks

ファイルシステムの一貫性を確保するためにUbuntuが使用する何らかの種類のオプションですか、それとも私のHDDに何か問題がありますか?fsck起動中に最大30秒かかるため、それ以外の場合は約3倍の時間がかかります。

完全な出力(一部はドイツ語):

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck von util-linux 2.20.1
/dev/sda1: sauber, 908443/38690816 Dateien, 44176803/154733312 Blöcke
udevd[623]: unknown key 'SYSFS{idVendor}' in /lib/udev/rules.d/45-libticables.rules:6

udevd[623]: invalid rule '/lib/udev/rules.d/45-libticables.rules:6'

 * Starting mDNS/DNS-SD daemon                                                 [ OK ]
 * Starting Reload cups, upon starting avahi-daemon to make sure remote queues are populated                                                                   [ OK ]
 * Starting configure network device security                                  [ OK ]
 * Starting bluetooth daemon                                                   [ OK ]
 ####* Starting all other stuff

どのバージョンのUbuntuを実行していますか?システムは正常にシャットダウンしますか?
ubfan1

x64 = 13.04 64ビットのRaring シャットダウンはできる限りきれいに実行されます(シャットダウンログファイルはどこにありますか)
s3lph

1
fsckは、実行されなかった、ボリュームがクリーンだったと言います。
-psusi

しかし、チェックコンポーネントは、クリーンであると言うために実行する必要があります。
s3lph

回答:


25

/ dev / sda1:clean、908443/38690816ファイル、44176803/154733312ブロック

そのメッセージを生成する行はこれです:

/* Print the summary message when we're skipping a full check */
log_out(ctx, _("%s: clean, %u/%u files, %llu/%llu blocks"),

「完全なチェック」をスキップしますが、ジャーナルに対する高速テストの一部がクリーンで、孤立したiノードがないことを確認しただけです。

cat /var/log/boot.log 
fsck from util-linux 2.20.1
fsck from util-linux 2.20.1
/dev/sda1: clean, 260598/771552 files, 1684682/3080192 blocks
/dev/sdb10: recovering journal
/dev/sdb10: Clearing orphaned inode 142568 (uid=1000, gid=1000, mode=0100664, size=32768)
/dev/sdb10: Clearing orphaned inode 138527 (uid=1000, gid=1000, mode=0100600, size=9580)
/dev/sdb10: clean, 54957/991232 files, 3498365/3958006 blocks

これは正常で予想されることです。それが本当に徹底的なチェックだった場合、それははるかに時間がかかりますが、通常は1秒以下かかります。Systemdのsystemd-fsck(8)マニュアルページには、完全なチェックがトリガーされる条件があります。

systemd-fsck-root.serviceは、ルートファイルシステムがinitramfsでチェックされなかった場合にのみ、ルートファイルシステムのファイルシステムチェックを行います。systemd-fsck @ .serviceは、他のすべてのファイルシステムおよびinitramfsのルートファイルシステムに使用されます。

ファイルシステムの/ etc / fstabのpassnoがゼロより大きい値に設定されている場合、これらのサービスはブート時に開始されます。ルートのファイルシステムチェックは、他のファイルシステムの前に実行されます。同じ回転ディスク上にある場合を除き、他のファイルシステムを並行してチェックできます。

systemd-fsckは特定のファイルシステムに関する詳細を認識せず、各ファイルシステムタイプ(/sbin/fsck.*)に固有のファイルシステムチェッカーを実行するだけです。このヘルパーは、最後のチェックからの時間、マウント数、アンマウントのアンマウントなどに基づいて、ファイルシステムを実際にチェックするかどうかを決定します。

(systemdを使用している場合)テストの実行にほとんど何もかかっていないことを簡単に確認できます。

sudo systemd-analyze blame | grep fsck
          1.608s systemd-fsck@dev-disk-by\x2duuid-408535fe\x2d28e6\x2d4d82\x2dbb59\x2d9810ead089a3.service
            87ms systemd-fsck@dev-mapper-vlhome\x2dlvhome.service

リンクのqに対する答えは、を変更することで動作を制御できると言っています/etc/fstab。この「高速」テストをいつ実行するかを設定することしかできないのです0か、1それともシステムに伝えることができますか?
s3lph

@the_Seppiいいえ、fstabでfsckを無効にすることはできませんが、順序、私のこの他の答えはそれを説明し、ちょうどそれの終わりについて読んでください。
Braiam

私が0の場合は無効に最後の数字を変更するとマウントでfsckことを読んで
s3lph

@the_Seppiええ、あなたは正しいです、1そして2チェックされる順序を決定しますが、0または誰もそれを必要としないと言います。しかし、その後、私は両方の値が0になっていて、まだチェックを受けています。
Braiam

2
ランチパッドにバグが報告されています:upstart bug#1504688コメント#17に可能な解決策が含まれています。
アズールキン

1

udevdに関連する次のコンソールメッセージが30秒かかるだけでなく、30秒かかっているのはfsckですか?言い換えれば、コンソールメッセージを表示する前に、udevdがlibticablesの処理をタイムアウトするのに30秒かかっているのでしょうか?

削除(または一時的に他の場所に移動)してみてください

/lib/udev/rules.d/45-libticables.rules

それが役立つかどうかを確認します。


いいえ、間違いなくfsckです。Running /scripts/init-bottom ...done約3秒で約30Sのfsck-きれいに印刷されます。
s3lph

どのタイプのファイルシステムを使用していますか?
ジョセフサンタニエロ

私はEXT4使用しています
s3lph

「fsck von ...」を出力する前、または「/ dev / sda ...」の前に一時停止しますか?
ジョセフ・サンタニエロ

/ dev / sda1をどこにマウントしますか?noauto,x-systemd.automount/ homeなどの場合、fstabオプションに:を追加してみてください。そのため、システムは次のようにアクセスされるまでマウントをスキップします:wiki.archlinux.org/index.php/Systemd#Automount
ジョセフサンタ

0

クロックが正しくないため、すべてのブートでこのfsckが発生しました。systemd-fsck @はsystemd-timesyncdの前に実行され、バッテリーでバックアップされたRTCがないと、fsckの実行時にシステム時間が間違っているようです。

systemd-timesyndを無効にし、journalctlで見つかった同期前の値にクロックを設定し、fsckを実行することで、これが実際に(fsckをすばやく終了するのではなく)完全チェックをトリガーすることを確認しました。e2fsckは、最後のスーパーブロック書き込み時間が将来であることを検出すると、フルチェックを実行します。

fsck from util-linux 2.29.2
e2fsck 1.43.4 (31-Jan-2017)
Superblock last write time (Mon Jun 19 00:48:11 2017,
    now = Tue Jan 31 20:09:28 2017) is in the future.
Fix<y>? yes
Pass 1: Checking inodes, blocks, and sizes
...

完全チェックのこのトリガーは、dumpe2fs -h他の回答に記載されているにある、最後のチェック以降の最大マウント数と時間間隔の他のトリガーとは無関係であることに注意してください。

クロックを設定しない(つまり、timesyncdに同期させる)と、fsckは完全なチェックを行わず、「filesystem clean」メッセージですぐに終了することに注意してください。

回避策として、「pass」フィールドを0に設定して/ etc / fstabのfsckを無効にしました。最終的に、このデバイス用のバッテリーバックアップRTCを購入します。


-1

私の検索では、Ubuntuのデフォルトの最大マウントカウントが-1に設定されているという結論に至りました。これは、マウント数に関係なく、ブート時にfsckが実行されないことを意味します。コマンドで自分のものを確認できます-

sudo dumpe2fs -h /dev/sda8 | grep -i 'mount count'

を使用して要件に応じて増やすことができますtune2fs。典型的な例は次のとおりです-

sudo tune2fs -c 30 -i 1w /dev/sda8

必要に応じてカスタマイズしてください。


1
いいえ、それは値がカーネルとe2fsckによって取り消されることを意味します:linux.die.net/man/8/tune2fs "max-mount-countsが0または-1の場合、ファイルシステムがマウントされた回数は無視されますe2fsck(8)とカーネルによる。」
HappyCactus

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