null

"Error: diskfilter writes are not supported" при создании software RAID для /boot раздела в Debian 11

На этапе разбивки диска при инсталяции Debian 11 на будущий продуктивный сервер - была необходимость в использовании RAID1 для /boot раздела средствами инсталятора Debian (mdadm). Остальные разделы были помещены в LVM с аналогичным software RAID1 в другой md группе.

​​​​​​​После этапа установки базовой системы, инсталятор не смог автоматически установить GRUB и предложил указать раздел самостоятельно, что также не помогло и установщик сообщал об ошибке grub-install. Переключившись в другой tty была замечена строка об ошибке со следующим содержанием: "Error: diskfilter writes are not supported".

​​​​​​​Сразу хочется сообщить, что данная ошибка проявляется очень давно: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754921

Что такое diskfilter? Это модуль GRUB, который проверяет правильность чтения и записи для RAID, а для LVM модуль называется lvm.

При загрузке системы, GRUB обращается к файлу /boot/grub/grubenv​​​​​. Данный файл необходим для записи состояния загрузки, например запоминание выбора необходимого ядра при следующей перезагрузке системы. GRUB даёт возможность записать необходимое количество информации в данном "Environment-block".

Команда load_env в GRUB загружает все переменные в Environment-block, а команда save_env сохраняет их для последующего сохранения состояния при перезагрузке.

​​​​​​​Исходя из документации "The GRUB environment block":

"For safety reasons, this storage is only available when installed on a plain disk (no LVM or RAID), using a non-checksumming filesystem (no ZFS), and using BIOS or EFI functions (no ATA, USB or IEEE1275)."

Данная выдержка сообщает о том, что команда save_env может работать только в простых установках и не даёт возможности её использования внутри RAID или LVM инсталяции.

Более подробно об Environment-block: https://www.gnu.org/software/grub/manual/grub/html_node/Environment-block.html#Environment-block

Workaround.

​​​​​​​Самое простое - использование простой инсталяции /boot раздела и при необходимости его backup на другой диск, например rsync в связке с cron на нужный период времени.

Второе - в скрипте "/etc/grub.d/00_header" выставить quick_boot=0​​​​​​​, но после изменения данной переменной - не будет возможности использования функций GRUB меню.

 

 

 

Коротко о себе:



​​​​​​​​​​​​​​Работаю инженером в компании Tune-it.

Ничего не найдено. n is 0