initramfs에서 루트 파일 시스템 마운트

initramfs에서 루트 파일 시스템 마운트

일반적인 시나리오입니다. 어떤 이유로든 initramfs(중요한 경우 OpenSUSE)가 루트 파일 시스템을 찾는 데 실패하여 복구 쉘로 이동합니다. 그래도 어떤 장치를 장착해야 하는지 완벽하게 알고 있습니다. 내 질문:

루트 파일 시스템을 마운트하고 부팅 순서를 계속하는 올바른 절차는 무엇입니까?

아마 그게 전부인 것 같아가리키다구조 콘솔의. 그러나 실제로 이 작업을 수행하는 방법을 문서화한 사람은 아무도 없는 것 같습니다.

분명히 루트 파일 시스템을 어딘가에 마운트할 수 있습니다. 하지만 어떻게 그렇게 만들 수 있나요?뿌리파일 시스템 트리의? 이제 그 이후에는 정상적인 부팅 프로세스를 계속 진행합니까? (셸을 종료하면 된다고 생각했는데... 그렇지 않습니다.) 계속하기 전에 마운트하려면 정확히 무엇이 필요하며 어떻게 계속합니까?

답변1

exec switch_root /mnt/root /sbin/init

https://wiki.gentoo.org/wiki/Custom_Initramfs#Init

답변2

문제의 종류에 따라 다릅니다. 문제가 initramfs 이미지 자체에 문제가 있는 경우 문제를 해결하려면 실제로 이미지를 재생성해야 합니다(update-initramfs 실행). initramfs 파일 시스템은 RAM 파일 시스템이므로 문제를 해결하려면 압축된 initramfs 이미지를 수정하거나 루트 파일 시스템을 수정해야 합니다.

잘못된 crypttab으로 인해 손상된 부팅을 재개하기 위해 LUKS 암호화된 Ubuntu 시스템에서 다음 절차를 사용했습니다.

먼저 파티션의 암호를 해독했습니다.

cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

device_crypt무작위가 아니라는 점에 유의하세요 . 시스템을 마운트할 때 일반적으로 사용되는 이름과 일치해야 합니다(partition + _crypt가 표준인 것 같습니다).

다음으로, 현재 암호가 해독된 파티션에서 볼륨 그룹을 활성화해야 합니다.

vgchange -ay

이제 파일 시스템, /, /boot, proc, swap 등을 마운트하고 그런 식으로 실행되도록 할 수 있습니다.

내 경우에는 종료를 입력하기만 하면 initramfs가 거기에 있는 논리 볼륨을 확인하고 부팅을 다시 시작했습니다. 그 시점에서는 손상을 수리하고 실행하는 것이 쉬웠습니다.update-initramfs -u

답변3

fsck옵션 없이 간단히 명령을 실행한 initramfs후 재부팅하세요.

예: 루트 파티션은 다음과 같습니다.sda3

fsck /dev/sda3

답변4

정상적인 절차는

  1. 마운트 /dev/sdX /mnt
  2. /mnt 문제 해결
  3. 재부팅

당신은 원할 수도 있습니다

  1. 마운트 /dev/sdX /mnt
  2. /mnt 수정
  3. 마운트 해제 /mnt
  4. 마운트 /dev/sdX /
  5. 수동으로 부팅 완료

이는 권장되지 않습니다. 부팅할 때마다 수행해야 합니다. 프로덕션 환경에서는 수동 부팅이 자동 부팅과 동일한 단계를 따르는지 확신할 수 없습니다.

그러나 중요한 데이터가 있는 긴급 상황에서는 일반적으로 5단계를 다음과 같이 요약합니다.

  • 5.1 네트워크 설정
  • 5.2 중요한 파일을 안전한 곳에 복사하세요

관련 정보