Report from the research mailing list:
some colleagues and myself had a small SLES 12 troubleshooting workshop today. We were playing around with the rescue system. There is this magic tool called "systemd-nspawn" that is explained as "chroot on steroids".
But we actually failed to get it working.
There is no documentation to be found (except a small man page). All articles we found on the web are on different distributions (Fedora, Debian, etc.) and are no real help.
Some of the stuff we reviewed: https://en.opensuse.org/User:Tsu2/chroot-nspawn-OpenStack#chroot http://0pointer.de/blog/projects/changing-roots http://0pointer.de/public/systemd-man/systemd-nspawn.html http://www.projectatomic.io/blog/2014/10/atomic-rescue-mode/
and many more.
So we found out that you need some kind of "binary tree" to make this work. The error code we get is like: "Directory /root lacks the binary to execute or doesn't look like a binary tree. Refusing"
We then tried to mount the boot partition and run it in there, but running "systemd-nspawn -D ." there returned an error containing stuff like "MSSLAVEIMSREC failed: invalid argument"
The man page says: "Use a tool like yum(8), debootstrap(8), or pacman(8) to set up an OS directory tree suitable as file system hierarchy for systemd-nspawn containers."
We were able to create a normal CHROOT environment, but of course we do not have access to the "systemctl" scripts (known issue with systemd).
The question really is: What did we miss? Is there any documentation? Has someone used it already on SLES 12 (or maybe OpenSUSE?). Is "systemd-nspawn" the right way at all? If chroot is the right way, how can we get the systemctl script working?
This project is one of its kind!