You are not logged in.

#1 2016-11-15 11:23:01

Registered: 2015-02-08
Posts: 44

Booting from (luks)lvm broken FS#51818 - [lvm2] readline 7 breaks lvm2

Got some problems booting Arch(bang) systems with LVM after last pacman -Syu.


I you are lucky (updated regulary / daily) you can fall back and mkinitcpio -P in fall back system.

If you haven't updated since 14 november 2016 run mkninitcpio -P after system upgrade / pacman -Syu.

If you haven't updated regulary the fallback initramfs doesn't work either. You have to chroot and run mkinitcpio -P

Errors you can get after booting:
- Segmentation fault after unlocking (with LUKS)
- unable to find root device UUID

Don't know if this systemd specific or not.


#2 2016-11-15 18:13:50

Registered: 2010-11-04
Posts: 2,209

Re: Booting from (luks)lvm broken FS#51818 - [lvm2] readline 7 breaks lvm2

In reading the bug report, it seems that it's a problem with the order in which pacman installs the pkgs.... so it upgrades readline (which breaks lvm) then upgrades the kernel and finally upgrades lvm but the kernel hooks in mkinicpio were built against the older lvm.

I think all Arch installations that use lvm would be affected regardless of init system.


#3 2016-11-17 12:08:41

Registered: 2015-02-08
Posts: 44

Re: Booting from (luks)lvm broken FS#51818 - [lvm2] readline 7 breaks lvm2

Seems they fixed this quite fast:
Comment by Tobias Powalowski (tpowa) - Thursday, 17 November 2016, 13:39 GMT
4.8.8-2 will include eworms hook to solve this.

So mkinitcpio is run after all kernel hooks have been updated.


#4 2016-11-18 01:59:57

Mr Green
Registered: 2010-11-07
Posts: 6,920

Re: Booting from (luks)lvm broken FS#51818 - [lvm2] readline 7 breaks lvm2

Off topic but you can see what hooks do better by looking /usr/lib/initcpio, files and folders here hold the contents of initramfs. Can be interesting (also systemd free to a point).

For example:


run_earlyhook() {
    mkdir /run/lvm

# We are suffering a race condition in non-systemd initramfs: If lvmetad is
# killed before pvscan processes finish we have stale processes and
# uninitialized physical volumes. So wait for pvscan processes to finish.
# Break after 10 seconds (50*0.2s) to avaid infinite loop.
run_latehook() {
    local i=50

    while pgrep -f pvscan >/dev/null 2>/dev/null && [ $i -gt 0 ]; do
        sleep 0.2
        i=$((i - 1))

run_cleanuphook() {
    kill $(cat /run/

# vim: set ft=sh ts=4 sw=4 et:

Comments, suggestions please feel free to contact me mrgreen(at)archbang(dot)org


Board footer

Powered by FluxBB