GRUB에서 ID 또는 제목으로 대체 항목을 설정하는 방법은 무엇입니까?

GRUB에서 ID 또는 제목으로 대체 항목을 설정하는 방법은 무엇입니까?

ID별로 대체 항목을 설정하거나 하위 메뉴에서 항목을 선택하려면 어떻게 해야 합니까? 현재 유효한 유일한 옵션은 번호가 매겨진 항목(예: set fallback=0)을 사용하는 것입니다.

배경

우리 팀은 Debian을 실행하는 장치를 원격으로 업데이트합니다. 이러한 장치는 원격으로 배포되므로 물리적 또는 KVM 액세스가 거의 없으므로 실행 가능한 솔루션이 아닙니다. 새 시스템 이미지를 동일한 파티션(이 경우 /dev/sda2)에 복사합니다.

root@widget:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    1 186.3G  0 disk
├─sda1   8:1    1   953M  0 part /boot
├─sda2   8:2    1  23.3G  0 part /
├─sda3   8:3    1  23.3G  0 part /alt 

파티션을 다시 마운트한 후 /alt이미지가 손상되지 않았는지 확인하고 싶습니다. 이를 테스트하기 위해 사용자 정의 항목을 만듭니다(예 newimg: /etc/grub.d/40_custom). ( )로 시작하는 UUID는 xxxxxxxx마운트된 파티션이고, ( )로 시작하는 UUID는 마운트된 파티션입니다./bootdev/sda1yyyyyyyy//dev/sda3

menuentry 'Debian 10 (buster) newimg' --id newimg {
        insmod part_msdos
        insmod ext2
        search --no-floppy --fs-uuid --set=root xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        linux /vmlinuz-4.2 root=UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy ro nomodeset panic=5 quiet
        initrd /initrd.img-4.2
}
set fallback='1>2'

다음으로 재부팅을 실행 update-grub하고 수행합니다. grub-reboot newimg이미지가 손상된 경우 터미널에 대한 액세스 권한을 잃지 않도록 대체 이미지가 필요합니다. 과거에는 첫 번째 grub 메뉴 항목을 대체( set fallback=0)로 사용했습니다. 그러나 new는 /vmlinuz-4.2최신 또는 항목 내에서 사용되므로 0무의미하게 대체됩니다. 손상된 이미지를 사용하여 대체를 테스트해 왔습니다 vmlinuz-4.2. ~에 따르면GRUB 문서,

항목은 숫자(계층 구조의 각 수준에서 0부터 시작), 제목 또는 ID로 식별할 수 있습니다.

그러나 내가 본 유일한 방법은 숫자를 사용하는 것입니다(하위 메뉴 항목도 작동하지 않습니다). 다른 모든 옵션의 경우 다음 오류 메시지가 나타납니다 Failed to boot both default and fallback entries.

내가 시도한 것들:

  • 폴백을 ( ) 40_custom로 변경하면 항목이 선택되지만 대신 ... 동일한 손상된 vmlinuz 이미지가 선택됩니다 .set fallback='1>2'Advanced options for Debian GNU/Linux > Debian GNU/Linux, with Linux 4.111>01>21>0
  • defaultimg또한 이전 커널( )을 사용하여 다른 사용자 정의 부팅 항목을 추가 set fallback=defaultimg하려고 시도했으며 defaultimg.
  • set작은따옴표와 큰따옴표 없이 처음 두 옵션을 변경해 보았습니다 .

GRUB 버전:2.02+dfsg1-20

관련 정보