Warning when updating mkinitcpio 29-1

With today’s update of

mkinitcpio 28-1 -> 29-1
openssh 8.4p1-1 -> 8.4p1-2

came the following warning:

Warnung: /etc/mkinitcpio.conf installiert als /etc/mkinitcpio.conf.pacnew

Do I have to do anything?

1 Like

It depends.

https://wiki.archlinux.org/index.php/Pacman/Pacnew_and_Pacsave

You should check the differences and merge any updated from the pacnew into the existing file - it all comes down to how you have customised the file since it was installed.

3 Likes

I have not adjusted anything yet. The file is still in the state it was in when I reinstalled it. That was last weekend.

OK, you’ll still have to check it.

I have manual changes to the MODULES and HOOKS arrays, but this one is extra:

image

Bildschirmfoto vom 2020-10-30 03-34-06

Bildschirmfoto vom 2020-10-30 03-32-57

I have not done a reboot after the update.

It looks like line 63 has been customised at some point to set the initramfs compression to xz format.

How you merge that is up to you.

I’ve just set it to zstd then regenerated my initramfs with mkinitcpio -P. It might have been a bad idea to do it for all kernels at the same time, but I have a USB with the Arch installer iso prepared so I can chroot in and fix it if it breaks… :man_shrugging:

Just for info, my super-crafty graphical pacdiff wrapper:

#!/usr/bin/bash
set -euo pipefail
export PATH=/usr/bin:/usr/sbin

for i in $(/usr/bin/pacdiff --output); do
	echo "Merging $i ..."
	/usr/bin/meld "admin://$i" "admin://${i/.pacnew/}";
done

This is pretty cool in that it runs meld against the GVFS admin:// location so bypasses any issues running a GUI application as root.

I run it from a terminal, then once I’m done I can remove any pacnew which were listed in the terminal.

7 Likes

Okay, thanks. I always have the installer-iso ready :wink:

Why is such crap done? There is nothing in the Arch-News about manual intervention.

1 Like

If it’s not in the news then it’s just standard update procedure - the file is not the same as is packaged, so it’s a local change (same as with the recent pam change which ended up locking people out).

Possibly it’s an EnOS customisation.

4 Likes

These are all things I know nothing about. I’m starting to feel that Arch is too big for me. I need a system where there are no such surprises.

Don’t sell yourself short. Manual interventions are the exception, not the rule for sure. Not to mention the community is here and more than willing to help. If it’s something you want to stick with and can put the time/effort into it’s certainly something you can do.

If such a warning appears during the update, I can’t do anything with it myself. And I can’t write scripts either, I’m just a user with Linux-Mint-experience and some Manjaro on my wife’s machine. I don’t know if this is enough …

But … thanks :slightly_smiling_face:

I saw this on my Arch install on my desktop and I was tempted to switch to zstd compression. I chickened out at the last moment though :sweat_smile:

Does anyone know if this has anything to do with arch switching from mkinitcpio to dracut?

It seems to be the default setting according to this.

According to this zstd was added because 5.9 understands this now.

2 Likes

Thanks for sharing this!

3 Likes

Huh…wonder when that changed because my mkinitcpio.conf doesn’t have xz as default and I used one of the early isos to install.

1 Like

Unless you’ve changed /etc/mkinitcpio.conf yourself, it is safe to replace the old one with the new one.

3 Likes

This warning pops up an my laptop as well and i’m absolutely sure that i have not messed around manually with mkinitcpio.conf. Similar happened with the PAMchange a few weeks ago (was on manjaro back then). Is there something in the detection broken or is this an Endeavour-specific customization?

Besides that i wonder why in the new conf all compression options are commented out:

# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
#COMPRESSION="zstd"

whilst in the old one, xz was enabled:

# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
1 Like

I used the September release a couple of days ago, so maybe somewhere in between…

If all the compression options are commented out, GZIP is used.

Nothing to be worried about.

I see that the new mkinitcpio script uses --19 as compression ratio for ZSTD.
IMO way too high and thus too slow.

I modified the script like this:

--- a/usr/bin/mkinitcpio  2020-10-30 09:21:18.152290353 +0100
+++ b/usr/bin/mkinitcpio  2020-10-30 09:21:56.412089593 +0100
@@ -206,13 +206,13 @@
             msg "Creating %s-compressed initcpio image: %s" "$compress" "$out"
             ;;&
         xz)
-            COMPRESSION_OPTIONS+=('--check=crc32')
+            COMPRESSION_OPTIONS+=('-4' '--check=crc32')
             ;;
         lz4)
-            COMPRESSION_OPTIONS+=('-l')
+            COMPRESSION_OPTIONS+=('-4' '-l')
             ;;
         zstd)
-            COMPRESSION_OPTIONS+=('-19' '-T0')
+            COMPRESSION_OPTIONS+=('-13' '-T2')
             ;;
     esac

(EDIT: clean up patch)

4 Likes

Hi, I run into the same issue with the latest update. As this is the first time I’m dealing with a “.pacnew” file, I have some quick questions. The following is observed on two systems based on the September release of EnOS. I’m not aware that have change anything that would affect the config file.

  1. In my original file, the syntax is MODULES="", FILES="", HOOKS="..." but in the .pacnew there is MODULES=() , FILES=(), HOOKS=(...). Is the new syntax () and should I change this?

  2. HOOKS has been changed as follows, “keymap” and “resume” removed, “fsck” added, should I keep the new settings?

HOOKS="base udev autodetect modconf block keyboard keymap resume filesystems fsck"
HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
  1. Out of curiosity, how is this config file generated? Looking at the file at EnOS GitHub, the “HOOKS” contains a lot more options. Has these been changed/overwritten by some Arch update?