nixos/grub: change state file device separator from ':' to ','
':' is currently used as separator in /boot/grub/state for the list of devices GRUB should be installed to. The problem is that ':' itself may appear in a device path: /dev/disk/by-id/usb-SanDisk_Cruzer_20043512300546C0B317-0:0 With such a path, NixOS will install GRUB *every* time, because it thinks the configuration differs from the state file (due to the wrong list split). Fix it by using ',' as separator. For existing systems with GRUB installed on multiple devices, this change means that GRUB will be installed one extra time.
This commit is contained in:
parent
071faa71e7
commit
aeb516c741
1 changed files with 2 additions and 2 deletions
|
@ -501,7 +501,7 @@ sub getEfiTarget {
|
|||
my @deviceTargets = getDeviceTargets();
|
||||
my $efiTarget = getEfiTarget();
|
||||
my $prevGrubState = readGrubState();
|
||||
my @prevDeviceTargets = split/:/, $prevGrubState->devices;
|
||||
my @prevDeviceTargets = split/,/, $prevGrubState->devices;
|
||||
|
||||
my $devicesDiffer = scalar (List::Compare->new( '-u', '-a', \@deviceTargets, \@prevDeviceTargets)->get_symmetric_difference());
|
||||
my $nameDiffer = get("fullName") ne $prevGrubState->name;
|
||||
|
@ -549,7 +549,7 @@ if ($requireNewInstall != 0) {
|
|||
print FILE get("fullName"), "\n" or die;
|
||||
print FILE get("fullVersion"), "\n" or die;
|
||||
print FILE $efiTarget, "\n" or die;
|
||||
print FILE join( ":", @deviceTargets ), "\n" or die;
|
||||
print FILE join( ",", @deviceTargets ), "\n" or die;
|
||||
print FILE $efiSysMountPoint, "\n" or die;
|
||||
close FILE or die;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue