Skip to main content

My system doesn't start after an update

Before your start

For this procedure, you need:

  • A Solus Live USB
  • Your disk encryption password, if your system is encrypted
  • A stable internet connection

Procedure

  1. Shut down your system.

  2. Boot from a Solus live USB.

  3. Mount the partitions of your Solus system.

    Details

    To recover your system, you need to mount the Solus root (/) partition and all other partitions your system uses.

    1. Open a terminal.

    2. Mount the Solus root partition:

      1. Access as the root user by using the following command:

        sudo su
      2. Create a directory to serve as the mount point for your Solus system:

        mkdir /target
      3. Find the drive and partition of your Solus system using the lsblk command.

        After running the command, the system displays a list of all the drives in your computer:

        NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
        sda 8:0 0 238.5G 0 disk
        ├─sda1 8:1 0 512M 0 part
        ├─sda2 8:2 0 234G 0 part
        └─sda3 8:3 0 4G 0 part [SWAP]
        sdb 8:16 0 465.8G 0 disk
        ├─sdb1 8:17 0 1G 0 part
        └─sdb2 8:18 0 464.8G 0 part
        ├─SolusSystem-root 253:0 0 234.3G 0 lvm
        ├─SolusSystem-swap 253:1 0 3.7G 0 lvm [SWAP]
        sdc 8:32 1 14.9G 0 disk
        ├─sdc1 8:33 1 4.2G 0 part /cdrom
        └─sdc2 8:34 1 4.1M 0 part
        nvme0n1 259:0 0 476.9G 0 disk
        ├─nvme0n1p1 259:1 0 500M 0 part
        ├─nvme0n1p2 259:2 0 16M 0 part
        ├─nvme0n1p3 259:3 0 475G 0 part
        └─nvme0n1p4 259:4 0 1.4G 0 part

        You can use drive size or the number of partitions in each drive to determine which one is your Solus drive.

        tip

        If you installed Solus on a SATA drive, the name of the drive might be sdX (For example, sda). If you installed Solus on an NVMe drive, the name of the drive might be nvme#n# (For example nvme0n1).

        Write down the name of the drive and the type.

      4. If the type of your drive is lvm or if your drive is encrypted:

        1. Check if the drive is encrypted.

          Encrypted drives do not have the label decrypted after the drive name:

          sdb                     8:16   0 465.8G  0 disk
          ├─sdb1 8:17 0 1G 0 part
          └─sdb2 8:18 0 464.8G 0 part
          ├─SolusSystem-root 253:0 0 100G 0 lvm
          └─SolusSystem-swap 253:1 0 8G 0 lvm [SWAP]

          Decrypted drives have the label decrypted after the drive name:

          sdb                     8:16     0 465.8G  0 disk
          ├─sdb1 8:17 0 1G 0 part
          └─sdb2 8:18 0 464.8G 0 part
          └─decrypted 253:1 0 238G 0 crypt
          ├─SolusSystem-root 253:0 0 234.3G 0 lvm
          └─SolusSystem-swap 253:1 0 3.7G 0 lvm [SWAP]
        2. If your drive is encrypted, use cryptsetup to decrypt it.

          cryptsetup luksOpen /dev/partitionName decrypted

          For example

          cryptsetup luksOpen /dev/sdb2 decrypted
      5. Mount the Solus root partition:

        • If your drive's type is lvm
          mount /dev/mapper/SolusSystem-Root /target
        • Otherwise:
          mount /dev/sdX# /target
    3. If your computer uses UEFI, mount the EFI system partition:

      In new installations, the EFI system partition (also known as ESP) is usually 1 GB in size. For older installations, the partition is usually 512 MB in size.

      1. Use fdisk to check the partitions of your drive:

        • If you have a SATA drive:

          fdisk -o Device,Size,Type -l /dev/sdX
        • If you have an NVMe drive:

          fdisk -o Device,Size,Type -l /dev/nvme0nX

          The system displays something similar to this:

          Device       Size Type
          /dev/sda1 512M EFI System
          /dev/sda2 111.3G Linux filesystem

          In this case, the EFI system partition is /dev/sda1

    4. Mount the EFI system partition:

      mount /dev/sdX# /target/boot

      For example:

      mount /dev/sda1 /target/boot
    5. Mount other partitions your system might have (for example, /home):

      mount /dev/sdX# /target/home
    6. Chroot to your Solus system:

      Chroot allows you to execute commands and use utilities from your main system directly. This is necessary to do specific repairs like fixing the bootloader.

      1. Run the following commands:
        mount --types proc /proc /target/proc
        mount --rbind /dev /target/dev
        mount --rbind /sys /target/sys
        mount --make-rslave /target/dev
        mount --make-rslave /target/sys
      2. Chroot into your system:
        chroot /target
  4. Check the chroot environment has internet connection.

    Details
    1. Connect your computer to the internet.

    2. Run ping -c 4 google.com in the chroot environment.

      If the chroot environment has internet connection, the system displays the following:

      PING google.com (142.250.196.206) 56(84) bytes of data.
      64 bytes from nctsaa-ac-in-f14.1e100.net (142.250.196.206): icmp_seq=1 ttl=115 time=4.26 ms
      64 bytes from nctsaa-ac-in-f14.1e100.net (142.250.196.206): icmp_seq=2 ttl=115 time=6.04 ms
      64 bytes from nctsaa-ac-in-f14.1e100.net (142.250.196.206): icmp_seq=3 ttl=115 time=6.34 ms
      64 bytes from nctsaa-ac-in-f14.1e100.net (142.250.196.206): icmp_seq=4 ttl=115 time=5.81 ms
      --- google.com ping statistics ---
      4 packets transmitted, 4 received, 0% packet loss, time 3004ms
      rtt min/avg/max/mdev = 4.261/5.613/6.344/0.803 ms
    3. If the chroot environment does not have an internet connection:

      1. Exit the chroot environment:

        exit
      2. Run the following commands:

        cp /run/systemd/resolve/stub-resolv.conf /target/run/systemd/resolve/
        cd /target/etc
        ln -s ../run/systemd/resolve/stub-resolv.conf /target/etc/resolv.conf
      3. Go back to the chroot environment:

        chroot /target
      4. Test the internet connection again.

  5. Repair your Solus installation.

    Details

    Follow the appropriate steps depending on your situation:

    My system stopped working after a failed update.
    1. Rebuild the package database:

      sudo eopkg rebuild-db
    2. Update your system:

      sudo eopkg up
    3. Check if your system still has broken packages:

      sudo eopkg check | grep Broken | awk '{print $4}' | xargs sudo eopkg it --reinstall

      If you see output that starts with "Usage", the system has no broken packages.

    My system stopped working after a successful update
  6. Unmount all the Solus partitions.

    Details
    1. Exit the chroot environment by pressing CTRL + D
    2. Unmount the Solus partitions:
      umount -R /target
    3. If your drive is encrypted:
      1. Deactivate your logical volumes and volume groups:
        lvchange -a n /dev/SolusSystem/Swap
        lvchange -a n /dev/SolusSystem/Root
        vgchange -a n SolusSystem
      2. Close the LUKS partition:
        cryptsetup luksClose decrypted

What to do next

Restart your system and verify if the problem persists.

If you are still unable to access your Solus system after following this guide, contact us through any of the support channels.