다시는 겪을 수 없는 극한의 상황에 직면했지만, 대비하고 싶었습니다. 메인 디스크에 4개의 파티션이 있는 임베디드 시스템(u-boot)이 있습니다. 파티션 중 하나는 rootfs( ext4
)인데 불행하게도 rw
. 거친 상호작용을 훌륭하게 처리 하지만 ext4
오늘 처음으로 문제를 발견했습니다. 설치는 계속 작동하지만 systemd-fsck-root.service
실패하고 계속하려면 CTRL-D가 필요하다는 메시지가 표시되고 를 실행하라는 메시지가 표시됩니다 fsck
.
systemd-fsck[1130]: /dev/mmcblk1p4: Superblock last mount time is in the future.
systemd-fsck[1130]: (by less than a day, probably due to the hardware clock being incorrectly set)
systemd-fsck[1130]: /dev/mmcblk1p4 contains a file system with errors, check forced.
systemd-fsck[1130]: /dev/mmcblk1p4: Inodes that were part of a corrupted orphan linked list found.
systemd-fsck[1130]: /dev/mmcblk1p4: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
systemd-fsck[1130]: (i.e., without -a or -p options)
systemd-fsck[1130]: fsck failed with error code 4.
systemd-fsck[1130]: Running request emergency.target/start/replace
initramfs
내 커널에는 백업 파티션이 없습니다 . 내가 가진 전부는 다음과 같습니다
- rootfs 옆에 대부분 사용되지 않는 파티션
switch_root
명령
내 계획은 다음과 같습니다.
- Linux를 실행하는 데 필요한 기본 파일을 다른 파티션에 복사하십시오.
fsck
rootfs를 복구하는 데 필요한 기타 콘텐츠를 빈 파티션에 복사합니다 .- 다른 파티션으로 점프
switch_root
- 기본 rootfs를 마운트 해제하고 fsck 복구를 수행합니다.
reboot
부트로더는 고정된 메인을 가리켜야 합니다.
내가 모르는 주요 사항은 다음과 같습니다.
- 이것이 작동할까요?
- 어떤 기본 서류가 필요합니까
#1
? 로드된 커널 모듈을 포함해야 합니까, 아니면 커널에 남아 있습니까? switch_root
점프를 용이하게 하는 매우 간단한 초기화 스크립트는 어떤 모습일까요 ?