FS#68785 - [systemd] time out waiting for root= which is specified with a quoted space

Attached to Project: Arch Linux
Opened by nl6720 (nl6720) - Sunday, 29 November 2020, 11:23 GMT
Last edited by Christian Hesse (eworm) - Tuesday, 08 December 2020, 12:09 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Christian Hesse (eworm)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

After updating to systemd 247, systemd-based initramfs has issues booting if the root= kernel parameter's value has a quoted space. E.g. root="PARTLABEL=Arch Linux" .

It times out waiting for the device and starts the emergency mode. Since the root account in the initramfs is locked (because of "security reasons" 🙄), there is no shell. Strangely, after pressing Enter at the "Press Enter to continue" prompt it continues booting normally and succeeds.

Journal:

systemd[1]: dev-disk-by\x2dpartlabel-Arch\x5cx20Linux.device: Job dev-disk-by\x2dpartlabel-Arch\x5cx20Linux.device/start timed out.
systemd[1]: Timed out waiting for device /dev/disk/by-partlabel/Arch\x20Linux.
systemd[1]: Dependency failed for Initrd Root Device.
systemd[1]: initrd-root-device.target: Job initrd-root-device.target/start failed with result 'dependency'.
systemd[1]: initrd-root-device.target: Triggering OnFailure= dependencies.
systemd[1]: Dependency failed for /sysroot.
kernel: audit: type=1130 audit(1606647217.833:8): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='unit=emergency comm="systemd" exe="/init" hostname=? addr=? terminal=? res=success'
systemd[1]: Dependency failed for Initrd Root File System.
systemd[1]: Dependency failed for Reload Configuration from the Real Root.
systemd[1]: initrd-parse-etc.service: Job initrd-parse-etc.service/start failed with result 'dependency'.
systemd[1]: initrd-parse-etc.service: Triggering OnFailure= dependencies.
systemd[1]: initrd-root-fs.target: Job initrd-root-fs.target/start failed with result 'dependency'.
systemd[1]: initrd-root-fs.target: Triggering OnFailure= dependencies.
systemd[1]: sysroot.mount: Job sysroot.mount/start failed with result 'dependency'.
systemd[1]: Dependency failed for File System Check on /dev/disk/by-partlabel/Arch\x20Linux.
systemd[1]: systemd-fsck-root.service: Job systemd-fsck-root.service/start failed with result 'dependency'.
systemd[1]: dev-disk-by\x2dpartlabel-Arch\x5cx20Linux.device: Job dev-disk-by\x2dpartlabel-Arch\x5cx20Linux.device/start failed with result 'timeout'.


Additional info:
* package version(s)
* config and/or log files etc.
* link to upstream bug report, if any
systemd 247-1
mkinitcpio 29-1
linux 5.9.11.arch2-1


Steps to reproduce:
Set the root partition's PARTLABEL to a value with a space.
Configure the boot loader to use root="PARTLABEL=root partlabel value".
Edit /etc/mkinitcpio.conf for systemd-based initramfs.
Regenerate the initramfs.
Reboot.
This task depends upon

Closed by  Christian Hesse (eworm)
Tuesday, 08 December 2020, 12:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  systemd 247.1-2
Comment by Doug Newgard (Scimmia) - Sunday, 29 November 2020, 12:10 GMT
Someone else was telling me they saw the same thing using a PARTLABEL with spaces in fstab. Have you reported this upstream?
Comment by nl6720 (nl6720) - Sunday, 29 November 2020, 12:15 GMT
I haven't yet reported this upstream.

About fstab, AFAIK it has never supported spaces, I've always used \040 in it ( https://wiki.archlinux.org/index.php/Fstab#Filepath_spaces ).
Comment by Doug Newgard (Scimmia) - Sunday, 29 November 2020, 12:19 GMT
Which is still a space, just represented differently. And what the person in question was using.
Comment by nl6720 (nl6720) - Sunday, 29 November 2020, 12:50 GMT
You're correct, it's the same issue with fstab.

Just tried it with:

PARTLABEL=data\040disk /data xfs rw,relatime,nodev,nosuid,attr2,inode64,noquota 0 2

And got:

systemd[1]: dev-disk-by\x2dpartlabel-data\x5cx20disk.device: Job dev-disk-by\x2dpartlabel-data\x5cx20disk.device/start timed out.
systemd[1]: Timed out waiting for device /dev/disk/by-partlabel/data\x20disk.
systemd[1]: Dependency failed for File System Check on /dev/disk/by-partlabel/data\x20disk.
systemd[1]: Dependency failed for /data.
systemd[1]: Dependency failed for Local File Systems.
systemd[1]: local-fs.target: Job local-fs.target/start failed with result 'dependency'.
systemd[1]: local-fs.target: Triggering OnFailure= dependencies.
systemd[1]: data.mount: Job data.mount/start failed with result 'dependency'.
systemd[1]: systemd-fsck@dev-disk-by\x2dpartlabel-data\x5cx20disk.service: Job systemd-fsck@dev-disk-by\x2dpartlabel-data\x5cx20disk.service/start failed with result 'dependency'.
systemd[1]: dev-disk-by\x2dpartlabel-data\x5cx20disk.device: Job dev-disk-by\x2dpartlabel-data\x5cx20disk.device/start failed with result 'timeout'.
Comment by nl6720 (nl6720) - Sunday, 29 November 2020, 13:09 GMT

Loading...