• Unhappy about upgrade hooks of kernel (modules)


    At the moment I am really unhappy about how Pacman upgrades of kernel packages or any kernel modules work.
    The bug is known in Pacman bug tracker, the problems occurred more than once, but there is no official fix :(

    The problem is that when updating one of the mentioned packages, the current dkms modules are removed, then the packages get updated and a new mkinitcpio image is built. The building throws error concerning the missing dkms kernel modules which are rebuild after the update, so they are not included in the mkinitcpio image, which can lead to an unbootable system.
    Another problem occurred in the latest update the kernel running the dkms builds: The zfs modules needs the spl modules as dependency, so usually spl was built before zfs. This time dkms tried to build zfs first so the build failed.

    I am very unhappy and a bit angry with this, because this is not a new issue, but it seems like nobody cares about it. I don’t think this is difficult to make right, so why does this go wrong in Antergos (Arch), but in Ubuntu I never had any problems with kernel modules?

  • Hi,

    I’m sure pacman devs are working on this.

    Meanwhile (as you mention) always remember to run sudo mkinicpio -p linux yourself before rebooting after a kernel update (moreover if you’re using zfs).

  • It seems like this got fixed in pacman version 5.0.1. On a recent update on the linux package the rebuild of dkms took place before the mkinitcpio hook, so if it wasn’t random that it occurred in this order the problem does not exist anymore.

    I am really happy that I won’t need to worry about this in future:joy:

  • @karasu if I happen to not know this, and is now unable to boot, is there a fix? Thanks!

  • @Inuinator Boot a live ISO and chroot into your system, then run the command mentioned by @karasu

  • @liketechnik2000 I’m trying, but neither doing it straight as you say, and doing

    
    # sudo chroot /mnt/arch mkinicpio -p Linux 
    

    As the arch wiki sais does nothing, they say that the directory isn’t there… How would I go about this?

    My file system is zfs

  • @Inuinator Did you manually import your zfs pool in the live system yet? And if you already did, how did you do it (command line)?

  • @liketechnik2000 I tried mounting, after trying with zroot? But failed :(

  • @Inuinator I would recommend zpool import -o mountpoint=/mnt/arch *poolname*. (I did not test the command, but that’s what I remember from last time using it.) You may need to create the directroy first mkdir /mnt/arch, but I am not sure about this.

  • @liketechnik2000 how do I go about finding the pool name?

    EDIT: I feel weird not to note how grateful I am!

  • @Inuinator zpool list should show all pools available.
    EDIT:
    You should use arch-chroot instead of chroot, it takes care of preparing everything for the chroot.

  • @liketechnik2000 from zpool list I get no pools available again running antergos live cd

    Edit: lsblk

    [antergos@ant-16.10 ~]$ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb      8:16   0 465.8G  0 disk 
    ├─sdb2   8:18   0 465.3G  0 part 
    └─sdb1   8:17   0   511M  0 part 
    sr0     11:0    1  1024M  0 rom  
    loop0    7:0    0   1.6G  1 loop /run/archiso/sfs/root-image
    sda      8:0    1   3.9G  0 disk 
    ├─sda2   8:2    1    31M  0 part 
    └─sda1   8:1    1   1.7G  0 part /run/archiso/bootmnt
    

    Edit2: i did the following:

    [antergos@ant-16.10 ~]$ sudo zpool import
       pool: antergos_69be
         id: 16204898449575167733
      state: ONLINE
     action: The pool can be imported using its name or numeric identifier.
     config:
    
    	antergos_69be                             ONLINE
    	  ata-TOSHIBA_MK5061GSYN_737QTJBYT-part2  ONLINE
    [antergos@ant-16.10 ~]$ sudo zpool import antergos_69be
    cannot mount '/': directory is not empty
    cannot mount '/home': directory is not empty
    
  • @Inuinator Sorry for the late reply.
    Please run zfs set mountpoint=/mnt/arch antergos_69be. After you exited the chroot do NOT forget to run zfs set mountpoint=/ antergos_69be so your pool gets mounted under / when you boot again. If you have any children datasets in your pool please check that their mountpoint is set to anything under the /mnt/arch directory with zfs get mountpoint (for example if zfs get mountpoint tells you that the mountpoint for a dataset containing your home partition (antergos_69be/home) was /home, execute zfs set mountpoint=/mnt/arch/home antergos_69be/home so it gets mounted there. But I am not sure if children datasets automatically set their mountpoint relative to their parent so it is possible that zfs does that automatically and you do not need to touch anything here.).

  • @liketechnik2000 I followed the arch linux wiki, and got

    [root@ant-16 /]# mkinitcpio -p linux
    ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
      -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
    ==> ERROR: specified kernel image does not exist: `/boot/vmlinuz-linux'
    ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
      -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
    ==> ERROR: specified kernel image does not exist: `/boot/vmlinuz-linux'
    

    When trying to do ```mkinitcpio -p linux``
    The link in question

  • @Inuinator Did you mount your boot partition? I assume it is on /dev/sdb1 so you would need to run mount /dev/sdb1 /mnt/arch/boot (if you mounted the zfs pool under /mnt/arch).

  • @liketechnik2000 I did that (now) however, the specifed kernel image vmlinuz-linux isn’t there :-1:

  • @Inuinator Could you please post the output of ls /boot inside the chroot?

kernel modules1 update hooks1 pacman updates5 dkms5 Posts 17Views 1332
Log in to reply