FreeBSD10에서 재부팅 시 fsck를 강제하는 방법은 무엇입니까?

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

파일 시스템 검사를 강제로 수행하고 다음 재부팅 시 오류를 한 번에 수정하려면 어떻게 해야 합니까?

답변1

이를 처리하는 가장 좋은 방법은 시스템을 단일 사용자 모드로 재부팅하고 수동으로 수행하는 것입니다 fsck. 어떤 이유에서든 이 방법이 효과가 없을 경우 이를 처리하는 차선책은 rc.conf손잡이 몇 개를 돌리는 것입니다. 구체적으로 다음과 같습니다.

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

재부팅하면 rc하위 시스템이 이를 처리합니다. 이는rc.early더 이상 사용되지 않음FreeBSD는 2007년부터 사용되었습니다.

답변2

나를 위한,

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

이렇게 하면 확실히 작동합니다. 경고하다:이 명령을 실행한 후 /sbin/fsck... 행을 다시 주석 처리합니다. 시간이 걸리고 fsck를 수행해야 하는 작업이 아닌 경우 위험할 수 있습니다.

답변3

tune2fs의 도구입니다e2fsprogsext2/3/4 파일 시스템 작업용 :)

FreeBSD UFS의 경우,곡조작동하지만 아무것도 fsck설정할 수 없습니다. 하나 있다긴 토론fsck재부팅 후 강제와 관련하여 이 스레드의 가장 좋은 대답은 다음과 같습니다."아니요"그리고 의지 background_fsck="YES"하거나강제로통과하다 /etc/rc.early:

echo '/sbin/fsck -y -f' >> /etc/rc.early

답변4

FreeBSD에는 강제 제거 기능이 있으므로 실제로 부팅 시 이 작업을 수행할 필요가 없습니다. (원격으로) 로그인하고, rootfs를 읽기 전용으로 다시 마운트하고( mount -fur /), fsck를 수동으로( fsck -y /), 컴퓨터를 다시 시작하면 됩니다.

관련 정보