У меня есть следующая переменная в 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
Я хочу передать эти параметры в запись меню.
menuentry 'pc'{
linux $BOOT_ROOT_KERNEL $BOOT_PARAMETERS
initrd $BOOT_ROOT_INITRD
}
BOOT_ROOT_KERNEL
и BOOT_ROOT_INITRD
хорошо работает, но параметры не работают. Я не уверен, как это повреждает начальную загрузку, но эта запись меню не загрузится. Если я заменяю $BOOT_PARAMETERS
с фактическим содержанием переменной (без кавычек, это работает).
Кроме того, следующие работы также:
linux $BOOT_ROOT_KERNEL "$BOOT_PARAMETERS"
Однако /proc/cmdline
включает те кавычки, и я не хочу повреждать приложения, которые читают этот вывод.
Как я заставляю это работать?
linux $BOOT_ROOT_KERNEL $BOOT_PARAMETERS
Править: В командной строке личинки, если я делаю echo $BOOT_PARAMETERS
, перезагрузки флэш-памяти машины. Если я делаю echo "$BOOT_PARAMETERS"
, это обычно печатает.
Edit2: Это, кажется, имеет отношение к переменным крупной среды. Выполнение set TEST="SFSFESFSEFDFUIHI rg s rjg sreuigsrgi sig isdfjgs dfkgd"
, сопровождаемый echo $TEST
будет иногда вызывать его. Это происходит в определенной длине/комбинации, и я не могу указать на него. Если этого не происходит на первой попытке, продолжайте добавлять материал к TEST
, затем echo $TEST
в конечном счете вызовет перезагрузку флэш-памяти.