Showing posts with label LVM. Show all posts
Showing posts with label LVM. Show all posts

Monday, 26 October 2026

How to Fix Ubuntu Emergency Mode: systemd-fsck-root Failed on LVM Root

Symptom: your Ubuntu machine boots to a black screen that says "Entering emergency mode. Exit the shell to continue.", followed by red errors about the system bus and /bin/bash. This guide explains what those messages actually mean, how to find the real cause, and how to repair the most common one: a failed root filesystem check on an LVM volume.



Tested scenario: Ubuntu 26.04 LTS, ext4 root on LVM (/dev/mapper/ubuntu--vg-ubuntu--lv). The same steps apply to Ubuntu 25.10 and other dracut-based distributions such as Fedora.

Quick fix (TL;DR)

If your boot log shows [FAILED] Failed to start systemd-fsck-root.service, the root filesystem check failed and Ubuntu refused to mount it. At the # prompt:

journalctl -u systemd-fsck-root.service --no-pager | tail -40
blkid /dev/mapper/ubuntu--vg-ubuntu--lv
fsck.ext4 -f /dev/mapper/ubuntu--vg-ubuntu--lv
reboot

Back up first if the data matters. If the disk is physically failing, running a repair can make things worse. Details below.

The error messages

On screen you will typically see some combination of these lines:

Failed to connect to system scope bus via local transport: No such file or directory
Generating "/run/initramfs/rdsosreport.txt"
Entering emergency mode. Exit the shell to continue.
Type "journalctl" to view system logs.
Press Enter for system maintenance
(or press Control-D to continue):
sulogin: failed to execute /bin/bash: No such file or directory
#

Scrolling further up (or rebooting and watching closely) reveals the line that matters:

[FAILED] Failed to start systemd-fsck-root.service - File System Check on /dev/mapper/ubuntu--vg-ubuntu--lv
[DEPEND] Dependency failed for sysroot.mount - /sysroot.
[DEPEND] Dependency failed for initrd-root-fs.target - Initrd Root File System.
[DEPEND] Dependency failed for initrd-parse-etc.service - Mountpoints Configured in the Real Root.

Why the red errors are not the real problem

You are not in your installed Ubuntu system yet. You are inside the initramfs, a tiny temporary system that loads before your real root filesystem. Since Ubuntu 25.10, Ubuntu desktop builds this initramfs with dracut instead of initramfs-tools (OMG! Ubuntu). The rdsosreport.txt message is dracut's signature.

That minimal environment does not include D-Bus or Bash, so:

  • "Failed to connect to system scope bus" just means there is no D-Bus in the initramfs. It is a side effect, not the cause.
  • "sulogin: failed to execute /bin/bash" means Bash is not in the initramfs. The emergency shell falls back to a basic sh, which is the # prompt you see. It works fine for repairs.

Pressing Ctrl+D will only retry the same boot and land you back here. The fix is to deal with whatever stopped the root filesystem from mounting.

Finding the real cause

Emergency mode means the root filesystem could not be mounted. The usual causes are:

What the log showsLikely cause
Failed to start systemd-fsck-root.serviceFilesystem errors (often after a power cut or forced shutdown), or a failing disk
Timed out waiting for deviceDisk not detected, missing storage driver in initramfs, or wrong UUID in GRUB/fstab
No password prompt on an encrypted diskMissing LUKS/cryptsetup support in the initramfs

This guide covers the first row, which is the one shown in the screenshots above.

Step-by-step fix: repair the root filesystem

Step 1: Read the actual fsck error

The emergency shell may not include less, so pipe through tail instead:

journalctl -u systemd-fsck-root.service --no-pager | tail -40

Messages such as "UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY" confirm filesystem corruption. I/O errors or "Buffer I/O error on device" suggest the disk itself is failing. If you see I/O errors, skip ahead to the backup warning in Step 3.

Step 2: Confirm the LVM volume is active and check its filesystem type

lvm lvscan
blkid /dev/mapper/ubuntu--vg-ubuntu--lv

