debootstrap chroot에 grub 설치 및 구성

debootstrap chroot에 grub 설치 및 구성

부트로딩에 관해서는 지식 격차가 너무 커서 실제로 학습을 연습하고 있습니다. 전용 테스트 서버가 있고 debootstrap을 사용하여 hetznerrescue를 통해 Linux를 설치하려고 합니다. (bash 스크립트로 작성됨)

내 문제는 UEFI/GPT용 grub을 올바르게 설치하는 방법을 모른다는 것입니다. ArchWiki 관련 콘텐츠를 읽었습니다.

https://wiki.archlinux.org/title/Installation_guide#
https://wiki.archlinux.org/title/Advanced_Format#
https://wiki.archlinux.org/title/Partitioning#
https://wiki.archlinux.org/title/GRUB

펌웨어 Linux를 설치할 때 첫 번째 오류가 발생합니다.

ln: failed to create hard link '/boot/initrd.img-6.1.0-13-amd64.dpkg-bak' => '/boot/initrd.img-6.1.0-13-amd64': Operation not permitted

그렇다면 chroot에서 /boot를 /로 마운트하는 방법에 문제가 있을 수 있습니까?

두 번째 문제는 grub을 설치할 때 발생합니다.

root@rescue:/# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
Installing for x86_64-efi platform.
grub-install: warning: efivarfs_get_variable: open(/sys/firmware/efi/efivars/blk0-47c7b225-c42a-11d2-8e57-00a0c969723b): No such file or directory.
grub-install: warning: efi_get_variable: ops->get_variable failed: No such file or directory.
grub-install: warning: efi_va_generate_file_device_path_from_esp: could not open device for ESP: Bad address.
grub-install: warning: efi_generate_file_device_path_from_esp: could not generate File DP from ESP: Bad address.
grub-install: error: failed to register the EFI boot entry: Bad address.

제가 하고 있는 전체 단계는 다음과 같습니다. ( $disk_list/ $disk는 /dev/nvme0n1 및 /dev/nvme1n1입니다.)

parted -s $disk mklabel gpt
parted -s $disk mkpart primary fat32 1M 1024M
parted -s $disk mkpart primary linux-swap 1025M 5120M
parted -s $disk mkpart primary ext4 5121M 100%

mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 /dev/nvme0n1p1 /dev/nvme1n1p1
mkfs.fat -F32 /dev/md0

mkswap /dev/nvme0n1p2
mkswap /dev/nvme1n1p2

mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/nvme0n1p3 /dev/nvme1n1p3
mkfs.ext4 /dev/md2

mount --mkdir /dev/md2 /mnt/md2
mount --mkdir /dev/md0 /mnt/md2/boot

debootstrap --arch amd64 --include=linux-image-amd64,locales,locales-all,bash-completion,pwgen,htop,sudo,screen,rsync,ncdu,openssh-server,openssh-client,iotop,zip,unzip,zstd,mdadm,initramfs-tools bookworm /mnt/md2 https://deb.debian.org/debian

mount --make-rslave --rbind /proc /mnt/md2/proc
mount --make-rslave --rbind /sys /mnt/md2/sys
mount --make-rslave --rbind /dev /mnt/md2/dev
mount --make-rslave --rbind /run /mnt/md2/run

/etc/fstab
UUID=UUID-of-/dev/md0 /boot vfat defaults 0 2
UUID=UUID-of-/dev/nvme0n1p2 none swap sw 0 0
UUID=UUID-of-/dev/nvme1n1p2 none swap sw 0 0
UUID=UUID-of-/dev/md2 / ext4 defaults 0 1

sources.list
deb http://deb.debian.org/debian bookworm main non-free-firmware
deb-src http://deb.debian.org/debian bookworm main non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware

chroot /mnt/md2 /bin/bash
export TMPDIR="/tmp"
localectl set-locale LANG=de_DE.UTF-8 && \
timedatectl set-timezone UTC && \
apt-get update && \
apt-get upgrade -y && \
apt-get install firmware-linux && \
apt-get install grub-common grub-efi-amd64 os-prober -y && \
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

누군가 내가 보고 무엇을 잘못하고 있거나 놓쳤는지 설명할 수 있습니까?

관련 정보