Choose the guide that matches your setup. If you're not sure whether your installation is encrypted, run sudo lsblk -f in a live ISO terminal — if your root partition shows a filesystem type of crypto_LUKS, follow the LUKS-Encrypted guide. Otherwise, follow the Standard (Non-Encrypted) guide.
Open a terminal in your live ISO environment. Run the following command to list all available drives and partitions:
sudo lsblk -f
Identify and write down your specific partition names:
Replace the example partition names (nvme0n1pX) with the actual partitions found in Step 1.
sudo mkdir -p /mnt
sudo mount -o subvol=@ /dev/nvme0n1p3 /mnt
If you did not use Btrfs during installation, remove the subvolume flag:
sudo mkdir -p /mnt
sudo mount /dev/nvme0n1p3 /mnt
sudo mount /dev/nvme0n1p2 /mnt/boot
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
Bind the host system runtime directories to the target mount point:
sudo mount --types proc /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo mount --rbind /dev /mnt/dev
sudo mount --rbind /run /mnt/run
Set the propagation state to slave to prevent host environment lockups:
sudo mount --make-rslave /mnt/sys
sudo mount --make-rslave /mnt/dev
sudo mount --make-rslave /mnt/run
Copy DNS resolution settings so the chroot has network access (needed for apt update, downloading packages, etc). The -L flag dereferences /etc/resolv.conf in case it's a symlink (common with systemd-resolved):
sudo cp -L /etc/resolv.conf /mnt/etc/resolv.conf
Execute the chroot command to log into your installed system as the root user:
sudo chroot /mnt
You can now run commands, fix updates, or repair the bootloader directly on your installed operating system.
Once repairs are complete, exit the chroot environment and cleanly unmount the partitions before rebooting:
exit
sudo umount -R /mnt
sudo reboot
Open a terminal in your live ISO environment. Run the following command to list all available drives and partitions:
sudo lsblk -f
Identify and write down your specific partition names:
crypto_LUKS.Unlock the LUKS container, replacing the example partition name (nvme0n1pX) with your actual root partition found in Step 1. You will be prompted for your disk password:
sudo cryptsetup luksOpen /dev/nvme0n1p3 pikaos-root
This creates a decrypted mapping at /dev/mapper/pikaos-root. Use this mapper path for all mounting steps below.
sudo mkdir -p /mnt
sudo mount -o subvol=@ /dev/mapper/pikaos-root /mnt
If you did not use Btrfs during installation, remove the subvolume flag:
sudo mkdir -p /mnt
sudo mount /dev/mapper/pikaos-root /mnt
Replace the example partition names (nvme0n1pX) with your actual boot and EFI partitions found in Step 1 — these are typically not encrypted themselves.
sudo mount /dev/nvme0n1p2 /mnt/boot
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
Bind the host system runtime directories to the target mount point:
sudo mount --types proc /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo mount --rbind /dev /mnt/dev
sudo mount --rbind /run /mnt/run
Set the propagation state to slave to prevent host environment lockups:
sudo mount --make-rslave /mnt/sys
sudo mount --make-rslave /mnt/dev
sudo mount --make-rslave /mnt/run
Copy DNS resolution settings so the chroot has network access (needed for apt update, downloading packages, etc). The -L flag dereferences /etc/resolv.conf in case it's a symlink (common with systemd-resolved):
sudo cp -L /etc/resolv.conf /mnt/etc/resolv.conf
Execute the chroot command to log into your installed system as the root user:
sudo chroot /mnt
You can now run commands, fix updates, or repair the bootloader directly on your installed operating system.
Once repairs are complete, exit the chroot environment and cleanly unmount the partitions before rebooting:
exit
sudo umount -R /mnt
Close the LUKS container:
sudo cryptsetup luksClose pikaos-root
sudo reboot