FS#41097 - [systemd] 215 causes swtch_root to fail

Attached to Project: Arch Linux
Opened by Curtis Shimamoto (WonderWoofy) - Saturday, 05 July 2014, 04:47 GMT
Last edited by Dave Reisner (falconindy) - Monday, 07 July 2014, 12:56 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Dave Reisner (falconindy)
Tom Gundersen (tomegun)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 5
Private No

Details

Description:
systemd 215 makes system unbootable immediately after update. It does not make it out of the initramfs, as the switch_root fails. I think this may be because /etc/os-release is not symlinked to /usr/lib/os-release.

Additional info:
* systemd 215
* /etc/os-release

Steps to reproduce:
Update from systemd 214 to 215. Reboot. Watch failure.

I was able to get my machine back up and running pretty easily. I booted into the archiso, then mounted my filesystem. All the changes to make a stateless system with 215 make me suspect it had something to do with things being moved to /usr, so I tried booting the system with systemd-nspawn. It complained about the lack of /etc/os-release.

I manually symlinked /etc/os-release, but since I was booted into the archiso, I figured I would rebuild the initramfs as well to ensure that systemd 215 was also included there as well. So I am not entirely sure whether it is ultimately due to the mismatch between systemd versions in the initramfs or the lack or /etc/os-release or both.
This task depends upon

Closed by  Dave Reisner (falconindy)
Monday, 07 July 2014, 12:56 GMT
Reason for closing:  Fixed
Additional comments about closing:  systemd-215-2
Comment by Gaetan Bisson (vesath) - Saturday, 05 July 2014, 05:11 GMT
Upgrading to systemd-215-1 and rebooting worked flawlessly for me (just once, now I'm afraid to try my luck again). There's a line in /usr/lib/tmpfiles.d/etc.conf that goes: "L /etc/os-release - - - - ../usr/lib/os-release". Shouldn't it create the symlink? Or is there a race condition?
Comment by Curtis Shimamoto (WonderWoofy) - Saturday, 05 July 2014, 05:30 GMT
I think the problem was that my machine didn't make it out of the initramfs, so the systemd-tmpfiles.service didn't run. But that is just a guess. I didn't realy debug this issue, but simply did the things I mentioned above and rebooted.

Interestingly, I have another machine that worked just fine. So I am not entirely sure what might have gone awry with my laptop here. There is a thread about this on the forums though... maybe more interesting info might arise.

https://bbs.archlinux.org/viewtopic.php?id=183796

There was also a message to [arch-general] within the past couple of hours.
Comment by phanisvara das (phani00) - Saturday, 05 July 2014, 05:32 GMT
after upgrading systemd i read about this on the ML and ran "mkinitcpio -p" before rebooting. there wasn't any problem, and there's a symlink as /etc/os-release now. not sure when that happened, during the upgrade or mkinitcpio. if the latter, we're going to see more complaints i imagine...
Comment by Andreas Radke (AndyRTR) - Saturday, 05 July 2014, 07:04 GMT
Is there an easy way with some kernel boot option to get the system up again to fix it or will I have to use some rescue usb stick?
Comment by Curtis Shimamoto (WonderWoofy) - Saturday, 05 July 2014, 07:08 GMT
I couldn't even get it to break=premount. So I had to resort to the archiso.
Comment by Andreas Radke (AndyRTR) - Saturday, 05 July 2014, 07:43 GMT
Same here. Also used arch-chroot /mnt/arch /usr/bin/mkinitcpio -p linux from a rescue usb stick.
Comment by Dave Reisner (falconindy) - Saturday, 05 July 2014, 13:57 GMT
No problems here on my desktop or any VMs. I don't understand why people are pointing at os-release being relevant -- it's *never* been a part of the initramfs. Rather, /etc/initrd-release exists because the initramfs isn't an OS at all.
Comment by Dave Reisner (falconindy) - Saturday, 05 July 2014, 14:20 GMT
Ah, people aren't rebuilding their initramfs after upgrading systemd. Older systemd won't read /usr/lib/os-release and claims that the new root isn't a proper OS tree.
Comment by Dave Reisner (falconindy) - Saturday, 05 July 2014, 14:56 GMT
systemd-215-2 will create this symlink on upgrade.

Loading...