Installation Recovery

Installation Recovery

Recover a Kubuntu Focus System

All general purpose OSes (Windows, MacOS, Linux) can be changed so that the system will no longer boot completely or will behave strangely. A corrupt or full system disk, broken software packages, misconfiguration, and many other situations can cause this. Read on to find how you can use FocusRx and other tools to recover a system.

Please read the disclaimer before proceeding. We review and update guided solutions like this regularly. If you have suggestions or requests, please write support@kfocus.org.

Limitations

Before you proceed, first determine if this is actually a system issue. If your system boots fine, this is likely an application issue. We recommend you first visit the Focus Support page and search for a topic using the list or the search box. These are almost always more current and correct for your hardware than HOWTOs or forum posts you might find on the web. You should continue here only if your system does not completely boot or if you are getting warnings about missing dependencies or libraries.

Recovering an installation may be preferable because applications, settings, and other data will not need to be restored. However, like with all OSes, a badly broken system can take hours to recover and still be problematic. While a Clean Install requires recovery of data, it usually takes well under 30 minutes and can solve issues you do not have time to research or understand. For these reasons, we recommend you always keep a clean installation as an alternative and limit the time you dedicate to recovery efforts.

Any system work always has inherent risks. Mistakes happen, and in this context, that can mean data loss. It is important, therefore, to keep your data safe using a backup solution on an external disk. See the Backup Guided Solution to save your data before proceeding if possible.

Rollback Packages

Sometimes the latest version of package has a bug or missing feature that you find unacceptable. When this happens, one may specify a package version, or install a debian package from the archive.

Specify a package version

We can use apt-cache policy to find an older version of a package:

# Find available versions apt-cache policy filezilla #> filezilla: #> Installed: 3.58.0-1ubuntu0.1 #> Candidate: 3.58.0-1ubuntu0.1 #> Version table: #> *** 3.58.0-1ubuntu0.1 500 #> 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages #> 500 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages #> 100 /var/lib/dpkg/status #> 3.58.0-1 500 #> 500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

We can use this knowledge to install and hold the earlier version. Notice how we included filezilla-common too, as we discovered this dependency also needed a rollback:

# Install older versions sudo apt install filezilla=3.58.0-1 filezilla-common=3.58.0-1 # Mark hold to prevent an upgrade sudo apt-mark hold filezilla filezilla-common # Show held files sudo apt-mark showhold # Remove holds sudo apt-mark unhold filezilla filezilla-common # Upgrade to latest sudo apt full-upgrade
Install a debian package from the archive

Not all older versions of packages are retained in the repository. For example, google-chrome-stable does not always show as having an earlier available version. However, you can find and downgrade to an earlier version using the local archives.

# Find cached packages ls /var/cache/apt/archives \ |grep -E '^google-chrome-stable*' |sort -V #> google-chrome-stable_120.0.6099.216-1_amd64.deb #> google-chrome-stable_121.0.6167.184-1_amd64.deb #> google-chrome-stable_122.0.6261.111-1_amd64.deb # Install desired version cd /var/cache/apt/archives sudo apt install ./google-chrome-stable_121.0.6167.184-1_amd64.deb # Mark hold to prevent upgrade sudo apt-mark hold google-chrome-stable # Show held files sudo apt-mark showhold # Remove holds sudo apt-mark unhold google-chrome-stable # Upgrade to latest sudo apt full-upgrade

Make sure to regularly check and remove holds. Out-of-daate packages can cause incompatibilities and even prevent other packages from installing correctly, so do this with care.

Rollback Repositories

Sometimes you just want get rid of all packages and dependencies that come from a repository. ppa-purge is excellent for this purpose:

# Add a repository to /etc/apt/sources-list.d sudo add-apt-repository ppa:jonathonf/ffmpeg-4 # Disable repo but keep packages from it sudo add-apt-repository --remove ppa:jonathon/ffmpeg-4 # Re-enable it sudo add-apt-repository ppa:jonathonf/ffmpeg-4 # Purge all package from this repo sudo ppa-purge ppa:jonathonf/ffmpeg-4

ppa-purge downgrades packages to their version before the repository was added, if possible. Although it was design for PPA repositories, it can also be used for most commercial 3rd-party repositories. See ppa-purge -h for the switches used in the examples below:

