고쳐 쓰다. 이 문제는 2017년 12월 커널 업데이트로 해결되었습니다. 문제가 무엇인지 알 수 없었습니다. 그러나 돌이켜보면 동시에 발생한 다른 문제로 인해 아마도 디스크 UIID를 작성할 때의 호환성 문제에서 비롯되었을 것입니다.예 혹은 아니오하이픈: Linux에서는 하이픈이 필요하지만 GRUB에서는 그렇지 않습니다.
난 달린다포물선리눅스linux-libre 커널 4.11.9-gnu-1
과자유롭게 이끌 수 있다내 컴퓨터에.
질문: 최근에 시스템(
pacman -Syu
)을 업데이트했는데 부팅 프로세스가 실패했습니다. 특히 커널은 실제 시스템이 있는 논리 볼륨을 찾을 수 없는 것 같습니다. 내가 얻는 오류는 다음과 같습니다.ERROR: device '/dev/aether/core/' not found. Skipping fsck.
이 문제를 해결하거나 진단하는 데 도움을 주시면 대단히 감사하겠습니다. 나는 이것을 스스로 이해하기에는 너무 적게 이해하고 필사적입니다.
다음으로 문제에 대해 더 자세히 설명하고 지금까지 수행한 작업을 설명하겠습니다.
이게 내 설정이야core
: 완전히 암호화된 단일 파티션이 있는 SSD(Solid State Disk)가 있고 그 위에 이름이 볼륨 그룹에 있는 논리 볼륨이 있습니다 aether
. 내 시스템/루트 디렉토리는 논리 볼륨에 있습니다 core
. (암호화는 디스크에 사용되고 cryptsetup
관리는 논리 볼륨에 사용됩니다 lvm
.)
(내 설명에 따라) 시작하면 이런 일이 발생합니다.
부트로딩 단계.
Libreboot가 GRUB를 성공적으로 로드했습니다.
GRUB은 암호화된 파티션을 해독하기 위해 비밀번호를 요청했습니다.
ㅏ. 비밀번호를 입력합니다.
b. GRUB는 암호화된 파티션을 성공적으로 해독합니다.
GRUB가 커널 이미지와 initramfs를 성공적으로 로드합니다.
커널 단계. 다음과 같은 일이 발생합니다.
…
:: running early hook [udev]
…
:: running early hook [lvm2]
…
:: running hook [encrypt]
Waiting 10 seconds for device /dev/aether/core ...
[ 4.250559] sd 4:0:0:0: [sdb] No Caching mode page found.
[ 4.250612] sd 4:0:0:0: [sdb] Assuming drive cache: write through
ERROR: device '/dev/aether/core/' not found. Skipping fsck.
:: mounting '/dev/aether/core' on real root
mount: you must specify the filesystem type
You are now being dropped into an emergency shell.
sh: can't access tty; job control turned off
[rootfs ]#
로 표현된 일부 정보가 누락되었습니다 …
. 전체 로그는 다음과 같습니다.여기, 하지만 나머지는 도움이 되지 않는다고 생각합니다.
GRUB는 Libreboot의 펌웨어에 구성되어 있습니다. 나에게 관련 부분은 다음과 같습니다 grub.cfg
.
cryptomount -a
set root=lvm/aether-core
linux /boot/vmlinuz-linux-libre root=/dev/aether/core cryptdevice=/dev/disk/by-uuid/〈uuid of the encrypted partition〉:core cryptkey=rootfs:/etc/〈keyfile〉
initrd /boot/initramfs-linux-libre.img
그러나 문제는 GRUB 자체에 있다고 생각하지 않습니다.
내가 한 일들. 내 시스템에 성공적으로 들어갔습니다. 내부에서는 /dev/aether/core
존재합니다. 비밀번호와 키 파일 모두 암호화된 파티션의 잠금을 성공적으로 해제했습니다. 또한 커널을 4.10.*-
(부팅할 수 있는 일부 버전) 로 다운그레이드하려고 시도했지만 그것도 도움이 되지 않았습니다. 문제가 지속됩니다.
이 문제비슷한 문제를 포함합니다. 차이점은 한편으로는 올바른 장치 이름이 오류 메시지에 참조되어 있지만 어쨌든 찾을 수 없다는 것입니다. 또한 비상 쉘에 들어갈 수 있습니다.
여기서 문제가 무엇입니까? 이 문제를 어떻게 해결할 수 있나요?
답변1
내 생각엔 당신이 initramfs에 존재하지 않는 일부 udev 이름 지정에 의존하고 있는 것 같습니다. 즉, 암호화된 파티션은 해독되지만 /dev/aether/core에 연결되지 않습니다.
UUID나 이름으로 루트 파티션을 지정하거나 chroot에 사용한 장치 이름을 사용하는 것이 좋습니다.
이 모든 것은 암호화 외에 LVM을 사용하지 않는다고 가정합니다.
답변2
업데이트에 명시된 대로:
이 문제는 2017년 12월 커널 업데이트로 해결되었습니다. 문제가 무엇인지 알 수 없었습니다. 그러나 돌이켜보면 동시에 발생한 다른 문제로 인해 아마도 디스크 UIID를 작성할 때의 호환성 문제에서 비롯되었을 것입니다.예 혹은 아니오하이픈: Linux에서는 하이픈이 필요하지만 GRUB에서는 그렇지 않습니다.
그러나 이것은 단지 커널 버그일 가능성이 높습니다.
그러나 동시에 비슷한 문제에 직면했습니다. (또는 정확히 동일할 수도 있지만 기억이 나지 않습니다.) 해결책은 GRUB 구성에서 서로 다른 UUID를 사용하는 것입니다. 하나는 GRUB용이고 다른 하나는 Linux용입니다. 구체적으로, 라인에서
linux /boot/vmlinuz-linux-libre root=/dev/aether/core cryptdevice=/dev/disk/by-uuid/〈uuid of the encrypted partition〉:core cryptkey=rootfs:/etc/〈keyfile〉
⟨uuid of the encrypted partition⟩
읽어야 합니다그리고하이픈, ⟨uuid of the encrypted partition⟩
동안
cryptomount -u ⟨uuid of the encrypted partition⟩
읽어야합니다아니요하이픈. (이 줄은 cryptomount -a
원래 질문의 줄을 대체합니다.)