From b6f2e05819d9867b7ca69365091ff480556fcfe9 Mon Sep 17 00:00:00 2001 From: WANG Chao Date: Fri, 26 Apr 2013 15:16:19 +0800 Subject: [PATCH] _emergency_shell: Show current working directory correctly in shell. When dropped to emergency shell, for example, use rd.break=pre-pivot, the PS1 won't correctly show current directory we're in: pre-pivot:/# cd /sysroot/ pre-pivot:/# (still shows "/") Let's take a look at PS1 variable: (I'm adding prefix/suffix 'x' to make it clear): pre-pivot:/# echo x${PS1}x xpre-pivot:/# x (PS1 isn't dynamic) Regarding the current dracut code, it should be: pre-pivot:/# cd /sysroot/etc pre-pivot:/sysroot/etc# With this patch: pre-pivot:/# echo x${PS1}x xpre-pivot:${PWD}# x (Now PS1 is dynamic, it will show the directory correctly) I tested for both normal boot and kdump boot. Signed-off-by: WANG Chao --- modules.d/99base/dracut-lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh index 9bd25f4..5cb0add 100755 --- a/modules.d/99base/dracut-lib.sh +++ b/modules.d/99base/dracut-lib.sh @@ -926,7 +926,7 @@ _emergency_shell() local _name="$1" if [ -n "$DRACUT_SYSTEMD" ]; then > /.console_lock - echo "PS1=\"$_name:\${PWD}# \"" >/etc/profile + echo "PS1=\"$_name:\\\${PWD}# \"" >/etc/profile systemctl start dracut-emergency.service rm -f /etc/profile rm -f /.console_lock