커널 업데이트 후 커널 이미지 복사

커널 업데이트 후 커널 이미지 복사

저는 systemd-boot 및 UEFI 부팅 시스템을 사용하는 시스템에서 ArchLinux를 사용하고 있습니다. 새 커널 업데이트를 받으면 새 커널이 내 에 생성되지만 /bootUEFI-Boot 파티션 /boot/efi/boot/efi/EFI/arch/.

커널을 업데이트할 때마다 my에서 my로 파일을 복사 .img하는 후크를 어디에서 구성할 수 있나요 ?vmlinuz-linux/boot/boot/efi/EFI/arch/

답변1

질문에 대한 답변이 없었고 동일한 문제가 있었기 때문에 나만의 방법을 작성했습니다. 아마도 향후 검색자에게 도움이 될 수 있습니다.

저는 Kali를 사용하고 있는데 커널이 업그레이드되었기 때문에 작동하는지 확인할 수 없습니다. (최종적으로 확인되면 이 답변을 업데이트하겠습니다.)

/etc/kernel/postinst.d예를 들어, 다음과 유사한 내용을 포함하는 파일 zz_systemd_boot(grub 파일은 다음으로 시작하므로 zz파일이 알파벳순으로 실행된다고 가정함)을 생성합니다.

#!/bin/sh

echo Copy files for systemd-boot

cp /initrd.img /mnt/boot/kali/initrd.img
cp /vmlinuz /mnt/boot/kali/vmlinuz

파일을 실행 가능하게 만듭니다.chmod 755 zz_systemd_boot

답변2

레거시 대신 uefi를 사용해도 커널 이미지의 위치는 변경되지 않습니다. UEFI 부트로더를 사용하고 있으며 이미지가 모두 부팅됩니다.

비교를 위해 내 부팅 파티션은 다음과 같습니다.

$ find /boot/ -type d
/boot/
/boot/grub
/boot/grub/backup
/boot/grub/fonts
/boot/grub/x86_64-efi
/boot/grub/i386-pc
/boot/grub/locale
/boot/efi
/boot/efi/EFI
/boot/efi/EFI/debian
/boot/efi/EFI/boot
/boot/efi/EFI/ubuntu
/boot/efi/EFI/ubuntu/fw
/boot/efi/EFI/grub

/boot/efi/EFI 디렉터리에는 uefi 부팅 이미지가 포함되어 있습니다.

$ find /boot/efi/EFI/ -type f
/boot/efi/EFI/debian/grubx64.efi
/boot/efi/EFI/debian/grubx64.efi.bkup1
/boot/efi/EFI/boot/bootx64.efi
/boot/efi/EFI/boot/bootx64.efi.old
/boot/efi/EFI/boot/grubx64.efi
/boot/efi/EFI/ubuntu/fwupx64.efi
/boot/efi/EFI/ubuntu/grubx64.efi
/boot/efi/EFI/ubuntu/grub.cfg
/boot/efi/EFI/ubuntu/shimx64.efi
/boot/efi/EFI/ubuntu/MokManager.efi
/boot/efi/EFI/ubuntu/grubx64.efi.old
/boot/efi/EFI/grub/grubx64.efi

"/boot/grub/x86_64-efi" 디렉터리에는 모든 UEFI 모드 파일이 포함되어 있습니다.

$ find /boot/grub/x86_64-efi -type f | head -10
/boot/grub/x86_64-efi/ufs2.mod
/boot/grub/x86_64-efi/minix3.mod
/boot/grub/x86_64-efi/date.mod
/boot/grub/x86_64-efi/odc.mod
/boot/grub/x86_64-efi/lvm.mod
/boot/grub/x86_64-efi/font.mod
/boot/grub/x86_64-efi/reboot.mod
/boot/grub/x86_64-efi/file.mod
/boot/grub/x86_64-efi/functional_test.mod
/boot/grub/x86_64-efi/ohci.mod

내 Linux 이미지는 모두 "/boot/"에 저장되어 있습니다.

$ find /boot -maxdepth 1 -type f -iname "vmlin*" | head -10
/boot/vmlinuz-4.4.8-M1.old
/boot/vmlinuz-4.8.5-MX1
/boot/vmlinuz-4.8.2-MX1.old
/boot/vmlinuz-4.8.5-MXC2.old
/boot/vmlinuz-4.3.0-1-amd64
/boot/vmlinuz-4.4.8-M1
/boot/vmlinuz-4.8.2-MX1
/boot/vmlinuz-4.8.5-MX1.old
/boot/vmlinuz-4.4.8-M3
/boot/vmlinuz-4.4.5-M1

관련 정보