"systemd" 충돌 후 fsck 디스크를 자동으로 강제 실행하는 방법은 무엇입니까?- 의미없어.
설정 fsck_y_enable="YES"
하고 아무것도 background_fsck="NO"
하지 /etc/rc.conf
않습니다.
내 루트 파일 시스템이 깨끗하지 않고 오류가 많이 있습니다(하드 드라이브나 하드웨어 손상이 아닌 정전으로 인한 예기치 않은 종료로 인해).
fsck
디스플레이 오류:
root@host2:/usr/home/alex # fsck
** /dev/mirror/gm0p2 (NO WRITE)
** Last Mounted on /
** Root file system
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
UNREF FILE I=8268305 OWNER=root MODE=140777
SIZE=0 MTIME=Jun 6 21:58 2014
CLEAR? no
[100줄 이상 건너뛰기]
서버에 대한 물리적 또는 KVM 액세스 권한이 없습니다. 이것이 gmirror
ed 드라이브 입니다
FreeBSD host2.domain.tld 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Thu Sep 26 22:50:31 UTC 2013 [email protected]:/usr/obj/usr/src/sys/GENERIC amd64
# Device Mountpoint FStype Options Dump Pass#
/dev/mirror/gm0p2 / ufs rw 1 1
/dev/mirror/gm0p3 none swap sw 0 0
답변1
FreeBSD에는 강제 제거 기능이 있으므로 실제로 부팅 시 이 작업을 수행할 필요가 없습니다. (원격으로) 로그인하고, rootfs를 읽기 전용으로 다시 마운트하고( mount -fur /
), fsck를 수동으로( fsck -y /
), 컴퓨터를 다시 시작하면 됩니다.
답변2
시작 프로세스 초기에(여전히 단일 사용자 모드에서) 명령을 실행해야 하는 경우 해당 명령을 셸 스크립트에 추가하세요./etc/rc.early
이와 같은 내용을 파일에 추가하면 fsck -fy /
강제로 검색되어 모든 프롬프트에 "예"라고 대답하게 됩니다.
rc.early
완료되면 제거하는 것을 잊지 마십시오. 그렇지 않으면 부팅할 때마다 실행됩니다.
답변3
/etc/rc.initial.reboot
다음 명령을 사용하여 nextboot
실행을 fsck
5회 다시 시작합니다.
/sbin/nextboot -e "pfsense.fsck.force=5"
수동으로 실행하거나 스크립트에 추가하여 fsck
다음 부팅 시 트리거할 수 있습니다.
버전 2.5.0에서 이것을 테스트했습니다.
답변4
FreeBSD 10.3부터 /etc/rc.d/root
run 을 일시적으로 수정하여 이를 수행 할 수 있습니다 /sbin/fsck -fy /
.
이것은 fsck를 실행하기 위해 주석 처리된 명령을 포함하도록 수정된 현재 스크립트입니다.
#!/bin/sh
#
# $FreeBSD: stable/10/etc/rc.d/root 177062 2008-03-11 17:21:14Z delphij $
#
# PROVIDE: root
# REQUIRE: fsck
# KEYWORD: nojail
. /etc/rc.subr
name="root"
start_cmd="root_start"
stop_cmd=":"
root_start()
{
# root normally must be read/write, but if this is a BOOTP NFS
# diskless boot it does not have to be.
#
case ${root_rw_mount} in
[Nn][Oo] | '')
;;
*)
# Uncomment the below line to run fsck on root during boot:
#/sbin/fsck -fy /
if ! mount -uw /; then
echo 'Mounting root filesystem rw failed, startup aborted'
stop_boot true
fi
;;
esac
umount -a >/dev/null 2>&1
# If we booted a special kernel remove the record
# so we will boot the default kernel next time.
if [ -x /sbin/nextboot ]; then
/sbin/nextboot -D > /dev/null 2>&1
fi
}
load_rc_config $name
run_rc_command "$1"