[Mageia-dev] Failed to book after systemd 187 (was: Re: Failed to boot after /usr move)

Colin Guthrie mageia at colin.guthr.ie
Tue Jul 24 11:12:09 CEST 2012


'Twas brillig, and Olivier Thauvin at 24/07/12 09:44 did gyre and gimble:
> * Colin Guthrie (mageia at colin.guthr.ie) wrote:
>> Do you mean "systemctl status cryptsetup.target"? If so I get the same
>> results here:
>>
>> [colin at jimmy spec-helper]$ systemctl status cryptsetup.target
>> cryptsetup.target
>> 	  Loaded: error (Reason: No such file or directory)
>> 	  Active: inactive (dead)
>>
> 
> Exactly.
>  
>>
>> This generally happens when a unit refers to a target as a dep but the
>> target itself is not defined.
>>
>> This target itself does seem to be AWOL in the systemd-units package.
>> Seems like an unintended (or at least unannounced) change in systemd
>> 187, so separate from the whole usr move thing, just related to a new
>> systemd version.
>>
>> I'll investigate ASAP.
> 
> Thanks, at time I workaround with "noauto" in my fstab and I mount it
> manually after boot.

OK, so it seems systemd-187 bumped the needed libcrypt version and
didn't say in the NEWS file.

I've now update cryptsetup to 1.5.0 and will rebuild systemd shortly.

Too much in the way of wildcard includes are used in the systemd
filelist so this wasn't easily spotted :s When I get a bit of time I'll
make the filelist a bit more explicit and thus this kind of thing should
be easier to catch in the future.

>>>>> BTW: /var/run and /var/lock were not migrated and I had to do it by
>>>>> hand.
>>>>
>>>> This happens if /var is on a separate partition. Is this the case with
>>>> you? I'll have to think about how to handle that more gracefully.
>>>
>>> It's the case.
>>
>>
>> Cool. Will have to work that one out then :s
> 
> Can't the switch be done online a perl/python/c programme, eg once the
> programme is loaded everything can be done. Or by providing static
> binaries of mv/rm/ln ?

Switching /var/lock would probably be OK, but /var/run typically
contains sockets for IPC and we cannot simply move these around and
across filesystems without various breakages in the live system.

Switching /bin -> /usr/bin on a live system might be possible (even
without static versions as both paths should be in the $PATH and both
library locations should be in the ldconfig path.

Besides the move works by making a (hardlinked) copy of /usr/bin first,
then copies /bin (again with hardlinks if on the same FS) to this new
folder and only at the end does it rm /bin and mv the the path into the
right place so I'm that with a little care it could all work.

What I'm less confident about is what would happen with file locking,
and some security things when doing this "live". It just seems
altogether more prudent to do it from a "safe" environment, but I'd be
happy to hear people's opinions on this one.

Probably best for a new discussion thread tho'.

Cheers

Col


-- 

Colin Guthrie
colin(at)mageia.org
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited http://www.tribalogic.net/
Open Source:
  Mageia Contributor http://www.mageia.org/
  PulseAudio Hacker http://www.pulseaudio.org/
  Trac Hacker http://trac.edgewall.org/


More information about the Mageia-dev mailing list