Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib/installer.py
diff options
context:
space:
mode:
authorAnton Hvornum <anton.feeds@gmail.com>2021-09-06 14:40:05 +0000
committerAnton Hvornum <anton.feeds@gmail.com>2021-09-06 14:40:05 +0000
commit51565314b480e75f00354b73e2420d5cda883fa0 (patch)
tree5a970f570bc0431605af338298db615661d6b35a /archinstall/lib/installer.py
parent8a0a9b16e1fa6977e38eacd78eeb26cb54477b20 (diff)
parent81f3ccad40594fa9e8b4b71d4fae48fe459b6e59 (diff)
Merged in master.
Diffstat (limited to 'archinstall/lib/installer.py')
-rw-r--r--archinstall/lib/installer.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index 00d3a001..3efb0499 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -429,7 +429,7 @@ class Installer:
return True
- def add_bootloader(self, bootloader='systemd-bootctl'):
+ def add_bootloader(self, _device, bootloader='systemd-bootctl'):
for plugin in plugins.values():
if hasattr(plugin, 'on_add_bootloader'):
# Allow plugins to override the boot-loader handling.
@@ -523,7 +523,16 @@ class Installer:
self.helper_flags['bootloader'] = bootloader
elif bootloader == "grub-install":
- self.pacstrap('grub')
+ self.pacstrap('grub') # no need?
+
+ if real_device := self.detect_encryption(root_partition):
+ _file = "/etc/default/grub"
+ root_uuid = SysCommand(f"blkid -s UUID -o value {real_device.path}").decode().rstrip()
+ add_to_CMDLINE_LINUX = f"sed -i 's/GRUB_CMDLINE_LINUX=\"\"/GRUB_CMDLINE_LINUX=\"cryptdevice=UUID={root_uuid}:cryptlvm\"/'"
+ enable_CRYPTODISK = "sed -i 's/#GRUB_ENABLE_CRYPTODISK=y/GRUB_ENABLE_CRYPTODISK=y/'"
+
+ SysCommand(f"/usr/bin/arch-chroot {self.target} {add_to_CMDLINE_LINUX} {_file}")
+ SysCommand(f"/usr/bin/arch-chroot {self.target} {enable_CRYPTODISK} {_file}")
if has_uefi():
self.pacstrap('efibootmgr')
@@ -532,10 +541,7 @@ class Installer:
self.helper_flags['bootloader'] = True
return True
else:
- root_device = subprocess.check_output(f'basename "$(readlink -f /sys/class/block/{root_partition.path.replace("/dev/", "")}/..)"', shell=True).decode().strip()
- if root_device == "block":
- root_device = f"{root_partition.path}"
- o = b''.join(SysCommand(f'/usr/bin/arch-chroot {self.target} grub-install --target=i386-pc /dev/{root_device}'))
+ o = b''.join(SysCommand(f'/usr/bin/arch-chroot {self.target} grub-install --target=i386-pc --recheck {_device.path}'))
SysCommand('/usr/bin/arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg')
self.helper_flags['bootloader'] = True
else: