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

Reply via email to