You are not logged in.
I was following the installation guide closely, with no deviations except for having a separate boot partition from ESP and an encrypted root filesystem, none of which I think should have anything to do with this.
What happens is that once I run `pacstrap -K /mnt ...`, I get the following error during building initramfs:
ERROR: file not found: `/etc/vconsole.conf` and then at the end of the initramfs building, a warning, obviously caused by this:
WARNING: errors were encountered during the build. The image may not be complete. Also, there was no usual message "Initcpio image generation successful".
I wasn't surprised that this file was not found, since I didn't do any of the steps in `1.5 Set the console keyboard layout and font`, due to them being optional and I was ok with the defaults (althoug there is no mention of vconsole.conf there, only later after chrooting).
I was surprised, though, that it was reported as an error, and wasn't sure if the image is indeed now broken in some way or not.
I decided to continue with the installation procedure and see what happens.
Once I got to the part where we can adjust initramfs if needed, which I needed to because of disk encryption, I again encountered the same behaviour once I ran `mknitcpio -p linux`: again got that error + final warning.
What I did then is just
echo "#KEYMAP=us" > /etc/vconsole.conf and that removed the error (and warning).
Is there something I did wrong / missed? If not, I would imagine others will also hit this error while going through installation guide, and it is quite scary looking, so potentially it should be communicated that they need to create that file?
Btw I found this older topic from 2013: https://bbs.archlinux.org/viewtopic.php?id=170812, seemed to be the same thing, but advice was to create the vconsole.conf file. Which is the right advice, but I am not looking for a fix here, instead looking for how to avoid having others hit this.
Thanks!
Last edited by Martinsos (2025-11-16 12:15:15)
Emacs, Arch Linux. Haskell, web dev
Offline
I noticed this line on my zfs build vm since a few days - but as it uses clean-chroot-manager for the build it likely doesn't copy the systems vconsole.conf
as this is a recent issue it seems some recent update has changed how mkinitcpio creates the initrd
this actually somewhat causes a loop error in the install guide: the initial initrd is first created during pacstrap when a kernel is given - so before the user even has a chance to create a vconsole.conf - no matter if they inted to use it or not - which makes the otherwise optional call to mkinitcpio now mandatory to create a proper initrd after vconsole.conf has been created
*sigh* - I'm not sure if this is arch specific - but it's yet another of those changes which likely has good intentions and maybe the issue didn't even popped up during testing because likely noone bothered to try the change for a clean setup - but now it's out in the wild and causes issues all over the place
remembers me of that one audio-over-usb which caused issues with several usb audio interfaces while others were not affected depending on the used chipsets
or the issue with amd gpus not able to proper warm reboot
or the time when a patch to ahci.c caused cheap s-ata port-multipliers to fail because a patch meant to fix timeouts caused side-effects
or similar ... I'm sure every dev does thier patches with good intentions - but from all these incidents it somewhat feels like a lack of thoroughly testing before rolling out upstream
I have to deal with such on a daily basis in my job: as I work with SAP and the current S4/HANA seems to be developed outside of germany only english alphabet with standard 26 latin letters were tested - but german has additional characters - and as germany is a migration target many people bring in additional charachters of thier languages like the nordics with the o with a dash or the swedes with a with a circle ontop - or the poles with the L with a dash ... and all these edge cases were just not tested before go live - and the very first customer registered new after the go live had such a special characters - and that's an issue since 03.12.24 which is still unresolved - but hey, who could have seen that comming when a german company developing a system for the german market has it done somewhere in the east just to drop labor cost - where people don'T even understand the market and laws they develop that system for?
TL;DR: to me this screams "regression" and has to be either reverted or redone in mkinitcpio upstream because someone responsible for that change seem to have missed some important edge cases - until now: create a (dummy) vconsole.conf and call mkinitcpio yourself as a workaround
Offline
It's really much simpler than all of that. If you don't have vconsole.conf, why are you using the sd-vconsole hook?
Online
TL;DR: to me this screams "regression" and has to be either reverted or redone in mkinitcpio upstream because someone responsible for that change seem to have missed some important edge cases - until now: create a (dummy) vconsole.conf and call mkinitcpio yourself as a workaround
Not a regression, the problem has been present for years, possibly since 2013 (when the sd-vconsole hook was added to mkinitcpio ?) .
Since the default was busybox and the sd-vconsole hook only works when using systemd not many encountered it until the recent switch.
someone should probably file a bug against mkinitcpio to give a more descriptive error message.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
It's really much simpler than all of that. If you don't have vconsole.conf, why are you using the sd-vconsole hook?
But this happens during `pacstrap` step, when you are not yet expected to be doing any mkinitcpio configuring. Additionally, on the root file system, once initial installation is done, mkinitpcio.conf now by default comes with sd-vconsole, I haven't added that on my own.
Ok, thanks everybody for the answers -> it sounds like I hit the known problem, and as you said, real fix might be to go upstream to mkinitcpio and possibly relax that error to warning or something.
That said, I am imagining that won't be an easy change to push + it is a bit out of my depth at the moment, so I wonder in the meantime, is there a way to mitigate this on the Arch side?
Specifically, how can we avoid all the people going through installation guide not hitting this and being confused by it? if I am following the intstallation guide with no deviations, I shouldn't be hitting any errors, so it does sound to me like this is sometihng that should be taken care of on the Arch side.
Maybe just adding a "note" about this, that error is not a problem, or that they should create an empty vconsole.conf themselves?
Maybe Arch live image could come with already empty vconsole.conf + create one on the root filesystem during `pacstrap` step?
Or should `sd-vconsole` not be by default under the HOOKS?
Or does that all sound too much like patchwork (I am missing too much context/knowledge to be able to tell)?
Last edited by Martinsos (2025-11-16 14:02:37)
Emacs, Arch Linux. Haskell, web dev
Offline
Specifically, how can we avoid All the people those who skip https://wiki.archlinux.org/title/Instal … t_and_font (US QWERTY w/o HiDPI) going through installation guide not hitting this and being confused by it?
The easy way to avoid this is probably to have an empty vconsole.conf dummy.
Otherwise https://gitlab.archlinux.org/archlinux/ … =heads#L13 should™ just not run unconditionally but have some "[ -e /etc/vconsole.conf ] &&" guarding it.
Offline
Specifically, how can we avoid All the people those who skip https://wiki.archlinux.org/title/Instal … t_and_font (US QWERTY w/o HiDPI) going through installation guide not hitting this and being confused by it?
The easy way to avoid this is probably to have an empty vconsole.conf dummy.
Otherwise https://gitlab.archlinux.org/archlinux/ … =heads#L13 should™ just not run unconditionally but have some "[ -e /etc/vconsole.conf ] &&" guarding it.
I am not new to contributing to open source, but mostly I did so for the newer, "simpler" projects, and never for Arch -> is this something I should open a PR for or raise an issue somewhere, what are the next steps?
Last edited by Martinsos (2025-11-18 12:10:08)
Emacs, Arch Linux. Haskell, web dev
Offline
Kinda related to https://gitlab.archlinux.org/archlinux/ … issues/139
Do you have a gitlab.archlinux.org / SSO account?
Ftr, this doesn't cause any kind of actual failure, just an irritating message, right?
Offline
Hello, just adding to this discussion, I followed the install guide and did set my keyboard layout with
loadkeys fras suggested, and used a font for HiDPI screens, running the suggested
setfont ter-132bFrom the earlier messages in this thread it seems like I should have a /etc/vconsole.conf file, right ?
Yet I have the same error telling me the file doesn't exist when I run pacstrap.
However, the file exists !
I wanted a fix (first install) so i just created the file with my keymap inside.
The error persists, even though the file exists, even after writing to it myself (over the "default" one).
I used the most recent install iso (archlinux-2025.12.01-x86_64.iso) I could grab from a local mirror for this.
Last edited by goz (2025-12-14 18:27:06)
Offline
There is no default one. Remember, this is *inside* the chroot/new system, not on the ISO.
Last edited by Scimmia (2025-12-14 20:31:09)
Online
Just to be sure : https://wiki.archlinux.org/title/Instal … stallation sections 2 & 3
The install guide recommends that you chroot after having installed the packages you deem necessary with pacstrap, right ?
Then why does pacstrap look into a (most likely) empty filesystem to then complain it doesn't find a file that we didn't have the chance to create yet ?
I ended up creating the /etc/vconsole.conf file in my disk filesystem, and everything went right after that, but I do find it scary that the thing preparing my environment errors & warns me about possibly not finishing, when reading along has me still in the live environment, not yet chroot'ed into the one I'm installing.
The /etc/vconsole.conf file exists in the live environment (obvious in hindsight), which adds to the confusion, since at that point (section 2) it's the only environment we are "in".
Please do correct me if I missed something, skipped over a warning that clarifies this, but right now it seems that the installation guide will have this error/warning for all users following it to the letter (and not just the ones that didn't touch the keyboard layout, which was the point of me commenting in this thread).
Last edited by goz (2025-12-14 21:59:22)
Offline
Before you chrrot the relevant file is /mnt/etc/vconsole.conf, not /etc/vconsole.conf
scary that the thing preparing my environment errors & warns me about possibly not finishing
Here be monsters.
What exactly does the error say?
But yeah, the installation guide actually only explicitly tells you to configure the install iso environment (which is a minor point anyway since it would still affect all US Americans - I just touched on the "all")
=> https://bbs.archlinux.org/viewtopic.php … 0#p2273010
Offline