오류 코드 8로 인해 systemd-fsck가 실패했습니다. 시작 시 디스크를 복구할 수 없습니다.

오류 코드 8로 인해 systemd-fsck가 실패했습니다. 시작 시 디스크를 복구할 수 없습니다.

두 개의 파티션이 있습니다. 하나는 RO 루트 파일 시스템용(mmcblk3p1)이고 다른 하나는 RW 기본 파티션용(mmcblk3p2)입니다. systemd-fsck파티션을 수동으로 손상시켰을 때 파티션을 복구할 수 없는 이유를 이해할 수 없습니다 .

dd if=/dev/zero bs=1 count=1000 of=/dev/mmcblk3p2 seek=1000

5초 이내에 파티션을 수동으로 복구할 수 있으므로 문제는 libsystemd-fsck 내에 있어야 합니다.

e2fsck /dev/mmcblk3p2 -y

내 fstab은 부팅 시 두 파티션을 모두 확인하도록 구성되어 있으며 커널 구성은 fsck에게 복구를 시도하도록 지시합니다.

Kernel command line: console= consoleblank=0 vt.global_cursor_default=0 fsck.mode=auto fsck.repair=yes root=/dev/mmcblk3p1 rootfstype=ext4 rootwait ro

fsck가 시작 중에 복구를 시도하면 즉시 오류가 발생하는 것 같습니다. 일지에서 오류를 볼 수 있습니다.

journalctl | grep fsck

Jan 02 21:43:05 systemd-fsck[192]: e2fsck 1.43-WIP (18-May-2015)
Jan 02 21:43:05 systemd-fsck[192]: /dev/mmcblk3p1: clean, 9287/192576 files, 139802/192512 blocks
Jan 02 21:43:07 systemd-fsck[673]: e2fsck 1.43-WIP (18-May-2015)
Jan 02 21:43:07 systemd-fsck[673]: /dev/mmcblk3p2: recovering journal
Jan 02 21:43:07 systemd-fsck[673]: /dev/mmcblk3p2 contains a file system with errors, check forced.
Jan 02 21:43:07 systemd-fsck[673]: Pass 1: Checking inodes, blocks, and sizes
Jan 02 21:43:07 systemd-fsck[673]: fsck: Warning... fsck.ext4 for device /dev/mmcblk3p2 exited with signal 13.
Jan 02 21:43:07 systemd-fsck[673]: fsck failed with error code 8.
Jan 02 21:43:07 systemd-fsck[673]: Ignoring error.
Jan 02 21:43:07 kernel: EXT4-fs (mmcblk3p2): warning: mounting unchecked fs, running e2fsck is recommended

신호 13과 오류 코드 8은 문제의 근본 원인을 파헤치는 데 큰 도움이 되지 않습니다. 온라인에서 찾을 수 있는 유일한 다른 질문은 다음과 같습니다.이것Ubuntu 메일링 리스트에 있지만 systemd-fsck 30초 시간 초과와 관련된 버그에 관한 것입니다.

나는 더 이상 사용되지 않는 4.1.38 커널과 함께 systemd-229를 사용하고 있지만 이것이 내가 사용해야 하는 것입니다.

편집: 결국 systemd-fsck@device 전에 e2fsck를 실행하는 또 다른 서비스를 만들었습니다. 이렇게 하면 발견된 문제가 자동으로 해결되고 성공적으로 반환됩니다.

[Unit]
Description=File System Check on /dev/mmcblk3p2
DefaultDependencies=no
BindsTo=dev-mmcblk3p2.device
After=dev-mmcblk3p2.device systemd-fsck-root.service local-fs-pre.target
Before=shutdown.target [email protected]

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/e2fsck /dev/mmcblk3p2 -y
TimeoutSec=0
SuccessExitStatus=1 2

[Install]
WantedBy=multi-user.target

관련 정보