[systemd-devel] install Fedora systemd-nspawn container on btrfs

arnaud gaboury arnaud.gaboury at gmail.com
Thu Apr 23 10:00:01 PDT 2015


On Thu, Apr 23, 2015 at 4:47 PM, Lennart Poettering
<lennart at poettering.net> wrote:
> On Thu, 23.04.15 14:18, arnaud gaboury (arnaud.gaboury at gmail.com) wrote:
>
>> > Pick one:
>> >
>> > a) download the raw image and use that, but it will be a loopback file
>> > with its own file system inside
>> >
>> > or:
>> >
>> > b) do the dnf/yum install root thing, and install it into a directory
>> > tree.
>>
>> I installed yum package on Arch but couldn't manage to do the install.
>>
>> # yum -y --releasever=22 --nogpg --installroot=/var/lib/machines/enl
>> --disablerepo='*' --enablerepo=fedora install systemd passwd dnf
>> fedora-release-server
>> Error getting repository data for fedora, repository not found
>> # yum repolist all
>> repolist: 0
>>
>> In fact, /etc/yum/repos.d is empty, so I am not surprised.
>
> Of course, you could use the .raw image, mount the extern btrfs volume
> into it via nspawn's --bind= switch, then use yum inside of that
> container to install into the btrfs volume. Then get rid of the .raw
> image again, and you still have the btrfs volume that should be
> bootable.
>
> A bit complex, but you almost were there already... ;-)

Wunderbach

# systemd-nspawn -M Fedora-Cloud-Base-22_Beta-20150415.x86_64.raw --
bind=/var/lib/machines/enl:/mnt
[root at Fedora-Cloud-Base-22_Beta-20150415 ~]#dnf -y --releasever=22
--nogpg --installroot=/mnt
 --disablerepo='*' --enablerepo=fedora install systemd passwd dnf
................
Complete!

-------------------------------------------------------------------------
$ ls /var/lib/machines/enl
boot/  etc/   media/  opt/   root/  srv/  tmp/  var/  lib@    sbin@
dev/   home/  mnt/    proc/  run/   sys/  usr/  bin@  lib64@
-------------------------------------------------------------------------------------

But now booting but hanging:

#systemd-nspawn -bD /var/lib/machines/enl
Spawning container enl on /var/lib/machines/enl.
Press ^] three times within 1s to kill container.
systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA
-APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL
+XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
Detected virtualization 'systemd-nspawn'.
Detected architecture 'x86-64'.
Running with unpopulated /etc.

Welcome to Fedora 22 (Twenty Two)!

Initializing machine ID from random generator.
Populated /etc with preset unit settings.
Unit etc.mount is bound to inactive unit dev-sdb1.device. Stopping, too.
Unit var.mount is bound to inactive unit dev-sdb1.device. Stopping, too.
Cannot add dependency job for unit display-manager.service, ignoring:
Unit display-manager.service failed to load: No such file or
directory.
Startup finished in 51ms.

------------------------------------------------------------------------

Maybe my btrfs story ?
> Unit etc.mount is bound to inactive unit dev-sdb1.device. Stopping, too.
> Unit var.mount is bound to inactive unit dev-sdb1.device. Stopping, too.
Will investigate.

--bind was certainly the most easy trick once the raw image is downloaded.

>
> Lennart
>
> --
> Lennart Poettering, Red Hat



-- 

google.com/+arnaudgabourygabx


More information about the systemd-devel mailing list