You are not logged in.

#1 2022-10-28 10:35:11

bertulli
Member
Registered: 2021-11-25
Posts: 48

[SOLVED] Recurring problem with mkinitcpio after update

Hi all,

I've seen this asked several times, but the answers I found online seem to differ one another, so I wanted to make sure I'm doing everything correctly. I apologize if this is duplicated or I simply din't see it around.
Basically, after some upgrades (sudo pacman -Syu), I see the lines

( 8/14) Updating linux initcpios...
call to execv failed (No such file or directory)
error: command failed to execute correctly

And indeed, if I run mkinitcpio, I get:

[alessandro@commodoroII ~]$ sudo mkinitcpio -p linux
/usr/bin/mkinitcpio: line 390: /etc/mkinitcpio.d/linux.preset: No such file or directory
==> ERROR: Failed to load preset: `/etc/mkinitcpio.d/linux.preset'

I have done a basic investigation about what's wrong in the system. Could you please confirm me if the following are true?

  1. I see that '/etc/mkinitcpio.d/' is empty. IIUC, it shouldn't. It should contain this file

  2. After that, issuing 'mkinitcpio -P' should generate the correct initrd

Moreover, a couple of things are not clear to me:

  1. If I wanted to do the generation manually, is there a specific directory and naming convention where to put the intrd? IIUC, as long as it's in '/boot' and it has a '.img' suffix, is all well?

  2. I currently have installed both 'linux' and 'linux-lts'. Is the single 'linux.preset' specified above good for both? Does mkinitcpio process both automatically? Does Arch need one initrd for ech kernel or a single one supports both?

  3. Currently, I see in my '/boot' only 'intel-ucode.img', as I have 'intel-ucode' installed. Moreover, I see in the wiki that this should be the default initrd to be loaded, and in fact I have it properly configured in '/boot/grub/grub.cfg'. I don't understand: is this the effectively initrd that gets loaded during boot? If yes, then do I need the one generated with mkinitcpio?

  4. My /boot directory doesn't contain any other '.img' files. Why can I boot? Because the intel-ucode replace them?

Thanks!

Last edited by bertulli (2022-11-02 13:06:08)


We are still learning
    - wise people

Offline

#2 2022-10-28 10:52:32

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,234

Re: [SOLVED] Recurring problem with mkinitcpio after update

Reinstall the linux package explicitly. Each kernel should have their own preset file.

  1. Basically and for most normal purposes yes

  2. One for each kernel, the initrd needs to match the kernel it intends to boot

  3. All initrds being passed to the cmdline are being loaded, you will load two initrds in this case, the one for intel_ucode AND the one for the kernel, You need BOTH.

  4. This sounds like you are confusing your mounting setup/you didn't mount the /boot during initial installation but are doing so now and hence masking the /boot where you have other initrds

This last point is the most concerning one here, what's your situation? Post

mount
cat /etc/fstab
cat /boot/grub/grub.cfg
tree /boot
umount /boot
tree /boot

Offline

#3 2022-10-28 11:11:35

Raynman
Member
Registered: 2011-10-22
Posts: 1,539

Re: [SOLVED] Recurring problem with mkinitcpio after update

I'd also make sure mkinitcpio is okay before reinstalling kernel packages.

bertulli wrote:
( 8/14) Updating linux initcpios...
call to execv failed (No such file or directory)
error: command failed to execute correctly

From the context (not provided here) you should see that this is a pacman hook. You can start by identifying the hook. Enabling debug/verbose pacman output probably helps, or look up the hook dir and grep:

$ grep -r 'Updating linux initcpios' /usr/share/libalpm/hooks
/usr/share/libalpm/hooks/90-mkinitcpio-install.hook:Description = Updating linux initcpios...

The Exec line in that hook refers to a script and that script is responsible for creating .preset files for installed kernels. Because you have en exec(v) error and mkinitcpio says the .preset file is missing, that script could (somehow?) be missing from your system. You can also check

pacman -Qk mkinitcpio

and then maybe reinstall the package to get the script back.

Offline

#4 2022-10-28 11:39:07

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

Thanks!
To V1del:

[alessandro@commodoroII ~]$ mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=6066860k,nr_inodes=1516715,mode=755,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
/dev/sdb2 on / type ext4 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=10780)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=6077628k,nr_inodes=1048576,inode64)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
/dev/sdb3 on /home type ext4 (rw,relatime)
/dev/sdb1 on /efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=1215524k,nr_inodes=303881,mode=700,uid=1000,gid=1000,inode64)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)


[alessandro@commodoroII ~]$ cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sdb2
UUID=0b0b0df4-3f14-49a8-8a97-09a103ca8cb1	/         	ext4      	rw,relatime	0 1

# /dev/sdb1
UUID=CB78-A492      	/efi      	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2

# /dev/sdb3
UUID=f40889d2-6c5c-4a56-b19e-53495fcfc8f6	/home     	ext4      	rw,relatime	0 2

# /swapfile (swap)
#/swapfile		none		swap		defaults		0 0



[alessandro@commodoroII ~]$ cat /boot/grub/grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
else
  search --no-floppy --fs-uuid --set=root 0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_GB
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0b0b0df4-3f14-49a8-8a97-09a103ca8cb1' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='hd1,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
	else
	  search --no-floppy --fs-uuid --set=root 0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
	fi
	echo	'Loading Linux linux-lts ...'
	linux	/boot/vmlinuz-linux-lts root=UUID=0b0b0df4-3f14-49a8-8a97-09a103ca8cb1 rw  loglevel=3 nvidia-drm.modeset=1
	echo	'Loading initial ramdisk ...'
	initrd	/boot/intel-ucode.img /boot/initramfs-linux-lts.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-0b0b0df4-3f14-49a8-8a97-09a103ca8cb1' {
	menuentry 'Arch Linux, with Linux linux-lts' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-0b0b0df4-3f14-49a8-8a97-09a103ca8cb1' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		else
		  search --no-floppy --fs-uuid --set=root 0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		fi
		echo	'Loading Linux linux-lts ...'
		linux	/boot/vmlinuz-linux-lts root=UUID=0b0b0df4-3f14-49a8-8a97-09a103ca8cb1 rw  loglevel=3 nvidia-drm.modeset=1
		echo	'Loading initial ramdisk ...'
		initrd	/boot/intel-ucode.img /boot/initramfs-linux-lts.img
	}
	menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-0b0b0df4-3f14-49a8-8a97-09a103ca8cb1' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		else
		  search --no-floppy --fs-uuid --set=root 0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		fi
		echo	'Loading Linux linux-lts ...'
		linux	/boot/vmlinuz-linux-lts root=UUID=0b0b0df4-3f14-49a8-8a97-09a103ca8cb1 rw  loglevel=3 nvidia-drm.modeset=1
		echo	'Loading initial ramdisk ...'
		initrd	/boot/intel-ucode.img /boot/initramfs-linux-lts-fallback.img
	}
	menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-0b0b0df4-3f14-49a8-8a97-09a103ca8cb1' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		else
		  search --no-floppy --fs-uuid --set=root 0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		fi
		echo	'Loading Linux linux ...'
		linux	/boot/vmlinuz-linux root=UUID=0b0b0df4-3f14-49a8-8a97-09a103ca8cb1 rw  loglevel=3 nvidia-drm.modeset=1
		echo	'Loading initial ramdisk ...'
		initrd	/boot/intel-ucode.img /boot/initramfs-linux.img
	}
	menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-0b0b0df4-3f14-49a8-8a97-09a103ca8cb1' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		else
		  search --no-floppy --fs-uuid --set=root 0b0b0df4-3f14-49a8-8a97-09a103ca8cb1
		fi
		echo	'Loading Linux linux ...'
		linux	/boot/vmlinuz-linux root=UUID=0b0b0df4-3f14-49a8-8a97-09a103ca8cb1 rw  loglevel=3 nvidia-drm.modeset=1
		echo	'Loading initial ramdisk ...'
		initrd	/boot/intel-ucode.img /boot/initramfs-linux-fallback.img
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
fwsetup --is-supported
if [ "$grub_platform" = "efi" -a "$?" = 0 ]; then
	menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
		fwsetup
	}
fi
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###



[alessandro@commodoroII ~]$ tree /boot
/boot
├── grub
│   ├── fonts
│   │   └── unicode.pf2
│   ├── grub.cfg
│   ├── grubenv
│   ├── locale
│   │   ├── ast.mo
│   │   ├── ca.mo
│   │   ├── da.mo
│   │   ├── de_CH.mo
│   │   ├── de@hebrew.mo
│   │   ├── de.mo
│   │   ├── en@arabic.mo
│   │   ├── en@cyrillic.mo
│   │   ├── en@greek.mo
│   │   ├── en@hebrew.mo
│   │   ├── en@piglatin.mo
│   │   ├── en@quot.mo
│   │   ├── eo.mo
│   │   ├── es.mo
│   │   ├── fi.mo
│   │   ├── fr.mo
│   │   ├── gl.mo
│   │   ├── hr.mo
│   │   ├── hu.mo
│   │   ├── id.mo
│   │   ├── it.mo
│   │   ├── ja.mo
│   │   ├── ka.mo
│   │   ├── ko.mo
│   │   ├── lg.mo
│   │   ├── lt.mo
│   │   ├── nb.mo
│   │   ├── nl.mo
│   │   ├── pa.mo
│   │   ├── pl.mo
│   │   ├── pt_BR.mo
│   │   ├── pt.mo
│   │   ├── ro.mo
│   │   ├── ru.mo
│   │   ├── sl.mo
│   │   ├── sr.mo
│   │   ├── sv.mo
│   │   ├── tr.mo
│   │   ├── uk.mo
│   │   ├── vi.mo
│   │   ├── zh_CN.mo
│   │   └── zh_TW.mo
│   ├── themes
│   │   └── starfield
│   │       ├── blob_w.png
│   │       ├── boot_menu_c.png
│   │       ├── boot_menu_e.png
│   │       ├── boot_menu_ne.png
│   │       ├── boot_menu_n.png
│   │       ├── boot_menu_nw.png
│   │       ├── boot_menu_se.png
│   │       ├── boot_menu_s.png
│   │       ├── boot_menu_sw.png
│   │       ├── boot_menu_w.png
│   │       ├── COPYING.CC-BY-SA-3.0
│   │       ├── dejavu_10.pf2
│   │       ├── dejavu_12.pf2
│   │       ├── dejavu_14.pf2
│   │       ├── dejavu_16.pf2
│   │       ├── dejavu_bold_14.pf2
│   │       ├── README
│   │       ├── slider_c.png
│   │       ├── slider_n.png
│   │       ├── slider_s.png
│   │       ├── starfield.png
│   │       ├── terminal_box_c.png
│   │       ├── terminal_box_e.png
│   │       ├── terminal_box_ne.png
│   │       ├── terminal_box_n.png
│   │       ├── terminal_box_nw.png
│   │       ├── terminal_box_se.png
│   │       ├── terminal_box_s.png
│   │       ├── terminal_box_sw.png
│   │       ├── terminal_box_w.png
│   │       └── theme.txt
│   └── x86_64-efi
│       ├── acpi.mod
│       ├── adler32.mod
│       ├── affs.mod
│       ├── afs.mod
│       ├── afsplitter.mod
│       ├── ahci.mod
│       ├── all_video.mod
│       ├── aout.mod
│       ├── appleldr.mod
│       ├── archelp.mod
│       ├── ata.mod
│       ├── at_keyboard.mod
│       ├── backtrace.mod
│       ├── bfs.mod
│       ├── bitmap.mod
│       ├── bitmap_scale.mod
│       ├── blocklist.mod
│       ├── boot.mod
│       ├── boottime.mod
│       ├── bsd.mod
│       ├── bswap_test.mod
│       ├── btrfs.mod
│       ├── bufio.mod
│       ├── cacheinfo.mod
│       ├── cat.mod
│       ├── cbfs.mod
│       ├── cbls.mod
│       ├── cbmemc.mod
│       ├── cbtable.mod
│       ├── cbtime.mod
│       ├── chain.mod
│       ├── cmdline_cat_test.mod
│       ├── cmp.mod
│       ├── cmp_test.mod
│       ├── command.lst
│       ├── configfile.mod
│       ├── core.efi
│       ├── cpio_be.mod
│       ├── cpio.mod
│       ├── cpuid.mod
│       ├── crc64.mod
│       ├── cryptodisk.mod
│       ├── crypto.lst
│       ├── crypto.mod
│       ├── cs5536.mod
│       ├── ctz_test.mod
│       ├── datehook.mod
│       ├── date.mod
│       ├── datetime.mod
│       ├── diskfilter.mod
│       ├── disk.mod
│       ├── div.mod
│       ├── div_test.mod
│       ├── dm_nv.mod
│       ├── echo.mod
│       ├── efifwsetup.mod
│       ├── efi_gop.mod
│       ├── efinet.mod
│       ├── efitextmode.mod
│       ├── efi_uga.mod
│       ├── ehci.mod
│       ├── elf.mod
│       ├── eval.mod
│       ├── exfat.mod
│       ├── exfctest.mod
│       ├── ext2.mod
│       ├── extcmd.mod
│       ├── f2fs.mod
│       ├── fat.mod
│       ├── file.mod
│       ├── fixvideo.mod
│       ├── font.mod
│       ├── fshelp.mod
│       ├── fs.lst
│       ├── functional_test.mod
│       ├── gcry_arcfour.mod
│       ├── gcry_blowfish.mod
│       ├── gcry_camellia.mod
│       ├── gcry_cast5.mod
│       ├── gcry_crc.mod
│       ├── gcry_des.mod
│       ├── gcry_dsa.mod
│       ├── gcry_idea.mod
│       ├── gcry_md4.mod
│       ├── gcry_md5.mod
│       ├── gcry_rfc2268.mod
│       ├── gcry_rijndael.mod
│       ├── gcry_rmd160.mod
│       ├── gcry_rsa.mod
│       ├── gcry_seed.mod
│       ├── gcry_serpent.mod
│       ├── gcry_sha1.mod
│       ├── gcry_sha256.mod
│       ├── gcry_sha512.mod
│       ├── gcry_tiger.mod
│       ├── gcry_twofish.mod
│       ├── gcry_whirlpool.mod
│       ├── geli.mod
│       ├── gettext.mod
│       ├── gfxmenu.mod
│       ├── gfxterm_background.mod
│       ├── gfxterm_menu.mod
│       ├── gfxterm.mod
│       ├── gptsync.mod
│       ├── grub.efi
│       ├── gzio.mod
│       ├── halt.mod
│       ├── hashsum.mod
│       ├── hdparm.mod
│       ├── hello.mod
│       ├── help.mod
│       ├── hexdump.mod
│       ├── hfs.mod
│       ├── hfspluscomp.mod
│       ├── hfsplus.mod
│       ├── http.mod
│       ├── iorw.mod
│       ├── iso9660.mod
│       ├── jfs.mod
│       ├── jpeg.mod
│       ├── json.mod
│       ├── keylayouts.mod
│       ├── keystatus.mod
│       ├── ldm.mod
│       ├── legacycfg.mod
│       ├── legacy_password_test.mod
│       ├── linux16.mod
│       ├── linux.mod
│       ├── loadbios.mod
│       ├── loadenv.mod
│       ├── loopback.mod
│       ├── lsacpi.mod
│       ├── lsefimmap.mod
│       ├── lsefi.mod
│       ├── lsefisystab.mod
│       ├── lsmmap.mod
│       ├── ls.mod
│       ├── lspci.mod
│       ├── lssal.mod
│       ├── luks2.mod
│       ├── luks.mod
│       ├── lvm.mod
│       ├── lzopio.mod
│       ├── macbless.mod
│       ├── macho.mod
│       ├── mdraid09_be.mod
│       ├── mdraid09.mod
│       ├── mdraid1x.mod
│       ├── memdisk.mod
│       ├── memrw.mod
│       ├── minicmd.mod
│       ├── minix2_be.mod
│       ├── minix2.mod
│       ├── minix3_be.mod
│       ├── minix3.mod
│       ├── minix_be.mod
│       ├── minix.mod
│       ├── mmap.mod
│       ├── moddep.lst
│       ├── modinfo.sh
│       ├── morse.mod
│       ├── mpi.mod
│       ├── msdospart.mod
│       ├── mul_test.mod
│       ├── multiboot2.mod
│       ├── multiboot.mod
│       ├── nativedisk.mod
│       ├── net.mod
│       ├── newc.mod
│       ├── nilfs2.mod
│       ├── normal.mod
│       ├── ntfscomp.mod
│       ├── ntfs.mod
│       ├── odc.mod
│       ├── offsetio.mod
│       ├── ohci.mod
│       ├── part_acorn.mod
│       ├── part_amiga.mod
│       ├── part_apple.mod
│       ├── part_bsd.mod
│       ├── part_dfly.mod
│       ├── part_dvh.mod
│       ├── part_gpt.mod
│       ├── partmap.lst
│       ├── part_msdos.mod
│       ├── part_plan.mod
│       ├── part_sun.mod
│       ├── part_sunpc.mod
│       ├── parttool.lst
│       ├── parttool.mod
│       ├── password.mod
│       ├── password_pbkdf2.mod
│       ├── pata.mod
│       ├── pbkdf2.mod
│       ├── pbkdf2_test.mod
│       ├── pcidump.mod
│       ├── pgp.mod
│       ├── play.mod
│       ├── png.mod
│       ├── priority_queue.mod
│       ├── probe.mod
│       ├── procfs.mod
│       ├── progress.mod
│       ├── raid5rec.mod
│       ├── raid6rec.mod
│       ├── random.mod
│       ├── rdmsr.mod
│       ├── read.mod
│       ├── reboot.mod
│       ├── regexp.mod
│       ├── reiserfs.mod
│       ├── relocator.mod
│       ├── romfs.mod
│       ├── scsi.mod
│       ├── search_fs_file.mod
│       ├── search_fs_uuid.mod
│       ├── search_label.mod
│       ├── search.mod
│       ├── serial.mod
│       ├── setjmp.mod
│       ├── setjmp_test.mod
│       ├── setpci.mod
│       ├── sfs.mod
│       ├── shift_test.mod
│       ├── signature_test.mod
│       ├── sleep.mod
│       ├── sleep_test.mod
│       ├── smbios.mod
│       ├── spkmodem.mod
│       ├── squash4.mod
│       ├── strtoull_test.mod
│       ├── syslinuxcfg.mod
│       ├── tar.mod
│       ├── terminal.lst
│       ├── terminal.mod
│       ├── terminfo.mod
│       ├── test_blockarg.mod
│       ├── testload.mod
│       ├── test.mod
│       ├── testspeed.mod
│       ├── tftp.mod
│       ├── tga.mod
│       ├── time.mod
│       ├── tpm.mod
│       ├── trig.mod
│       ├── tr.mod
│       ├── true.mod
│       ├── udf.mod
│       ├── ufs1_be.mod
│       ├── ufs1.mod
│       ├── ufs2.mod
│       ├── uhci.mod
│       ├── usb_keyboard.mod
│       ├── usb.mod
│       ├── usbms.mod
│       ├── usbserial_common.mod
│       ├── usbserial_ftdi.mod
│       ├── usbserial_pl2303.mod
│       ├── usbserial_usbdebug.mod
│       ├── usbtest.mod
│       ├── video_bochs.mod
│       ├── video_cirrus.mod
│       ├── video_colors.mod
│       ├── video_fb.mod
│       ├── videoinfo.mod
│       ├── video.lst
│       ├── video.mod
│       ├── videotest_checksum.mod
│       ├── videotest.mod
│       ├── wrmsr.mod
│       ├── xfs.mod
│       ├── xnu.mod
│       ├── xnu_uuid.mod
│       ├── xnu_uuid_test.mod
│       ├── xzio.mod
│       ├── zfscrypt.mod
│       ├── zfsinfo.mod
│       ├── zfs.mod
│       └── zstd.mod
└── intel-ucode.img

6 directories, 356 files


[alessandro@commodoroII ~]$ umount /boot
umount: /boot: not mounted.


[alessandro@commodoroII ~]$ sudo umount /boot
[sudo] password for alessandro: 
umount: /boot: not mounted.

To Raynman: yes, from my pacman log I see that the two times the error 'call to execv failed (No such file or directory)' appeared, it is after '[ALPM] running '90-mkinitcpio-install.hook'...'. Moreover, grepping for 'initcpio' in '/usr/share/libalpm/hooks' I see only

60-mkinitcpio-remove.hook
90-mkinitcpio-install.hook

The 'preset' does seem to be missing, as I was saying in point (a) (please, correct me if you were reffering to something different).
Checking for the missing files I see

[alessandro@commodoroII ~]$ pacman -Qk mkinitcpio
mkinitcpio: 81 total files, 0 missing files

Trying to reinstall 'mkinitcpio' gives me the same error about 'execv', and doesn't add any file, however.

Last edited by bertulli (2022-10-28 11:40:17)


We are still learning
    - wise people

Offline

#5 2022-10-28 13:01:10

d.ALT
Member
Registered: 2019-05-10
Posts: 959

Re: [SOLVED] Recurring problem with mkinitcpio after update

Any particular reason why your main HDD is sdb? Just asking...

Try this:

# pacman -Syu linux intel-ucode grub
# pacman -S mkinitcpio

And, after that, post here your:

# ls -la /boot

Last edited by d.ALT (2022-10-28 13:01:25)


<49,17,III,I>    Fama di loro il mondo esser non lassa;
<50,17,III,I>    misericordia e giustizia li sdegna:
<51,17,III,I>    non ragioniam di lor, ma guarda e passa.

Offline

#6 2022-10-28 13:12:55

Raynman
Member
Registered: 2011-10-22
Posts: 1,539

Re: [SOLVED] Recurring problem with mkinitcpio after update

I should have suggested -Qkk (double k, for altered files), but I did suggest (instead of additional grepping) actually looking at the Exec line in the hook (which I assume is what the "no such file" refers to; unfortunately it doesn't include a path in the error message).

Offline

#7 2022-10-28 14:49:09

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: [SOLVED] Recurring problem with mkinitcpio after update

d.ALT wrote:

Any particular reason why your main HDD is sdb? Just asking...

sdX designations are completely random and can change every time you boot your machine.
This is why we recommend using UUID's instead in all relevant config files.


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#8 2022-10-28 14:58:55

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

Let's see whether the alpm script fails and where:

# bash -x /usr/share/libalpm/scripts/mkinitcpio-install

Offline

#9 2022-10-28 15:57:42

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

To Raynman: I see

[alessandro@commodoroII ~]$ pacman -Qkk mkinitcpio
backup file: mkinitcpio: /etc/mkinitcpio.conf (Modification time mismatch)
backup file: mkinitcpio: /etc/mkinitcpio.conf (Size mismatch)
backup file: mkinitcpio: /etc/mkinitcpio.conf (MD5 checksum mismatch)
backup file: mkinitcpio: /etc/mkinitcpio.conf (SHA256 checksum mismatch)
mkinitcpio: 82 total files, 0 altered files

Which is expected, since I installed the nvidia drivers.
The hook launches

Exec = /usr/share/libalpm/scripts/mkinitcpio-install

which in turn is

#!/bin/bash -e

args=()
all=0

while read -r line; do
    if [[ $line != */vmlinuz ]]; then
        # triggers when it's a change to usr/lib/initcpio/*
        all=1
        continue
    fi

    if ! read -r pkgbase > /dev/null 2>&1 < "${line%/vmlinuz}/pkgbase"; then
        # if the kernel has no pkgbase, we skip it
        continue
    fi

    preset="/etc/mkinitcpio.d/${pkgbase}.preset"
    if [[ ! -e $preset ]]; then
        if [[ -e $preset.pacsave ]]; then
            # move the pacsave to the template
            mv "${preset}.pacsave" "$preset"
        else
            # create the preset from the template
            sed "s|%PKGBASE%|${pkgbase}|g" /usr/share/mkinitcpio/hook.preset \
                | install -Dm644 /dev/stdin "$preset"
        fi
    fi

    # always install the kernel
    install -Dm644 "${line}" "/boot/vmlinuz-${pkgbase}"

    # compound args for each kernel
    args+=(-p "${pkgbase}")
done

if (( all )) && compgen -G /etc/mkinitcpio.d/"*.preset" > /dev/null; then
    # change to use all presets
    args=(-P)
fi

if (( ${#args[@]} )); then
    mkinitcpio "${args[@]}"
fi

My system has /usr/share/mkinitcpio/hook.preset:

# mkinitcpio preset file for the '%PKGBASE%' package

ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-%PKGBASE%"

PRESETS=('default' 'fallback')

#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-%PKGBASE%.img"
#default_options=""

#fallback_config="/etc/mkinitcpio.conf"
fallback_image="/boot/initramfs-%PKGBASE%-fallback.img"
fallback_options="-S autodetect"

while /etc/mkinitcpio.d is empty.

To Seth: unfortunately, running the script manually (whose content is above) doesn't work: it hangs and I needed to terminate it.

[alessandro@commodoroII ~]$ sudo bash -x /usr/share/libalpm/scripts/mkinitcpio-install
+ args=()
+ all=0
+ read -r line
^C
[alessandro@commodoroII ~]$ sudo bash -x /usr/share/libalpm/scripts/mkinitcpio-install -P
+ args=()
+ all=0
+ read -r line
^C
[alessandro@commodoroII ~]$ sudo bash -r -x /usr/share/libalpm/scripts/mkinitcpio-install
+ args=()
+ all=0
+ read -r line
^C
[alessandro@commodoroII ~]$ sudo bash -r -x /usr/share/libalpm/scripts/mkinitcpio-install -P
+ args=()
+ all=0
+ read -r line
^C
[alessandro@commodoroII ~]$ sudo bash -e -x /usr/share/libalpm/scripts/mkinitcpio-install
+ args=()
+ all=0
+ read -r line
^C
[alessandro@commodoroII ~]$ sudo bash -e -x /usr/share/libalpm/scripts/mkinitcpio-install -P
+ args=()
+ all=0
+ read -r line
^C

To d.ALT: I just didn't want to delete Windows (partly because I was unsure if I could use Linux for everiything, partly because I wanted to have a fallback in case my Linux system blew up), so I opted for a dual boot. However, I received advice not to have both system on the same disk, due to Windows' habit to forcefully replace the bootloader at upgrades, and to keep them at two separate disk, choosing with UEFI which one to boot. I then replaced my DVD with a SSD caddy (Windows is on HDD, so I could also switch that). So now my main HDD (Windows) is /dev/sda, and the SSD (Arch) is /dev/sdb. Fun thing is, from that moment I basically have never had to boot Windows again smile

Anyway, I've read that reinstalling the kernel(s) should solve the problem: I'll wait a moment tho, to hear what the others say about the debug command outputs they asked me


We are still learning
    - wise people

Offline

#10 2022-10-28 16:09:40

d.ALT
Member
Registered: 2019-05-10
Posts: 959

Re: [SOLVED] Recurring problem with mkinitcpio after update

bertulli wrote:

keep them at two separate disk, choosing with UEFI which one to boot

Nice move! wink I also did that way in my early Linux days on my laptop (BIOS). big_smile


<49,17,III,I>    Fama di loro il mondo esser non lassa;
<50,17,III,I>    misericordia e giustizia li sdegna:
<51,17,III,I>    non ragioniam di lor, ma guarda e passa.

Offline

#11 2022-10-28 16:24:32

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

The hook has

NeedsTargets

Causes the list of matched trigger targets to be passed to the running hook on stdin.

Just edit the script, put "set -x" right below the shebang and trigger it by re-installing linux.

Offline

#12 2022-11-01 15:24:43

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

Mmh, sorry Seth, maybe I am misunderstanding something:

[alessandro@commodoroII ~]$ cat /usr/share/libalpm/scripts/mkinitcpio-install
#!/bin/bash -e
set -x

args=()
all=0

while read -r line; do
    if [[ $line != */vmlinuz ]]; then
        # triggers when it's a change to usr/lib/initcpio/*
        all=1
        continue
    fi

    if ! read -r pkgbase > /dev/null 2>&1 < "${line%/vmlinuz}/pkgbase"; then
        # if the kernel has no pkgbase, we skip it
        continue
    fi

    preset="/etc/mkinitcpio.d/${pkgbase}.preset"
    if [[ ! -e $preset ]]; then
        if [[ -e $preset.pacsave ]]; then
            # move the pacsave to the template
            mv "${preset}.pacsave" "$preset"
        else
            # create the preset from the template
            sed "s|%PKGBASE%|${pkgbase}|g" /usr/share/mkinitcpio/hook.preset \
                | install -Dm644 /dev/stdin "$preset"
        fi
    fi

    # always install the kernel
    install -Dm644 "${line}" "/boot/vmlinuz-${pkgbase}"

    # compound args for each kernel
    args+=(-p "${pkgbase}")
done

if (( all )) && compgen -G /etc/mkinitcpio.d/"*.preset" > /dev/null; then
    # change to use all presets
    args=(-P)
fi

if (( ${#args[@]} )); then
    mkinitcpio "${args[@]}"
fi
[alessandro@commodoroII ~]$ sudo pacman -Syu linux
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
warning: linux-6.0.6.arch1-1 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) linux-6.0.6.arch1-1

Total Installed Size:  163,52 MiB
Net Upgrade Size:        0,00 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) reinstalling linux                           [######################] 100%
:: Running post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Updating linux initcpios...
call to execv failed (No such file or directory)
error: command failed to execute correctly
(4/4) Update Nvidia module in initcpio

I think the problem is the configuration file missing in /etc/mkinitcpio.d/, maybe as I see in this thread? What is the content of that directory on your system?

Last edited by bertulli (2022-11-01 15:26:53)


We are still learning
    - wise people

Offline

#13 2022-11-01 15:42:13

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

The script itself isn't launched.

stat /usr/share/libalpm/scripts/mkinitcpio-install /bin/bash /usr/bin/bash
type bash
realpath /bin/bash /usr/bin/bash

Offline

#14 2022-11-01 16:35:47

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

seth wrote:

The script itself isn't launched.

For curiosity, how could you tell?

[alessandro@commodoroII ~]$ stat /usr/share/libalpm/scripts/mkinitcpio-install /bin/bash /usr/bin/bash
  File: /usr/share/libalpm/scripts/mkinitcpio-install
  Size: 1122            Blocks: 8          IO Block: 4096   regular file
Device: 8,18    Inode: 2119867     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-11-01 16:23:38.928050902 +0100
Modify: 2022-11-01 16:23:16.447885242 +0100
Change: 2022-11-01 16:23:16.467885389 +0100
 Birth: 2022-11-01 16:23:16.447885242 +0100
  File: /bin/bash
  Size: 948624          Blocks: 1856       IO Block: 4096   regular file
Device: 8,18    Inode: 1973177     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-11-01 12:42:10.686748355 +0100
Modify: 2022-01-08 19:31:11.000000000 +0100
Change: 2022-01-10 11:25:47.508932409 +0100
 Birth: 2022-01-10 11:25:47.505599079 +0100
  File: /usr/bin/bash
  Size: 948624          Blocks: 1856       IO Block: 4096   regular file
Device: 8,18    Inode: 1973177     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-11-01 12:42:10.686748355 +0100
Modify: 2022-01-08 19:31:11.000000000 +0100
Change: 2022-01-10 11:25:47.508932409 +0100
 Birth: 2022-01-10 11:25:47.505599079 +0100
[alessandro@commodoroII ~]$ type bash
bash is /usr/bin/bash
[alessandro@commodoroII ~]$ realpath /bin/bash /usr/bin/bash
/usr/bin/bash
/usr/bin/bash

Last edited by bertulli (2022-11-01 16:36:38)


We are still learning
    - wise people

Offline

#15 2022-11-01 19:35:58

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

Because I'd expect some *sort* script tracing being printed there.
But your bash looks fine.
In the light of recent issues w/ readline and the very suspicious "-e" on the top of that script:

pacman -Qi readline

Offline

#16 2022-11-01 20:49:12

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

Thanks for yor time, by the way. You people are really helping me.

[alessandro@commodoroII ~]$ pacman -Qi readline
Name            : readline
Version         : 8.2.001-1
Description     : GNU readline library
Architecture    : x86_64
URL             : https://tiswww.case.edu/php/chet/readline/rltop.html
Licenses        : GPL
Groups          : None
Provides        : libhistory.so=8-64  libreadline.so=8-64
Depends On      : glibc  ncurses  libncursesw.so=6-64
Optional Deps   : None
Required By     : bash  bc  fluidsynth  gdb  gdbm  gjs  gnupg  gnutls  hunspell
                  inetutils  iwd  js102  js78  js91  lib32-readline  libxml2
                  lua  lua52  lua53  lvm2  mujs  nftables  pcre  pcre2
                  smbclient  sqlite  wpa_supplicant
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 756,66 KiB
Packager        : Felix Yan <felixonmars@archlinux.org>
Build Date      : dom 30 ott 2022, 22:56:25
Install Date    : mar 1 nov 2022, 12:46:39
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

We are still learning
    - wise people

Offline

#17 2022-11-01 21:33:43

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

That's already the fixed version, you installed it this noon - did you try to "sudo pacman -Syu linux" before or after that?
The bad version went online on Oct 26, 2022 - 2 days before you started the thread - the timeframe might fit…

Also I missed

I think the problem is the configuration file missing in /etc/mkinitcpio.d/

The mkinitcpio presets are mising because the hook fails, not the other way round.

(3/4) Updating linux initcpios...
call to execv failed (No such file or directory) # <== this is were those files would be created
error: command failed to execute correctly # but fails

Offline

#18 2022-11-01 22:23:07

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

seth wrote:

That's already the fixed version, you installed it this noon - did you try to "sudo pacman -Syu linux" before or after that?

Honestly I don't remember, but I can check the logs if you want

seth wrote:

The bad version went online on Oct 26, 2022 - 2 days before you started the thread - the timeframe might fit…

Yep, that's highly probable.

seth wrote:

The mkinitcpio presets are mising because the hook fails, not the other way round.

Ah, I see, thanks. I thought the config file should be present (installed during pacstrap), and mkinitcpio read that.

However, I am afraid it still doesn't work:

[alessandro@commodoroII ~]$ sudo pacman -Syu linux
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
warning: linux-6.0.6.arch1-1 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) linux-6.0.6.arch1-1

Total Installed Size:  163,52 MiB
Net Upgrade Size:        0,00 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) reinstalling linux                           [######################] 100%
:: Running post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Updating linux initcpios...
call to execv failed (No such file or directory)
error: command failed to execute correctly
(4/4) Update Nvidia module in initcpio
[alessandro@commodoroII ~]$ sudo pacman -Syu mkinitcpio
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community               7,1 MiB  10,5 MiB/s 00:01 [######################] 100%
 multilib is up to date
warning: mkinitcpio-32-2 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) mkinitcpio-32-2

Total Installed Size:  0,11 MiB
Net Upgrade Size:      0,00 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) reinstalling mkinitcpio                      [######################] 100%
:: Running post-transaction hooks...
(1/4) Reloading system manager configuration...
(2/4) Creating temporary files...
(3/4) Arming ConditionNeedsUpdate...
(4/4) Updating linux initcpios...
call to execv failed (No such file or directory)
error: command failed to execute correctly

We are still learning
    - wise people

Offline

#19 2022-11-02 08:04:13

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

***grrrrrrrr***

Move /usr/share/libalpm/scripts/mkinitcpio-install aside and replace it w/

#!/bin/sh
echo GGRRRRRR | tee /tmp/grrrrr.grr

If that produces any ouput (on the console or in /tmp/grrrrr.grr) try

#!/bin/bash -e
echo GGRRRRRR | tee /tmp/grrrrr.grr2

If that works but eg. only writes into the file, restore the original script
And inject

exec > >(tee /tmp/grumblfxx.txt)
set -x

then see whether the subsequent trigger writes anything meaningful into /tmp/grumblfxx.txt

Offline

#20 2022-11-02 11:39:47

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

Ok, I moved mkinitcpio-install to mkinitcpio-install.old, and replaced it with the echo script. After setting the permissions with 'ugo+x' (more on this later), I see both the outputs:

[alessandro@commodoroII scripts]$ sudo pacman -Syu linux
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
warning: linux-6.0.6.arch1-1 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) linux-6.0.6.arch1-1

Total Installed Size:  163,52 MiB
Net Upgrade Size:        0,00 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) reinstalling linux                           [######################] 100%
:: Running post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Updating linux initcpios...
GGRRRRRR
(4/4) Update Nvidia module in initcpio


[alessandro@commodoroII scripts]$ cat /tmp/grrrrr.grr 
GGRRRRRR

Changing it with 'bash -e', it also correctly gives

[alessandro@commodoroII scripts]$ sudo pacman -Syu linux
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
warning: linux-6.0.6.arch1-1 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) linux-6.0.6.arch1-1

Total Installed Size:  163,52 MiB
Net Upgrade Size:        0,00 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) reinstalling linux                           [######################] 100%
:: Running post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Updating linux initcpios...
GGRRRRRR
(4/4) Update Nvidia module in initcpio


[alessandro@commodoroII scripts]$ cat /tmp/grrrrr.grr2
GGRRRRRR

Then I tried to restore the previous script, and voilà:

[alessandro@commodoroII scripts]$ sudo pacman -Syu linux
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
warning: linux-6.0.6.arch1-1 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) linux-6.0.6.arch1-1

Total Installed Size:  163,52 MiB
Net Upgrade Size:        0,00 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) reinstalling linux                           [######################] 100%
:: Running post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Updating linux initcpios...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 6.0.6-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: xhci_pci
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> 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
==> Starting build: 6.0.6-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: qla2xxx
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: bfa
==> WARNING: Possibly missing firmware for module: qed
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: qla1280
==> WARNING: Possibly missing firmware for module: xhci_pci
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
(4/4) Update Nvidia module in initcpio

!

I have a theory why did this happen. Running pacman with '-vSyu' I discovered it gets its hooks from two dirs, the second being '/etc/pacman.d/hooks'. In there, I had a script for nvidia drivers (as suggested on the wiki), and surprisingly a copy of the '90-mkinitcpio-install.hook'. I didn't remember why it ended up there, probably I put it erroneously when setting up the video card.
I also tried to make pacman run a debug script in a different location ('/usr/share/libalpm/scripts/mkinitcpio-install.debug'), and it failed in the same point with 'permission denied'. In fact, the newly created script correctly had no execution permission! I changed that and it worked, but it made me think. Checking the permission of the original script, it didn't had the right permission too. Was it me that changed it during renaming? Was it an update? Did I issued some disruptive command? I don't know, but at this point I highly supspect that was the primary source of failure.


We are still learning
    - wise people

Offline

#21 2022-11-02 11:53:31

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

/etc/pacman.d/hooks … 90-mkinitcpio-install.hook …

Do you still have that file and what are its exact contents?
/usr/share/libalpm/hooks/90-mkinitcpio-install.hook references /usr/share/libalpm/scripts/mkinitcpio-install w/ an absolute path and …

Checking the permission of the original script, it didn't had the right permission too.

… according to the stat in #14, that script had the execution bit set.

Offline

#22 2022-11-02 11:58:46

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

seth wrote:

Do you still have that file and what are its exact contents?

Yep, it's

[Trigger]
Type = Path
Operation = Install
Operation = Upgrade
Target = usr/lib/modules/*/vmlinuz
Target = usr/lib/initcpio/*

[Action]
Description = Updating linux initcpios...
When = PostTransaction
Exec = /usr/local/share/libalpm/scripts/mkinitcpio-install
NeedsTargets
seth wrote:

/usr/share/libalpm/hooks/90-mkinitcpio-install.hook references /usr/share/libalpm/scripts/mkinitcpio-install w/ an absolute path and …
[...]
… according to the stat in #14, that script had the execution bit set.

Ah, so IIUC both of my ideas are wrong, basically tongue


We are still learning
    - wise people

Offline

#23 2022-11-02 12:09:52

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

Exec = /usr/local/share/libalpm/scripts/mkinitcpio-install

stat /usr/local/share/libalpm/scripts/mkinitcpio-install
cat /usr/local/share/libalpm/scripts/mkinitcpio-install

You fixed it by getting that hook out of the way, otherwise the grrr scripts wouldn't have been triggered.

Edit: stressed the difference

Last edited by seth (2022-11-02 12:10:24)

Offline

#24 2022-11-02 12:24:01

bertulli
Member
Registered: 2021-11-25
Posts: 48

Re: [SOLVED] Recurring problem with mkinitcpio after update

...Well that's embarassing (*sweat smile*)

Currenty my /usr/local is

[alessandro@commodoroII scripts]$ ls -l /usr/local/share/
total 4
drwxr-xr-x 2 root root 4096 21 ott 15.18 doc
lrwxrwxrwx 1 root root    6 18 ott 23.01 man -> ../man

I may be remembering wrongly, but I did a bit of cleaning in /usr/local after I installed a local compiled version of Clang. I remember deleting something from the libalpm directory, probably because it didn't contain anything important. Now I suppose it contained a symlink! I wonder why did that hook ended up that way tho. If I placed a copy in /etc/pacman.d by mistake I most likely didn't edit it.

Moreover, a curiosity: seeing the output of

[alessandro@commodoroII scripts]$ pacman -v
Root      : /
Conf File : /etc/pacman.conf
DB Path   : /var/lib/pacman/
Cache Dirs: /var/cache/pacman/pkg/  
Hook Dirs : /usr/share/libalpm/hooks/  /etc/pacman.d/hooks/  
Lock File : /var/lib/pacman/db.lck
Log File  : /var/log/pacman.log
GPG Dir   : /etc/pacman.d/gnupg/
Targets   : None
error: no operation specified (use -h for help)

would this mean that the second hook dir overwrites the read hooks from the first?

Anyway, you people have been extremely kind and helpful. smile Thank you very much for keeping active the distro!


We are still learning
    - wise people

Offline

#25 2022-11-02 12:42:54

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,068

Re: [SOLVED] Recurring problem with mkinitcpio after update

Google has 3 hits for those files, a gist, a manjaro forum post and it's all about https://wiki.archlinux.org/title/Unifie … acman_hook
W/o seeing /usr/local/share/libalpm/scripts/mkinitcpio-install it's gonna be impossible to say what you were trying there. *shrug*

Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.

Offline

Board footer

Powered by FluxBB