
내가 달성하려는 것은 SSH를 통해 부팅 시 잠금이 해제되는 Raspberry Pi(Raspian Buster 실행)에 암호화된 루트 파일 시스템을 갖는 것입니다. 적응해서 꽤 나아졌어칼리 리눅스 튜토리얼적어도 한 번은 작동했지만 아직 커널 업데이트에서는 유지되지 않습니다.
문제 중 하나는 이 설정이 /boot/config.txt
다음 에서 참조되는 initramfs를 사용하고 있다는 것입니다.
initramfs initramfs.gz followkernel
예를 들어 커널 업데이트 후에 수동으로 호출하여 업데이트해야 합니다.
mkinitramfs -o /boot/initramfs.gz 4.19.118-v7+
여기서는 4.19.118-v7+
현재 커널 버전과 사용되는 Raspberry Pi 하드웨어 종류에 따라 다릅니다. 물론 apt upgrade
새 커널을 설치할 때마다 이 작업이 자동으로 수행되도록 하고 싶습니다.
여기에서 두 가지 문제가 발생했습니다.
- A) 적절한 방법으로 업데이트 프로세스를 어디에 어떻게 연결합니까?
- B) 사용할 올바른 커널 버전을 어떻게 결정합니까?
raspberrypi-kernel.postinst
A) 실행하는 학습까지 왔습니다 /etc/kernel/postinst.d/
. 이것은 /usr/sbin/update-initramfs
결국 호출할 호출을 다시 호출합니다 mkinitramfs
. 내가 혼란스러워하는 부분은 다음 코드였습니다 /usr/sbin/update-initramfs
.
set_initramfs()
{
initramfs="${BOOTDIR}/initrd.img-${version}"
}
initramfs의 파일 이름을 결정합니다. 업데이트 중에 그러한 파일이 생성된 적이 없으며 내가 올바른 방향으로 가고 있는지 확실하지 않습니다.위키피디아init.rd 체계가 initramfs 체계로 대체되었다고 말합니다. 그러나 커널 모듈 업그레이드 후 어떤 일이 발생해야 하는지 설명하는 좋은 문서를 찾을 수 없었습니다. (좋은 링크 감사합니다).
그래서 내 질문은: 명령을 실행하는 스크립트를 연결하기에 좋은 장소는 어디입니까 mkinitramfs
? 수정해야 합니까 /etc/kernel/postinst.d/
? 이 솔루션은 다음 몇 가지 Debian 버전에서 안정적일까요?
B)에 관해서는 다음을 사용하여 사용 가능한 커널 버전을 얻는 것이 쉽습니다.
> ls -l /lib/modules/ | awk -F" " '{print $9}'`
5.4.51+
5.4.51-v7+
5.4.51-v7l+
5.4.51-v8+
하지만 현재 하드웨어에 적합한 것을 자동으로 선택하려면 어떻게 해야 합니까? Pi3B+의 경우 이는 5.4.51-v7+
. 이것을 자동으로 결정하는 방법이 있습니까?
당신의 도움을 주셔서 대단히 감사합니다!
답변1
제안된 대로 업데이트하려면 initramfs를 INITRD=Yes
설정 /etc/default/raspberrypi-kernel
하고 업데이트 후 스크립트를 추가하여 활성화해야 하는 것 같습니다 ./etc/initramfs/post-update.d/
/boot/config.txt
커널 업데이트 후 intramfs 업데이트#608.
이것이 효과가 있기를 바랍니다 ...