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"; }