lvscan should list the volume as ACTIVE. If it shows inactive, activate it with lvm vgchange -ay. The blkid output includes TYPE="ext4" (Ubuntu's default), xfs, or btrfs.

The double hyphens in ubuntu--vg-ubuntu--lv are not a typo. Device-mapper escapes a hyphen inside a name by doubling it. The same volume is also reachable as /dev/ubuntu-vg/ubuntu-lv.

Step 3: Back up before repairing, if you can

fsck changes the filesystem in place. On a healthy disk with minor corruption it is safe and routine. On a physically failing disk, the extra reads and writes can turn a recoverable situation into lost data. If anything on the machine is not backed up, boot from an Ubuntu live USB first and copy your important files off. For badly damaged disks, clone the drive with ddrescue first.

Step 4: Run the repair

For ext4, the volume is not mounted at this point, so it is safe to check:

fsck.ext4 -f /dev/mapper/ubuntu--vg-ubuntu--lv

Answer y to the proposed fixes. If there are hundreds of prompts, re-run with -y to accept them all:

fsck.ext4 -fy /dev/mapper/ubuntu--vg-ubuntu--lv

Run it again until it reports the filesystem as clean with no further changes. fsck's exit code tells you the outcome:

  • 0: no errors.
  • 1: errors were corrected.
  • 4 or higher: errors remain uncorrected. Do not reboot and hope; investigate further.

You can check the code with echo $? right after fsck finishes.

Step 5: Reboot

reboot

If the filesystem is now clean, Ubuntu should boot normally.

If fsck.ext4 is not found

If the shell replies fsck.ext4: not found, the initramfs was built without the filesystem checker. That is why the automatic check failed, and your disk may be perfectly healthy. Repair from a live USB instead:

  1. Boot an Ubuntu 26.04 live USB and choose Try Ubuntu.
  2. Open a terminal and activate LVM, then run the check:
    sudo vgchange -ay
    sudo fsck.ext4 -f /dev/mapper/ubuntu--vg-ubuntu--lv
  3. Reboot into your installed system and regenerate the initramfs so the checker is included next time:
    sudo dracut --force --regenerate-all

After you boot: checks you should not skip

Getting back to the desktop does not mean the problem is solved. Find out why the filesystem broke.

Check disk health

sudo apt install smartmontools
lsblk -d -o NAME,MODEL,SIZE
sudo smartctl -a /dev/nvme0n1   # or /dev/sda for SATA disks

Warning signs include reallocated sectors, pending sectors, media errors, or a health assessment other than PASSED. If you see any of these, replace the drive soon and keep backups current.

Review errors from the failed boot

journalctl --list-boots
journalctl -b -1 -p err --no-pager

Logs from inside the initramfs are not always kept in the persistent journal, so the previous boot may show little.

Prevent it happening again

  • Avoid holding the power button to shut down, especially during updates.
  • On desktops in areas with unreliable power, a small UPS is cheap insurance.
  • Keep regular backups. deja-dup or restic are both fine starting points.

FAQ

Is "sulogin: failed to execute /bin/bash" a sign that Bash was deleted?

No. It refers to the initramfs, which does not ship Bash. Your installed system's /bin/bash is untouched.

Will fsck delete my files?

fsck fixes filesystem structures. Fragments of files it cannot reattach are placed in /lost+found. On mild corruption you typically lose nothing, but there is no guarantee on a damaged disk, hence the backup advice.

My root filesystem is XFS or Btrfs. What do I run?

For XFS, use xfs_repair on the unmounted device. For Btrfs, start with the read-only btrfs check. Do not use btrfs check --repair without a backup; the Btrfs developers themselves warn it can cause further damage.

Can I just boot an older kernel from GRUB?

That helps when a kernel or initramfs update is the cause. It does not help with filesystem corruption, because every kernel mounts the same broken filesystem.

Summary: in a dracut emergency shell, ignore the D-Bus and Bash messages and look for the first [FAILED] line. For a failed systemd-fsck-root.service, read the fsck error, back up if the disk looks unhealthy, run fsck on the unmounted root volume until it is clean, then check the drive's SMART health once you are back in.

Tuesday, 2 July 2024

How to LVM resize filesystem Guide

 Increase the size of an LVM logical volume - Step-by-step Guide.

Tested on

Debian (Etch, Lenny, Squeeze)
Fedora (14)
Ubuntu (Hardy, Intrepid, Jaunty, Karmic, Lucid, Maverick, Natty)

Objective

To increase the size of an existing LVM logical volume

Background

Be aware that extending a logical volume does not by itself let you to store more files in a filesystem located on that volume. If that is your aim then you will need to:
  1. increase the size of the underlying block device (the logical volume), then
  2. increase the size of the filesystem to fill the block device.
These instructions cover the first step only. The method for the second step will depend on the type of filesystem (and in some cases there will be no practicable method). See below for further information.

Scenario

Suppose that /dev/vg0/foo is a logical volume of size 80GB. You wish to increase its size by 40GB to 120GB.

Method

A logical volume can be extended using the lvextend command. You can specify either the amount by which you want to increase the size of the volume:
lvextend --size +40G /dev/vg0/foo

or the final size that you want to achieve:
lvextend --size 120G /dev/vg0/foo

If successful you should see a response of the form:
Extending logical volume foo to 8.00 GB
Logical volume foo successfully resized

Testing

Verify the new size of the logical volume using the lvdisplay command:
lvdisplay /dev/vg0/foo

This should give a response of the form:
--- Logical volume ---
LV Name /dev/vg0/foo
VG Name vg0
LV UUID w2q9ZN-hKnN-CLGf-6Z5g-e1QZ-DCKX-1DYZvR
LV Write Access read/write
LV Status available
# open 0
LV Size 120.00 GB
Current LE 30720
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:85

You should not at this stage expect to see any increase in the amount of usable space within whatever filesystem located on the logical volume, for example, as reported by the df command: it is only the size of the underlying block device that has been changed.

Next steps

If the logical volume contains a filesystem then you will probably now want to extend it to fill the newly available space. Filesystems that can be extended include ext2, ext3, ext4, jfs, reiserfs and xfs. See:
Some filesystems cannot be extended, either because their design makes this impracticable or because the necessary software has not been written. In that case your only option is to move the files somewhere else, then recreate the filesystem, then move the files back.

Troubleshooting

Alternatives

lvresize

An alternative to lvextend is to use the lvresize command:
lvresize --size +40G /dev/vg0/foo

or:
lvresize --size 120G /dev/vg0/foo

The difference is that lvextend can only increase the size of a volume, whereas lvresize can increase or reduce it. This makes lvresize more powerful but more dangerous. If you accidentally reduce the size of a volume without first reducing the size of the filesystem contained within it then the filesystem is likely to be damaged irreparably. For scenarios similar to the one described here, lvextend is recommended because mistakes of this type are not then possible.

See also

How to Configure GitHub Actions for a Staging Environment with DockerHub

Deploying reliably is a critical step when building secure internal systems for service-oriented businesses. Automating your st...