"systemd" 충돌 후 fsck 디스크를 자동으로 강제 실행하는 방법은 무엇입니까?

"systemd" 충돌 후 fsck 디스크를 자동으로 강제 실행하는 방법은 무엇입니까?

충돌 후 systemd자동 강제 fsck디스크(하드 종료)를 설정하는 방법은 무엇입니까?

sysvinit해킹을 사용할 때 (Arch Linux에서) /sbin/init: 파일을 rc.local생성할 때 ; 있는 경우 부팅 시 강제 fsck를 활성화합니다 ./forcefsckrc.local.shutdownrc.sysinit/forcefsck

동일한 작업을 수행하는 방법은 무엇입니까 systemd? fsck휴식 후 자동 기능이 내장 되어 있을까요 ?

답변1

fsck시작 시 fsck.mode=force( 검사를 완전히 건너뛰는 데 사용할 수 있는 auto기본값 )을 전달하여 skip이를 강제 할 수 있습니다 .커널 명령줄 매개변수( systemdv. 에서213및 두 번째 매개변수: fsck.repair- fsck시작 시 비정상 파일 시스템을 처리하는 방법을 제어합니다. 가능한 값은 다음과 같습니다. preen안전하게 고칠 수 있는 항목을 복구하고 yes모든 질문에 "예"로 대답하며 no기본값입니다.


알아채다systemd-fsck 특정 파일 시스템에 대한 세부 정보를 알지 못하며 각 파일 시스템 유형에 특정한 파일 시스템 검사기만 수행합니다(/sbin/fsck.*).
이제 파일 시스템이 xfs또는 이면 btrfs각각 /sbin/fsck.xfs또는 을 수행합니다 /sbin/fsck.btrfs. 이것이 작동하지 않는 것 같으면 fsck.xfs매뉴얼 페이지를 또는 별도로 확인 fsck.btrfs하고 에 언급된 파일의 내용을 확인 해야 할 것입니다 /sbin.

답변2

BTRFS 시스템을 확인하는 유일한 방법은 자체 도구를 사용하는 것이며 btrfs check루트 볼륨을 마운트 해제해야 하므로 유일한 옵션은 실제로 livecd에서 부팅하는 것입니다.

fsck.btrfs메시지를 인쇄하고 다른 작업을 수행하지 않는 단순한 스텁인 call 로 끝나는 제안은 잘못된 것입니다. 여기에는 fsck.mode커널 명령줄 옵션이나 파일에 대한 답변 도 포함됩니다 ..forcefsck

[root@nuc ~]# cat /usr/sbin/fsck.btrfs
#!/usr/bin/sh -f
AUTO=false
while getopts ":aApy" c
do
    case $c in
    a|A|p|y)    AUTO=true;;
    esac
done
shift $(($OPTIND - 1))
eval DEV=\${$#}
if [ ! -e $DEV ]; then
    echo "$0: $DEV does not exist"
    exit 8
fi
if ! $AUTO; then
    echo "If you wish to check the consistency of a BTRFS filesystem or"
    echo "repair a damaged filesystem, see btrfs(8) subcommand 'check'."
fi
exit 0

그러나 정전이나 유사한 상황이 발생한 후 모든 것이 괜찮은지 확실하지 않은 경우 btrfs check마운트된 파일 시스템에 대해 읽기 전용 검사를 수행할 수 있습니다.

[root@nuc ~]# btrfs check --readonly --force /dev/sda5
Opening filesystem to check...
WARNING: filesystem mounted, continuing because of --force
Checking filesystem on /dev/sda5
UUID: 8c44de9c-c91b-4ac4-857b-da191dc62274
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 3628683264 bytes used, no error found
total csum bytes: 3093864
total tree bytes: 136937472
total fs tree bytes: 126074880
total extent tree bytes: 6455296
btree space waste bytes: 23047273
file data blocks allocated: 5676253184
 referenced 4705763328

관련 정보