web-dev-qa-db-ja.com

FreeBSD10で再起動時にfsckを強制するにはどうすればよいですか?

マウントされたファイルシステムを修正するには、再起動時にファイルシステムチェックを強制する必要があります。私が見つけたすべてのコマンド/メソッドはFreeBSD10では廃止されています

[\u@vader:/root] # tune2fs -c 1 /dev/vtbd0p2
tune2fs: not found
[\u@vader:/root] # pkg install tune2fs
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
pkg: No packages available to install matching 'tune2fs' have been found in the repositories

一度だけ修復するために、次回の再起動時にファイルシステムのチェックとエラーの修正を強制するにはどうすればよいですか?

2
nix

おそらくこれを処理する最良の方法は、システムをシングルユーザーモードで再起動し、手動でfsckを実行することです。何らかの理由でそれが選択肢にない場合、それを処理する次善の方法は、いくつかのrc.confノブをいじることです。具体的には、これら:

background_fsck="NO"
fsck_y_enable="YES"
fsck_y_flags="-f"

再起動すると、rcサブシステムが自動的に処理します。 rc.earlyは2007年にFreeBSDで 非推奨 であったことに注意してください。

3
D_Bye

私にとって、

background_fsck="NO"
fsck_y_enable="YES"
fsck_y_flags="-f"

アプローチも機能していません(異なる10.xバージョン)。だから私はこの「汚い」ハックを/etc/rc.d/root

--- /tmp/root.orig  2018-06-09 00:56:23.089825000 +0200
+++ /etc/rc.d/root  2018-06-09 00:56:03.831574000 +0200
@@ -22,6 +22,9 @@
    [Nn][Oo] | '')
        ;;
    *)
+                # Uncomment the below line to run FORCED fsck on ALL mounts in /etc/fstab during boot:
+                /sbin/fsck -fy || /sbin/fsck -fy
+
        if ! mount -uw /; then
            echo 'Mounting root filesystem rw failed, startup aborted'
            stop_boot true

そうすれば、それは確かに機能しています。 [〜#〜] warning [〜#〜]:これを実行した後、/ sbin/fsck ...行に再度コメントします。これは時間がかかり、fsckがない場合はリスクになる可能性があるためです。あなたがすべきこと。

2
Jimmy Koerting

_tune2fs_は e2fsprogs のツールでext2/3/4ファイルシステムを処理します:)

FreeBSD UFSの場合、 tunefs を使用できますが、fsckに関連するものを設定することはできません。再起動後にfsckを強制することについて 長い議論 があります。このスレッドからの最良の答えは "しない" であり、_background_fsck="YES"_または 強制 _/etc/rc.early_経由:

_echo '/sbin/fsck -y -f' >> /etc/rc.early_

1
ckujau

FreeBSDは強制アンマウントを適切に機能しているので、起動時にこれを行う必要はありません。 (リモートで)ログインし、rootfsを読み取り専用として再マウントします(mount -fur /)、手動でfsckを実行します(fsck -y /)次に、マシンを再起動します。