On 11/06/2010 10:46 PM, Andrey Borzenkov wrote:
It is not clearly documented, but apparently fsck (or, probably, getmntent) is using backslash as escape character. Label containing slash is converted to \x2f but '\' is eaten by fsck later. Escape '\' before writing into fstab. v2: - fix sed expression - use printf instead of echo because echo eats '\' as well Signed-off-by: Andrey Borzenkov<arvidjaar@xxxxxxxxx> --- modules.d/95rootfs-block/mount-root.sh | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh index ff64209..9065bed 100755 --- a/modules.d/95rootfs-block/mount-root.sh +++ b/modules.d/95rootfs-block/mount-root.sh @@ -106,7 +106,9 @@ if [ -n "$root" -a -z "${root%%block:*}" ]; then done fi - echo ${root#block:} "$NEWROOT" "$rootfs" ${rflags},${rootopts} 1 1> /etc/fstab + # backslashes are treated as escape character in fstab + esc_root=$(echo ${root#block:} | sed 's,\\,\\\\,g') + printf "%s $NEWROOT $rootfs ${rflags},${rootopts} 1 1\n" "$esc_root"> /etc/fstab if [ -z "$fastboot" -a "$READONLY" != "yes" ]; then info "Checking filesystems"
pushed -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html