If you use encryption, then it’s simpler to stick with the “HOOKS=(base udev ...)” syntax than to switch to the newer “HOOKS=(systemd ...)” syntax, because the latter also requires a change in the syntax for opening and mounting the encrypted filesystem. If you are not using encryption, then the new syntax is preferable.
Don’t forget to rebuild your initramfs after modifying the file.
sudo mkinitcpio -P
pacman.conf
In general, it should be safe to overwrite the existing file with the .pacnew.
That’s just a vi/vim directive for when you open the file in vi/vim — I’m not sure what it means as I don’t use those editors. It either way bears no importance to the file itself.
Why “do not need”? How do a user could understand it for their case?
GPT 5.4 nano tells:
" In /etc/mkinitcpio.conf, the microcode hook loads your CPU’s early microcode updates into RAM during the initramfs boot stage, so the kernel can switch to the updated microcode before the OS fully takes over.
If you have a package installed (e.g., Intel/AMD microcode) and you want those fixes (stability/security/CPU errata) applied as early as possible, you include the microcode hook.
Practical check for your case:
If you have Intel: /boot/intel-ucode.img should exist.
If you have AMD: /boot/amd-ucode.img should exist. If those files exist, keeping microcode is the normal/correct approach, and you just rebuild initramfs after changing HOOKS.
"
Why do you think that an early vulnerability, stability patching give nothing?
If i may, i did the same thing with AI…
It indicates that i not need the new hook (i’m sure of that) and i deleted the pacnew.
Can i do something?
Thanks
# vim:set ft=sh:
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No RAID, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect microcode modconf block filesystems fsck)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev microcode modconf block filesystems fsck)
#
## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev microcode modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev microcode modconf block lvm2 filesystems fsck)
#
## This will create a systemd based initramfs which loads an encrypted root filesystem.
# HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev autodetect microcode kms modconf block keyboard keymap consolefont plymouth filesystems fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"