On Tue, 25.08.15 16:31, [email protected] ([email protected]) wrote: > Hi, folks: > I am dealing with a problem, which is to use a overlay filesystem as the > new root after the root system boot up. I am freshman on systemd service, so > can anyone help me on my script errors? why it's failed? > My service file, i put it under /usr/lib/systemd/system: > >>>>>> > [Unit]Description=Change root to > overlayAfter=systemd-remount-fs.serviceConditionKernelCommandLine=|systemd.setenv > [Service]TimeoutStartSec=0ExecStart=/usr/local/bin/ovl_chroot.sh > [Install]WantedBy=local-fs.target > >>>> > My bash script for changing root filesystem > >>>>#!/bin/bash echo "Start to mount overlay and change root to overlay" if [ > >>>>! -d /ovl_root/test1 ] ;then mkdir -p /ovl_root mkdir -p > >>>>/ovl_root/test1 cd /ovl_root/test1 mkdir -p root mkdir -p work > >>>> mkdir -p upperfi mount -t overlay overlay > >>>>-olowerdir=/,upperdir=/ovl_root/test1/upper,workdir=/ovl_root/test1/work > >>>>/ovl_root/test1/root cd /ovl_root/test1/root /usr/sbin/chroot > >>>>/ovl_root/test1/root >>> > This is the output of the status > >>>> > root@cr ~ # systemctl status ovl_chroot.service -l鈼?ovl_chroot.service - > Change root to overlay Loaded: loaded > (/usr/lib/systemd/system/ovl_chroot.service; enabled; vendor preset: > disabled) Active: inactive (dead) since Tue 2015-08-25 16:26:43 UTC; 24s > ago Process: 171 ExecStart=/usr/local/bin/ovl_chroot.sh (code=exited, > status=0/SUCCESS) Main PID: 171 (code=exited, status=0/SUCCESS) Aug 25 > 16:26:43 cr systemd[1]: Started Change root to overlay.Aug 25 16:26:43 cr > systemd[1]: Starting Change root to overlay...Aug 25 16:26:43 cr > ovl_chroot.sh[171]: Start to mount overlay and change root to overlayAug 25 > 16:26:43 cr ovl_chroot.sh[171]: sh: cannot set terminal process group (171): > Inappropriate ioctl for deviceAug 25 16:26:43 cr ovl_chroot.sh[171]: sh: no > job control in this shellAug 25 16:26:43 cr ovl_chroot.sh[171]: sh-4.3# exit > > >>> > But i run the script in the shell, it can change root to the specify > directory. Anyone has any ideas? > Thank you very muchXun
If you invoke "chroot" from a systemd service this will only change the root directory of that specific service, but not the rest of the system. You are probably looking for "systemctl switch-root". Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
