Grub 사용자 정의 메뉴 항목이 잘못된 파티션을 부팅합니다.

Grub 사용자 정의 메뉴 항목이 잘못된 파티션을 부팅합니다.

파티션 1에 Linux가 설치되어 있고 파티션 2에 EFI 부팅이 설치된 외장 SSD 드라이브가 있습니다.

파티션 3에 두 번째 Linux 설치가 있지만 저는 그것을 사용하지 않습니다.

그런 다음 ext4 파티션에는 두 개의 서로 다른 라이브 시스템에 대한 두 개의 파티션(4와 5)이 있습니다.

Grub은 첫 번째 파티션에서 grub.cfg를 검색한 다음 동일한 파티션의 디렉터리에서 custom.cfg 및 custom2.cfg를 검색합니다 /boot/grub/.

custom.cfg루트 파티션을 hd1,gpt4.

custom2.cfg루트 파티션을 hd1,gpt5.

문제는 custom2.cfg메뉴 항목을 실행하려고 할 hd1,gpt4hd1,gpt5.

이것이 /etc/grub.d/41_custom엔딩을 만드는 것 입니다 grub.cfg.

#!/bin/sh
cat <<EOF

search --no-floppy --fs-uuid --set=prefix1 --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1  4787b339-ad49-4744-8d9a-9f0e95b78af2

if [ -f  \${config_directory}/custom.cfg ]; then
  source \${config_directory}/custom.cfg
elif [ -z "\${config_directory}" -a -f  \$prefix1/custom.cfg ]; then
  source \$prefix1/custom.cfg
fi
if [ -f  \${config_directory}/custom2.cfg ]; then
  source \${config_directory}/custom2.cfg
elif [ -z "\${config_directory}" -a -f  \$prefix1/custom2.cfg ]; then
  source \$prefix1/custom2.cfg
fi
EOF

이것은 custom.cfg:

# Live boot
menuentry "Live system (amd64) toram sda4" {
    search.fs_uuid 7f492729-d71b-4811-80e1-13a9e7943cf6 root hd1,gpt4
    linux   /live/vmlinuz toram=filesystem.squashfs boot=live components quiet 
    initrd  /live/initrd.img
}

이것은 custom2.cfg:

# Live boot
menuentry "Live system (amd64) toram sda5" {
    search.fs_uuid be7cf5ce-ac26-41ee-bf26-3c1f10f0521a root hd1,gpt5
    linux   /live/vmlinuz toram=filesystem.squashfs boot=live modprobe.blacklist=nouveau components quiet
    initrd  /live/initrd.img
}

부팅 메뉴에서 이 항목 편집을 눌러 보았는데 e올바른 항목이 표시되었습니다.

또한 명령의 결과는 다음과 같습니다 blkid.

/dev/sdb1: LABEL="LINUX1" UUID="4787b339-ad49-4744-8d9a-9f0e95b78af2" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="LINUX1" PARTUUID="b43aa19d-ad07-4fe9-ba0c-dec43cb11e79"
/dev/sdb2: UUID="4C68-92D0" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="ea5e7013-fe47-49c1-a2f7-abd1cb9b790f"
/dev/sdb3: LABEL="LINUX2" UUID="5afc0ee0-ac59-4c59-985f-2ab8107a0d82" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="LINUX2" PARTUUID="035360f4-7634-4d24-8900-0f9ada81c709"
/dev/sdb4: LABEL="LIVE" UUID="7f492729-d71b-4811-80e1-13a9e7943cf6" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="LIVE" PARTUUID="a7b77431-a1b8-487d-80d2-8ef09b7add0f"
/dev/loop0: TYPE="squashfs"
/dev/sdb5: LABEL="LIVE2" UUID="be7cf5ce-ac26-41ee-bf26-3c1f10f0521a" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="LIVE2" PARTUUID="d77ffe57-e841-4890-938c-6d1997a96332"
/dev/sda: PTUUID="a6f73218-8327-45b9-981c-bae22eeb475c" PTTYPE="gpt"

hd1,gpt4그렇다면 왜 grub 부팅이 필요한지 궁금합니다 hd1,gpt5.

관련 정보