diff options
Diffstat (limited to 'user/lilo/partuuid.patch')
-rw-r--r-- | user/lilo/partuuid.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/user/lilo/partuuid.patch b/user/lilo/partuuid.patch new file mode 100644 index 000000000..a1a4fcc10 --- /dev/null +++ b/user/lilo/partuuid.patch @@ -0,0 +1,65 @@ +Enable usage of PARTUUID if /etc/fstab uses it for the root filesystem. +While we're here, make the generated labels for the kernel choices more +descriptive as well. + +--- lilo-24.2/src/bsect.c 2011-06-22 02:09:44.000000000 -0500 ++++ lilo-24.2/src/bsect.c 2020-03-19 07:59:59.819990912 -0500 +@@ -1098,6 +1098,9 @@ if (image) { /* long section specific to + else if (strlen(root)>5 && !strncmp(root,"UUID=",5)) { + sprintf(strchr(options,0),"root=%s ", root); + } ++ else if (strlen(root)>9 && !strncmp(root,"PARTUUID=",9)) { ++ sprintf(strchr(options,0),"root=%s ", root); ++ } + else { + sprintf(strchr(options,0),"root=%x ",dev_number(root)); + } +--- lilo-24.2/scripts/liloconfig 2015-11-21 18:00:21.000000000 -0600 ++++ lilo-24.2/scripts/liloconfig 2020-03-19 14:36:22.710002318 -0500 +@@ -217,11 +218,12 @@ sub convert_root_device { + $found = 0; + } + } +- elsif ($rootpart =~ /^UUID/ or $rootpart =~ /^LABEL/) { ++ elsif ($rootpart =~ /^(PART)?UUID/ or $rootpart =~ /^LABEL/) { + $root_link = $rootpart; + $root_link =~ s{\"}{}g; + $root_link =~ s{^LABEL=}{/dev/disk/by-label/}; + $root_link =~ s{^UUID=}{/dev/disk/by-uuid/}; ++ $root_link =~ s{^PARTUUID=}{/dev/disk/by-partuuid/}; + + if (-l $root_link) { + $root_id = $rootpart; +@@ -610,6 +610,7 @@ sub write_image_config { + my $initrd2; + my $nr; + my $nr2; ++ my $label; + + # append to new lilo.conf + open(MYFH_NEW, ">> $liloconfnew") or die "Cannot open file: $!"; +@@ -627,18 +628,16 @@ sub write_image_config { + $initrd2 = $initrd; + $initrd2 =~ s/\.img//; + $nr2 = $nr + 1; ++ $label = $image; ++ $label =~ s@/boot/vmlinuz-@@; ++ $label =~ s/-[^-]*$//; ++ $label = substr $label, 0, 15; + + print MYFH_NEW 'image = ' . $image . "\n"; + if($opt_v) { print 'image = ' . $image . "\n"; } + +- if ($nr == 0) { +- print MYFH_NEW "\t" . 'label = "Linux"' . "\n"; +- if($opt_v) { print "\t" . 'label = "Linux"' . "\n"; } +- } +- elsif ($nr == 1) { +- print MYFH_NEW "\t" . 'label = "Linux Old"' . "\n"; +- if($opt_v) { print "\t" . 'label = "Linux Old"' . "\n"; } +- } ++ print MYFH_NEW "\t" . "label = \"$label\"" . "\n"; ++ if($opt_v) { print "\t" . "label = \"$label\"" . "\n"; } + + print MYFH_NEW "\t" . 'read-only' . "\n"; + if($opt_v) { print "\t" . 'read-only' . "\n"; } |