Hi All:
        I am trying to test the latest upstream kernel, But i encounter a 
strange issue about systemd.
When the "systemd" extracted from initrd image mounts the real root file system 
"hda.img" on "/sysroot" and changes root to the new directory,  it can not 
found "/sbin/init" and "/bin/sh".
In fact, These two files exist in the "hda.img".
How to debug this issue?
Why does not it enter emergency mode?
If enter emergency mode, maybe this issue become easy.

qemu command line:
qemu-kvm -D /tmp/qemu-kvm-machine.log -m 1024M -append 
"root=UUID=20059b62-2542-4a85-80cf-41da6e0c1137 rootflags=rw rootfstype=ext4 
debug debug_objects console=ttyS0,115200n8 console=tty0
 rd.debug rd.shell=1 log_buf_len=1M systemd.unit=emergency.target 
systemd.log_level=debug systemd.log_target=console" -kernel 
./qemu_platform/bzImage -hda ./qemu_platform/hda.img 
-initrd ./qemu_platform/initrd-4.1.0-rc2-7-desktop+ -device 
e1000,netdev=network0 -netdev user,id=network0 -serial 
file:/home/sean/work/source/upstream/kernel.org/ttys0.txt

Job initrd-switch-root.target/start finished, result=done
Accepted new private connection.
Got message type=signal sender=n/a destination=n/a 
object=/org/freedesktop/systemd1/agent interface=org.freedesktop.systemd1.Agent 
member=Released cookie=1 reply_cookie=0 error=n/a
Got disconnect on private connection.
Received SIGCHLD from PID 520 (plymouth).
Child 520 (plymouth) died (code=exited, status=0/SUCCESS)
Child 520 belongs to plymouth-switch-root.service
plymouth-switch-root.service: main process exited, code=exited, status=0/SUCCESS
plymouth-switch-root.service changed start -> dead
Job plymouth-switch-root.service/start finished, result=done
plymouth-switch-root.service: cgroup is empty
ConditionPathExists=/etc/initrd-release succeeded for 
initrd-switch-root.service.
About to execute: /usr/bin/systemctl --no-block --force switch-root /sysroot
Forked /usr/bin/systemctl as 527
initrd-switch-root.service changed dead -> start
Accepted new private connection.
Got message type=method_call sender=n/a destination=org.freedesktop.systemd1 
object=/org/freedesktop/systemd1 interface=org.freedesktop.systemd1.Manager 
member=SwitchRoot cookie=1 reply_cookie=0 error=n/a
Sent message type=method_return sender=n/a destination=n/a object=n/a 
interface=n/a member=n/a cookie=1 reply_cookie=1 error=n/a
Serializing state to /run/systemd
Switching root.
Closing left-over fd 21
Closing left-over fd 22
Closing left-over fd 23
Closing left-over fd 26
Closing left-over fd 27
No /sbin/init, trying fallback
Failed to execute /bin/sh, giving up: No such file or directory

sean@linux-dunz:~/work/source/upstream/kernel.org/qemu_platform> sudo mount -o 
loop ./hda.img ./hda
sean@linux-dunz:~/work/source/upstream/kernel.org/qemu_platform> ls -l 
./hda/sbin/init
lrwxrwxrwx 1 sean users 26 Jul 14 22:49 ./hda/sbin/init -> 
../usr/lib/systemd/systemd
sean@linux-dunz:~/work/source/upstream/kernel.org/qemu_platform> ls -l 
./hda/bin/sh
lrwxrwxrwx 1 sean users 4 Oct 26  2014 ./hda/bin/sh -> bash

sean@linux-dunz:~/work/source/upstream/kernel.org/qemu_platform> lsinitrd 
./initrd-4.1.0-rc2-7-desktop+ |grep "sbin\/init"
-rwxr-xr-x   1 root     root         1223 Nov 27  2014 sbin/initqueue
lrwxrwxrwx   1 root     root           26 Jul 14 21:00 sbin/init -> 
../usr/lib/systemd/systemd
sean@linux-dunz:~/work/source/upstream/kernel.org/qemu_platform> lsinitrd 
./initrd-4.1.0-rc2-7-desktop+ |grep "bin\/sh"
lrwxrwxrwx   1 root     root            4 Jul 14 21:00 bin/sh -> bash



-- 
Sean. XinRong Fu
Dedicate System Engineer
SUSE
x...@suse.com
(P)+86 18566229618


line

SUSE



-- 
Sean. XinRong Fu
Dedicate System Engineer
SUSE
x...@suse.com
(P)+86 18566229618


line

SUSE



_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to