マウントされたファイルシステムを修正するには、再起動時にファイルシステムチェックを強制する必要があります。私が見つけたすべてのコマンド/メソッドは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
一度だけ修復するために、次回の再起動時にファイルシステムのチェックとエラーの修正を強制するにはどうすればよいですか?
おそらくこれを処理する最良の方法は、システムをシングルユーザーモードで再起動し、手動でfsck
を実行することです。何らかの理由でそれが選択肢にない場合、それを処理する次善の方法は、いくつかのrc.conf
ノブをいじることです。具体的には、これら:
background_fsck="NO"
fsck_y_enable="YES"
fsck_y_flags="-f"
再起動すると、rc
サブシステムが自動的に処理します。 rc.early
は2007年にFreeBSDで 非推奨 であったことに注意してください。
私にとって、
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がない場合はリスクになる可能性があるためです。あなたがすべきこと。
FreeBSDは強制アンマウントを適切に機能しているので、起動時にこれを行う必要はありません。 (リモートで)ログインし、rootfsを読み取り専用として再マウントします(mount -fur /
)、手動でfsckを実行します(fsck -y /
)次に、マシンを再起動します。