grub2, usando variáveis para passar para a entrada do linux

1

Eu tenho a seguinte variável em um arquivo grub.cfg.

BOOT_PARAMETERS="rootwait rootfstype=ext4 rootimage=$BOOT_ROOT_IMAGE_NAME root=$ROOT_DEVICE console=none intel_idle.max_cstate=1 quiet"
BOOT_ROOT_INITRD=(hd0,gpt2)/boot1/initrd
BOOT_ROOT_KERNEL=(hd0,gpt2)/boot1/bzImage

Eu quero passar esses parâmetros para uma entrada no menu.

menuentry 'pc'{
linux $BOOT_ROOT_KERNEL $BOOT_PARAMETERS
initrd $BOOT_ROOT_INITRD
}

O BOOT_ROOT_KERNEL e o BOOT_ROOT_INITRD funcionam bem, mas os parâmetros não funcionam. Não tenho certeza de como ele quebra a inicialização, mas essa entrada de menu não inicializa. Se eu substituir $BOOT_PARAMETERS pelo conteúdo real da variável (sem aspas, funciona).

Além disso, o seguinte também funciona:

linux $BOOT_ROOT_KERNEL "$BOOT_PARAMETERS"

No entanto, o /proc/cmdline inclui essas citações e não quero interromper os aplicativos que estão lendo essa saída.

Como faço para que isso funcione?

linux $BOOT_ROOT_KERNEL $BOOT_PARAMETERS

Editar : Na linha de comando do grub, se eu fizer echo $BOOT_PARAMETERS , o flash da máquina será reinicializado. Se eu fizer echo "$BOOT_PARAMETERS" , ele será impresso normalmente.

Edit2 : parece ter a ver com grandes variáveis de ambiente. Fazer set TEST="SFSFESFSEFDFUIHI rg s rjg sreuigsrgi sig isdfjgs dfkgd" , seguido por echo $TEST , causará algumas vezes . Isso acontece em um certo comprimento / combinação, e eu não posso colocar meu dedo nela. Se isso não acontecer na primeira tentativa, continue anexando o material a TEST e, em seguida, o echo $TEST causará uma reinicialização em flash.

    
por Paul Knopf 17.11.2017 / 15:00

0 respostas