[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [GRUB PARTUUID PATCH V10 4/4] Update grub script template files
From: |
Nick Vinson |
Subject: |
Re: [GRUB PARTUUID PATCH V10 4/4] Update grub script template files |
Date: |
Tue, 17 Apr 2018 08:20:45 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
On 04/17/2018 06:36 AM, Daniel Kiper wrote:
> On Mon, Apr 16, 2018 at 10:36:26PM -0700, Nicholas Vinson wrote:
>> Update grub-mkconfig.in and 10_linux.in to support grub-probe's new
>> partuuid target. Update grub.texi documentation. The following table
>> shows how GRUB_DISABLE_LINUX_UUID, GRUB_DISABLE_LINUX_PARTUUID, and
>> initramfs detection interact:
>>
>> Initramfs GRUB_DISABLE_LINUX_PARTUUID GRUB_DISABLE_LINUX_UUID Linux Root
>> detected Set Set ID Method
>>
>> false false false part UUID
>> false false true part UUID
>> false true false dev name
>> false true true dev name
>> true false false fs UUID
>> true false true part UUID
>> true true false fs UUID
>> true true true dev name
>>
>> Note: GRUB_DISABLE_LINUX_PARTUUID and GRUB_DISABLE_LINUX_UUID equate to
>> 'false' when unset or set to any value other than 'true'.
>> GRUB_DISABLE_LINUX_PARTUUID defaults to 'true'.
>> Signed-off-by: Nicholas Vinson <address@hidden>
>> ---
>> docs/grub.texi | 67 ++++++++++++++++++++++++++++++++++---
>> util/grub-mkconfig.in | 3 ++
>> util/grub.d/10_linux.in | 22 ++++++++++--
>> util/grub.d/20_linux_xen.in | 22 ++++++++++--
>> 4 files changed, 104 insertions(+), 10 deletions(-)
>>
>> diff --git a/docs/grub.texi b/docs/grub.texi
>> index 0f2ab91fc..6aa65552f 100644
>> --- a/docs/grub.texi
>> +++ b/docs/grub.texi
>> @@ -1214,10 +1214,11 @@ GRUB is configured using @file{grub.cfg}, usually
>> located under
>> need to write the whole thing by hand.
>>
>> @menu
>> -* Simple configuration:: Recommended for most users
>> -* Shell-like scripting:: For power users and developers
>> -* Multi-boot manual config:: For non-standard multi-OS scenarios
>> -* Embedded configuration:: Embedding a configuration file into GRUB
>> +* Simple configuration:: Recommended for most users
>> +* Root Identifcation Heuristics:: Summary on how the root file system is
>> identified.
>> +* Shell-like scripting:: For power users and developers
>> +* Multi-boot manual config:: For non-standard multi-OS scenarios
>> +* Embedded configuration:: Embedding a configuration file into GRUB
>> @end menu
>>
>>
>> @@ -1425,6 +1426,17 @@ the Linux kernel, using a @samp{root=UUID=...} kernel
>> parameter. This is
>> usually more reliable, but in some cases it may not be appropriate. To
>> disable the use of UUIDs, set this option to @samp{true}.
>>
>> address@hidden GRUB_DISABLE_LINUX_PARTUUID
>> +If @command{grub-mkconfig} cannot identify the root filesystem via its
>> +universally-unique indentifier (UUID), @command{grub-mkconfig} can use the
>> UUID
>> +of the partition containing the filesystem to identify the root filesystem
>> to
>> +the Linux kernel via a @samp{root=PARTUUID=...} kernel parameter. This is
>> not
>> +as reliable as using the filesystem UUID, but is more reliable than using
>> the
>> +Linux device names. When @samp{GRUB_DISABLE_LINUX_PARTUUID} is set to
>> address@hidden, the Linux kernel version must be 2.6.37 (3.10 for systems
>> using
>> +the MSDOS partition scheme) or newer. This option defaults to @samp{true}.
>> To
>> +enable the use of partition UUIDs, set this option to @samp{false}.
>> +
>> @item GRUB_DISABLE_RECOVERY
>> If this option is set to @samp{true}, disable the generation of recovery
>> mode menu entries.
>> @@ -1556,6 +1568,53 @@ edit the scripts in @file{/etc/grub.d} directly.
>> menu entries; simply type the menu entries you want to add at the end of
>> that file, making sure to leave at least the first two lines intact.
>>
>> address@hidden Root Identifcation Heuristics
>> address@hidden Root Identifcation Heuristics
>> +If the target operating system uses the Linux kernel,
>> @command{grub-mkconfig}
>> +attempts to identify the root file system via a heuristic algoirthm. This
>> +algorithm selects the identification method of the root file system by
>> +considering three factors. The first is if an initrd for the target
>> operating
>> +system is also present. The second is @samp{GRUB_DISABLE_LINUX_UUID} and
>> if set
>> +to @samp{true}, prevents @command{grub-mkconfig} from identifying the root
>> file
>> +system by its UUID. The third is @samp{GRUB_DISABLE_LINUX_PARTUUID} and if
>> set
>> +to @samp{true}, prevents @command{grub-mkconfig} from identifying the root
>> file
>> +system via the UUID of its enclosing partition. If the variables are
>> assigned
>> +any other value, that value is considered equivalent to @samp{false}. The
>> +variables are also considered to be set to @samp{false} if they are not set.
>> +
>> +When booting, the Linux kernel will delegate the task of mounting the root
>> +filesystem to the initrd. Most initrd images determine the root file
>> system by
>> +checking the Linux kernel's command-line for the @samp{root} key and use its
>> +value as the identification method of the root file system. To improve the
>> +reliability of booting, most initrd images also allow the root file system
>> to be
>> +identified by its UUID. Because of this behavior, the
>> @command{grub-mkconfig}
>> +command will set @samp{root} to @samp{root=UUID=...} to provide the initrd
>> with
>> +the filesystem UUID of the root file system.
>> +
>> +If no initrd is detected or @samp{GRUB_DISABLE_LINUX_UUID} is set then
>
> s/set/set to @samp{true}/?
Yes. Thanks.
>
>> address@hidden will identify the root filesystem by setting the kernel
>> +command-line variable @samp{root} to @samp{root=PARTUUID=...} unless
>> address@hidden is also set to @samp{true}. If
>> address@hidden is also set to @samp{true},
>> address@hidden will identify by its LInux device name.
>
> s/LInux/Linux/g
ack.
>
>> +
>> +The following table summarizes the behavior of the @command{grub-mkconfig}
>> +command.
>> +
>> address@hidden {detected} {GRUB_DISABLE_LINUX_PARTUUID}
>> {GRUB_DISABLE_LINUX_UUID} {Linux Root}
>> address@hidden Initrd detected @tab GRUB_DISABLE_LINUX_PARTUUID Set To @tab
>> GRUB_DISABLE_LINUX_UUID Set To @tab Linux Root ID Method
>> address@hidden false @tab false @tab false
>> @tab part UUID
>> address@hidden false @tab false @tab true
>> @tab part UUID
>
> I hope that you have tested these two settings and they work. If yes then
> I am happy with all the patches. If there are no objections I will commit
> all of them in a week or so. I will fix both nitpicks listed above just
> before commit.
I did. I've added a test script and its output at the bottom of this email.
Thanks,
Nicholas Vinson
>
> Daniel
>
==========
test.sh
==========
#/bin/sh
[[ -f Makefile ]] && make distclean &>/dev/null
echo "Configuring GRUB..."
./configure --prefix=$PWD/image CFLAGS="-Wno-error" --with-platform=efi
&>/dev/null \
|| { echo "configure failed"; exit 1; }
echo "Building GRUB..."
make -j9 &>/dev/null || { echo "make failed"; exit 1; }
echo "Installing GRUB..."
make install &>/dev/null; echo $? || { echo "make install failed"; exit 1; }
GRUB_MKCONFIG="$PWD/image/sbin/grub-mkconfig"
echo "Disabling submenu and recovery entries..."
export GRUB_DISABLE_SUBMENU=y GRUB_DISABLE_RECOVERY=true
rm -f /boot/initramfs*
rm -f /boot/*xen*
echo ""
echo "****************************************"
echo "* *"
echo "* 10_linux script test *"
echo "* *"
echo "****************************************"
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
touch /boot/initramfs-4.16.2-gentoo.img
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+linux\|[12]0_linux')"
rm -f /boot/initramfs*
cp /boot/config-4.16.2-gentoo{,.orig}
echo "CONFIG_XEN_DOM0=y" >> /boot/config-4.16.2-gentoo
touch /boot/xen
echo ""
echo "****************************************"
echo "* *"
echo "* 20_linux script test *"
echo "* *"
echo "****************************************"
echo ""
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
echo ""
echo "No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
touch /boot/initramfs-4.16.2-gentoo.img
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=false"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
echo ""
echo "INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true
GRUB_DISABLE_LINUX_UUID=true"
export GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
echo "$($GRUB_MKCONFIG 2>/dev/null | grep
'[[:space:]]\+module\|[12]0_linux')"
rm -f /boot/initramfs*
rm /boot/xen
mv /boot/config-4.16.2-gentoo{.orig,}
==========
test.log
==========
Configuring GRUB...
Building GRUB...
Installing GRUB...
0
Disabling submenu and recovery entries...
****************************************
* *
* 10_linux script test *
* *
****************************************
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo
root=PARTUUID=ff807b48-63c7-41ff-a0b4-0de6b83278b9 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo
root=PARTUUID=ff807b48-63c7-41ff-a0b4-0de6b83278b9 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo root=/dev/sdg2 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo root=/dev/sdg2 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo
root=UUID=962d87b1-d7b4-465a-9ea7-01c6a20439a5 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo
root=PARTUUID=ff807b48-63c7-41ff-a0b4-0de6b83278b9 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo
root=UUID=962d87b1-d7b4-465a-9ea7-01c6a20439a5 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
linux /vmlinuz-4.16.2-gentoo root=/dev/sdg2 ro
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
****************************************
* *
* 20_linux script test *
* *
****************************************
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder
root=PARTUUID=ff807b48-63c7-41ff-a0b4-0de6b83278b9 ro
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder
root=PARTUUID=ff807b48-63c7-41ff-a0b4-0de6b83278b9 ro
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder root=/dev/sdg2 ro
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
No INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder root=/dev/sdg2 ro
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder
root=UUID=962d87b1-d7b4-465a-9ea7-01c6a20439a5 ro
module --nounzip /initramfs-4.16.2-gentoo.img
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=false GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder
root=PARTUUID=ff807b48-63c7-41ff-a0b4-0de6b83278b9 ro
module --nounzip /initramfs-4.16.2-gentoo.img
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=false
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder
root=UUID=962d87b1-d7b4-465a-9ea7-01c6a20439a5 ro
module --nounzip /initramfs-4.16.2-gentoo.img
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
INITRAMFS GRUB_DISABLE_LINUX_PARTUUID=true GRUB_DISABLE_LINUX_UUID=true
### BEGIN /data/nvinson/grub/image/etc/grub.d/10_linux ###
### END /data/nvinson/grub/image/etc/grub.d/10_linux ###
### BEGIN /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###
module /vmlinuz-4.16.2-gentoo placeholder root=/dev/sdg2 ro
module --nounzip /initramfs-4.16.2-gentoo.img
### END /data/nvinson/grub/image/etc/grub.d/20_linux_xen ###