Есть свежепоставленный Debian 12, дефолтно вся память отдается для dom0, на что в дальнейшем будут обижаться domU. Есть в нем файлик /etc/default/grub.d/xen.cfg с таким началом:
# When running update-grub with the Xen hypervisor installed, there are
# some additional variables that can be used to pass options to the
# hypervisor or the dom0 kernel.
#
# The configuration in here makes it possible to have different options set
# for the linux kernel when booting with or without Xen.
echo "Including Xen overrides from /etc/default/grub.d/xen.cfg" >&2
#######################################################################
# Xen Hypervisor Command Line Options
#
# The first two options are used to generate arguments for the hypervisor.
# Commonly used options are:
#
# dom0_mem=<size> (for arm)
# dom0_mem=<size>,max:<size> (for x86)
dom0_mem=1280M,max:1536M
# Sets the amount of memory dom0 uses to a fixed size. All other memory
# will be usable for domUs. For x86, this prevents ballooning actions
# from happening to take away memory from the dom0 or return it back. For
# arm, setting this option is required. E.g. (for x86) dom0_mem=4G,max:4G
#
dom0_max_vcpus=2-8
# Limits the amount of physical cpus that dom0 is using, so it will not
*******************
(параметры переменных - это уже мое творчество). И таки да, при update-grub показывается «Including Xen overrides...». Но. Заданные параметры нигде не фигурируют и в дальнейшем не работают.
В том же файлике есть строка «GRUB_CMDLINE_XEN_DEFAULT=» - раскомментируем, добавляем:
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=2G,max:3G"
И таки да - параметры теперь передаются туда, куда надо:
xl dmesg | grep 'Command line'
(XEN) Command line: placeholder dom0_mem=2G,max:3G no-real-mode edd=off
(обрабатывается оно, если что, в /etc/grub.d/20_linux_xen - хз, зачем там оставлены «placeholder»). И да, после ребута таки имеем 2 ГБ памяти для dom0 и остальную свободную для domU:
# free -m
total used free shared buff/cache available
Mem: 1866 237 1503 0 157 1629
Swap: 1418 0 1418
# xl info | grep memo
total_memory : 65347
free_memory : 62649
sharing_freed_memory : 0
sharing_used_memory : 0
Собственно, вопрос - а те параметры, которые в «Xen Hypervisor Command Line Options» - они вообще где-то когда-то работают и чем они обрабатываются? Т.е., мне несложно впихнуть все в GRUB_CMDLINE_XEN_DEFAULT, но может я что-то делаю не так?