systemd em LXC infinitamente tentando desmontar pam_mount home

0

Eu uso o seguinte $HOME/.pam_mount.conf.xml para montar um sistema de arquivos do contêiner LXC quando efetuo login via SSH:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<!--
        See pam_mount.conf(5) for a description.
-->

<pam_mount>

                <!-- debug should come before everything else,
                since this file is still processed in a single pass
                from top-to-bottom -->

<debug enable="0" />

                <!-- Volume definitions -->

<volume
    user="user" path="/dev/sda2" mountpoint="/var/lib/lxc/container"
    fstype="crypt" options="exec,fsck" />
<volume
    user="user" mountpoint="/home/user.orig"
    path="/home/user" options="nosuid,nodev,bind" />
<volume
    user="user" mountpoint="~"
    path="/var/lib/lxc/container/rootfs/home/user"
    options="nosuid,nodev,bind" />


                <!-- pam_mount parameters: General tunables -->

</pam_mount>

Em seguida, inicio o contêiner LXC após o login. Desde a atualização para o Ubuntu vivid, o contêiner /var/log/syslog é inundado com a seguinte sequência de log:

Jun  1 21:09:43 container systemd[1]: Unit home-user.mount is bound to inactive unit dev-mapper-_dev_sda2.device. Stopping, too.
Jun  1 21:09:43 container systemd[1]: Unmounting /home/user...
Jun  1 21:09:44 container umount[5799]: umount: /home/user: target is busy
Jun  1 21:09:44 container umount[5799]: (In some cases useful info about processes that
Jun  1 21:09:44 container umount[5799]: use the device is found by lsof(8) or fuser(1).)
Jun  1 21:09:44 container systemd[1]: home-user.mount mount process exited, code=exited status=32
Jun  1 21:09:44 container systemd[1]: Failed unmounting /home/user.

Como posso resolver isso? Existe alguma maneira de dizer ao systemd do contêiner para não gerenciar essa montagem?

    
por Ross Patterson 01.06.2015 / 23:12

1 resposta

0

Este é um problema conhecido com o systemd. Se o dispositivo é criado no initramfs, ele recebe um SYSTEMD_STATUS = 0 e é sempre visto como um dispositivo inativo. Eu tenho o mesmo problema com um initramfs personalizado que não tem um systemd embutido. Eu tenho tentado encontrar alguma maneira on-line para fazer udev e systemd ciente de que o dispositivo é realmente iniciado e alterar seu status, mas parece um beco sem saída.

Muitos dos posts vistos dos desenvolvedores também são desanimadores, já que eles não vêem isso como um problema.

    
por Treah 19.06.2015 / 01:47