You are not logged in.
I dual-boot windows and arch on my work laptop on a single disk with lvm and a XBOOTLDR partition. I use systemd-boot as a bootloader. It worked fine for like 3 months and then suddenly, after several updates, can't boot as it shows the following message:
:: running hook [keymap]
:: loading keymap ... done.
Waiting 10 seconds for device '<root_device>' ...
[ 7.234501] hid-generic 0003:0E8D:20FF:0001: No inputs registered, leaving
ERROR: device '<root_device>' not found. Skipping fsck.
:: mounting '<root_device>' on real root
mount: /new_root: no filesystem type specified.
You are now being dropped into an emergency shell.
sh: can't access tty: job control turned off
[rootfs ]#
Following are the outputs of :
### lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 100M 0 part /efi <-- existing Windows efi system partition
├─sda2 8:2 0 16M 0 part
├─sda3 8:3 0 458.2G 0 part <-- C:
├─sda4 8:4 0 261.1G 0 part <-- resized D:
├─sda5 8:5 0 500M 0 part /boot <-- XBOOTLDR partition
└─sda6 8:6 0 211.6G 0 part
├─volgroup0-lv_root 254:1 0 30G 0 lvm /
└─volgroup0-lv_home 254:2 0 181.6G 0 lvm /home
### cat /etc/fstab
# /dev/mapper/volgroup0-lv_root
UUID=f0480644-7a7c-42fe-a129-9de278563336 / ext4 rw,relatime 0 1
# /dev/mapper/volgroup0-lv_home
UUID=5080944b-07bc-4e29-8295-27ea557720a0 /home ext4 rw,relatime 0 2
# /dev/sda1
UUID=ECCF-B1A8 /efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/sda5
UUID=80E6-2B1C /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
### cat /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=f0480644-7a7c-42fe-a129-9de278563336 rw
I install the bootloader with this command:
# bootctl install --esp-path=/efi --boot-path=/boot
Can't find what I am doing wrong with this setup.
Thanks for your help.
I tried to chroot into the system and reinstall the kernel and systemd-boot or change the `arch.conf` file to point to the root device with labels or name but none worked
Last edited by rbaks (2023-03-07 13:32:41)
Offline
Post your mkinitcpio.conf. It was changed somewhat recently, if you didn't merge your .pacnew files correctly, this could cause what you're seeing.
Offline
Post your mkinitcpio.conf. It was changed somewhat recently, if you didn't merge your .pacnew files correctly, this could cause what you're seeing.
HI, this is my etc/mkinitcpio.conf
# 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 modconf block filesystems fsck)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev 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 modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. 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 kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"
Last edited by rbaks (2023-03-07 13:30:17)
Offline
Please edit your posts and use [ code ] tags (not quote tags) when posting output. This makes the output easier to read and provides a scroll box for long output.
https://wiki.archlinux.org/title/Genera … s_and_code
https://bbs.archlinux.org/help.php#bbcode
Offline
I am missing "lvm2" in the HOOKS list between "block" and "filesystems".
Last edited by schard (2023-03-07 12:44:06)
Inofficial first vice president of the Rust Evangelism Strike Force
Offline
I am missing "lvm2" in the HOOKS list between "block" and "filesystems".
Was suspecting that too but didn’t help fix the problem.
Last edited by rbaks (2023-03-07 13:27:07)
Offline
Maybe I didn't understand well which partition is supposed (or missing) to be the <root-device>, but did you try to mount the partition to /new_root and exit ?
Something like
# mount /dev/volgroup0/lv_root /new_root
# exit
Also check if the volumes (root and home) are activated (though I don't know if vgscan and vgchange are available in rootfs). Since adding lvm2 to the hooks didn't helped it just seems to be a mounting issue.
EDIT: To mount manually I think you should use «/dev/mapper/volgroup0-lv_root». Also did you try to specify this path instead of the UUID in your kernel parameters ?
Last edited by yaourtiere (2023-03-07 13:59:00)
Moi être francophone. I do some stupid english errors, sorry not sorry.
Offline
Tried it and it says « no filesystem type specified »
Offline
Oh,
Following this ArchWiki page, your kernel parameters should look like this :
cryptdevice=UUID=device-UUID:cryptlvm root=/dev/MyVolGroup/root
Maybe the missing «cryptlvm» specifier is the culpit.
EDIT: Corrected link
Last edited by yaourtiere (2023-03-07 14:17:49)
Moi être francophone. I do some stupid english errors, sorry not sorry.
Offline
Where should i put this parameter?
Offline
Where should i put this parameter?
<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
The kernel parameters should be specified in your entry file.
For exemple, your /boot/loader/entries/arch.conf should look like this :
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=UUID=f0480644-7a7c-42fe-a129-9de278563336:cryptlvm root=/dev/volgroup0/lv_root rw
(if the path to the lv_root is incorrect please modify it).
You can also specify it at runtime (follow this wiki instructions)
Moi être francophone. I do some stupid english errors, sorry not sorry.
Offline
Thanks for your help, though I don’t think this parameter is relevant since I don’t setup lvm on luks (correct me if I’m wrong) but I’ll try it when I get back to work
Offline
Oh no really messed up, you are not using LUKS at all T.T.
Just curious, did you obfuscate the first log with "<root_device>" or is it the real output ? And if not, is it the correct UUID ?
EDIT : What's the output if a blkid ?
Last edited by yaourtiere (2023-03-07 14:50:50)
Moi être francophone. I do some stupid english errors, sorry not sorry.
Offline
schard wrote:I am missing "lvm2" in the HOOKS list between "block" and "filesystems".
Was suspecting that too but didn’t help fix the problem.
Did you rebuild the initramfs after making that change?
Offline
Oh no really messed up, you are not using LUKS at all T.T.
Just curious, did you obfuscate the first log with "<root_device>" or is it the real output ? And if not, is it the correct UUID ?
EDIT : What's the output if a blkid ?
Since i typed it all I just made <root_device> as a placeholder but the uuid it shows really does match the root device
Offline
rbaks wrote:schard wrote:I am missing "lvm2" in the HOOKS list between "block" and "filesystems".
Was suspecting that too but didn’t help fix the problem.
Did you rebuild the initramfs after making that change?
Indeed, I could confirm the initramfs has been updated when I tried replacing udev for systemd too
Offline
Was there any errors when you regenerated it? Did you see the lvm2 hook being added?
Offline
Was there any errors when you regenerated it? Did you see the lvm2 hook being added?
I could see lvm2 hook being added with no errors a all
Offline
What I am seeing is that only /dev/sda1 and /dev/sda2 are listed in the emergency shell /dev directory and also when i run blkid. I don't know if this is a big clue to the root cause of the problem
Last edited by rbaks (2023-03-07 15:54:52)
Offline
Scimmia wrote:Was there any errors when you regenerated it? Did you see the lvm2 hook being added?
I could see lvm2 hook being added with no errors a all
I'm not using lvm2 but getting the the same error as you. Watching this thread closely for any ideas to help me resolve this issue as 6.1.xx boots perfect and 6.2.xx boots to rootfs every other boot with systemd-boot as the bootloader.
Offline
Same problem here this very morning after an update.
I spent a couple of hours on the arch-chroot trying things and getting the same error until, finally, I added MODULES=( vmd ) line in /etc/mkinitcpio.conf and regenerated my images with mkinitcpio -P from the chroot.
Back to work.
Last edited by snazza (2023-03-07 21:54:41)
Offline
Thanks @snazza, seems to have worked on my rig as I do have a Intel and NVMe, done 10 boots if not more.
Hope this helps the @rbaks
Offline
Thanks @snazza, seems to have worked on my rig as I do have a Intel and NVMe, done 10 boots if not more.
Hope this helps the @rbaks
No problem @sammiev, I'm glad it worked out for you! BTW I'm running on AMD Ryzen and NVMe.
Offline
Same problem here this very morning after an update.
I spent a couple of hours on the arch-chroot trying things and getting the same error until, finally, I added MODULES=( vmd ) line in /etc/mkinitcpio.conf and regenerated my images with mkinitcpio -P from the chroot.
Back to work.
What is the process of identifying the module to add? i ran
lspci -nnk
to find the kernel module attached to the SATA controller and found
ahci
so I added MODULES=(ahci), rebuilt the initramfs but still, the issue persists
Last edited by rbaks (2023-03-08 12:08:47)
Offline