# Inspect and remove Slack repo. This removes the slack app too! cat /etc/apt/sources.list.d/slack.list #> deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie main # ppa-purge, preferring apt-get over aptitude sudo ppa-purge -i -s packagecloud.io -o slacktechnologies -p slack -d jessie
# Inspect and remove MongoDB repo cat /etc/apt/sources.list.d/mongodb-org-7.0.list #> deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/a pt/ubuntu jammy/mongodb-org/7.0 multiverse # ppa-purge, preferring apt-get over aptitude sudo ppa-purge -i -s repo.mongodb.org -o apt -p ubuntu -d jammy

You can learn more with this Linuxize article.

Recover from BusyBox Shell

Sometimes the system will boot but drop to a BusyBox Shell as shown below.

BusyBox v1.30.1 (1:1.30.1-4ubuntu6.3) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs) _

This frequently results from a corrupt filesystem, as detailed by this Ask Ubuntu ticket. The solution is to enter the command exit into the shell to report the corrupt filesystem. You may then repair it using fsck <device-file> as shown below.

BusyBox v1.30.1 (1:1.30.1-4ubuntu6.3) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs) exit The root filesystem on /dev/mapper/vgkubuntu-root requires a manual fsck BusyBox v1.30.1 (1:1.30.1-4ubuntu6.3) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs) fsck /dev/mapper/vgkubuntu-root -y fsck from util-linux 2.34 e2fsck 1.45.5 (07-Jan-2020) /dev/mapper/vgkubuntu-root contains a filesystem with errors, check forced.

After the filesystem repair is complete, type in reboot or exit to reboot the system. If the repair was good (which it usually is), the system should now boot normally.

Fix Your System Using FocusRx

Focus systems have a recovery tool called FocusRx which can identify and resolve many issues:

You can run FocusRx as shown below.

Use a Live USB for Recovery

Use a Live USB for Recovery

Please Download the ISO Disk Image and create a bootable, live USB. Then return here to proceed.

Boot using the USB stick as shown below.

Use chroot to Recover a System

1. Use the live USB procedure (above) to boot into the Try Kubuntu mode. Then open a Konsole terminal and enter the lines as shown below.

2a. ENCRYPTED DRIVE ONLY: Decrypt the drive and mount the root filesystem.

sudo -i # Decrypt drive cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt # Mount decrypted drive mount /dev/mapper/vgkubuntu-root /mnt # Proceed if you see 'etc' and 'home': cd /mnt ls

2b. UNENCRYPTED DRIVE ONLY: Mount the root filesystem.

sudo -i # Mount drive mount /dev/nvme0n1p2 /mnt # Proceed if you see 'etc' and 'home': cd /mnt ls

3. Back up your data.

If you haven’t yet backed up your data, please do so NOW! See the Take a Snapshot with USB Drive to save your important files to a separate drive. You can find your user data under /mnt/home/. While each subsequent step below is usually safe, each brings additional risk because of an unknown system state or human error. Better safe than sorry.

4a. ENCRYPTED DRIVE ONLY: Mount the boot and boot/efi filesystems.

# Mount boot and boot/efi cd /mnt mount /dev/nvme0n1p2 boot mount /dev/nvme0n1p1 boot/efi # Proceed if you see 'vmlinuz' and 'initrd.img': ls boot # Proceed if you see 'EFI': ls boot/efi

4b. UNENCRYPTED DRIVE ONLY: Mount the boot/efi filesystem.

# Mount boot/efi cd /mnt mount /dev/nvme0n1p1 boot/efi # Proceed if you see 'EFI': ls boot/efi

5. Prepare and use chroot.

cd /mnt mount -t proc /proc proc mount --rbind /sys sys mount --rbind /dev dev rm etc/resolv.conf cp /etc/resolv.conf etc/resolv.conf chroot .

6. Once the system has successfully switched to chroot mode, you may run FocusRx (above) to fix packages and other common issues.

focusrx -f # One may also repair /etc/default/grub # and run update-grub

7. Here are a few more steps you might try if FocusRx does not solve the problem:

Aptitude package management

See this article for additional details on using chroot.

8. When you are finished fixing the chroot environment, enter exit into terminal. Close the terminal and restart. If the repairs worked, the system should start as normal.

Troubleshooting

Content will be added as needed.

Revisions

This is a partial revision history. See the git repository for all entries.

Disclaimer

We try hard to provide a useful solution validated by professionals. However, we cannot anticipate every situation, and therefore cannot guarantee this procedure will work for your needs. Always backup your data and test the solution to determine the correct procedure for you.

THIS SOLUTION IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOLUTION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

HAVE QUESTIONS? Call 844-536-2871 or write
TellMeMore@kfocus.org | GET FOCUS GEAR

KFocus Logo