diff --git a/aur/PKGBUILD b/aur/PKGBUILD
index 33a185ef2f0bfde055326de2ae517eb815ac63db..c3b14462b1ac6f4e5c41f211476373aa79f8f197 100644
--- a/aur/PKGBUILD
+++ b/aur/PKGBUILD
@@ -3,7 +3,7 @@
 # Mirror: https://github.com/recolic/shared-bootdir-helper
 
 pkgname=shared-bootdir-helper
-pkgver=1.0
+pkgver=1.1
 pkgrel=1
 pkgdesc="Allow multiple linux installations to share the same /boot directory, even with different kernel parameters. "
 url="https://git.recolic.net/root/$pkgname"
diff --git a/src/shared-bootdir-helper-multi-kparam.cfg b/src/shared-bootdir-helper-multi-kparam.cfg
index 569fc1d95031b2f7c81922e3cb22014ddb9ad6e9..3573e2041051b7c5ea8286fe4dac77415e659417 100644
--- a/src/shared-bootdir-helper-multi-kparam.cfg
+++ b/src/shared-bootdir-helper-multi-kparam.cfg
@@ -1,14 +1,12 @@
 
-# You use this placeholder in GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub
-placeholder="__KERNEL_PARAMETER_MANAGED_BY_HELPER"
-
 # mapping between hostname and kernel parameters. 
 declare -A map_hostname_to_kparam=(
     # Parameters can not contain `|` character, which will crash this naive script. 
     # hostname MUST be in lowercase, because `hook-kernel-rename.sh` converts hostname to lowercase. 
+    # kernel parameters MUST at least contain `root=xxx rw` to make kernel working. 
     # This is some examples: 
-    ["recolicpc"]="quiet amdgpu.ppfeaturemask=0xffffffff cryptdevice=/dev/disk/by-id/nvme-SAMSUNG_MZVLW256HEHP-xxxxxxxxxxxx:cryptlvm:allow-discards cryptkey=/dev/disk/by-partlabel/xxxxxxxx:0:64 crypto=:aes-xts-plain64:512:0:"
-    ["recolicmpc"]="quiet cryptdevice=/dev/disk/by-id/ata-SAMSUNG_MZNTY128HDHP-000xxxxxxxxxx:cryptlvm:allow-discards cryptkey=/dev/disk/by-partlabel/xxxxxxx:0:64 crypto=:aes-xts-plain64:512:0: resume=/dev/RecolicmpcVolGroup/swap"
-    ["recolicmsmpc"]="quiet cryptdevice=/dev/disk/by-id/xxxxxxxxxxxxxxxxxx:cryptlvm cryptkey=/dev/disk/by-partlabel/xxxxxxxx:0:64 crypto=xxxxxxxxxxxxxxxxxxxxxx"
+    ["recolicpc"]="root=/dev/mapper/RecolicpcVolGroup-root rw quiet amdgpu.ppfeaturemask=0xffffffff cryptdevice=/dev/disk/by-id/nvme-SAMSUNG_MZVLW256HEHP-xxxxxxxxxxxx:cryptlvm:allow-discards cryptkey=/dev/disk/by-partlabel/xxxxxxxx:0:64 crypto=:aes-xts-plain64:512:0:"
+    ["recolicmpc"]="root=/dev/mapper/RecolicmpcVolGroup-root rw quiet cryptdevice=/dev/disk/by-id/ata-SAMSUNG_MZNTY128HDHP-000xxxxxxxxxx:cryptlvm:allow-discards cryptkey=/dev/disk/by-partlabel/xxxxxxx:0:64 crypto=:aes-xts-plain64:512:0: resume=/dev/RecolicmpcVolGroup/swap"
+    ["recolicmsmpc"]="root=/dev/mapper/RecolicmsmpcVolGroup-root rw quiet cryptdevice=/dev/disk/by-id/xxxxxxxxxxxxxxxxxx:cryptlvm cryptkey=/dev/disk/by-partlabel/xxxxxxxx:0:64 crypto=xxxxxxxxxxxxxxxxxxxxxx"
 )
 
diff --git a/src/shared-bootdir-helper-multi-kparam.sh b/src/shared-bootdir-helper-multi-kparam.sh
index 1f3f8f6fe85bd7be21dc7c42cf715787e87c5a95..dc69ac77fb226c9cb551449fb314407e8f81385f 100755
--- a/src/shared-bootdir-helper-multi-kparam.sh
+++ b/src/shared-bootdir-helper-multi-kparam.sh
@@ -10,6 +10,8 @@
 #   to correct kernel parameters. 
 #
 # Usage: ./this.sh /boot/grub/grub.cfg
+#
+# Note that grub.cfg must be auto-generated, to make its format correct. 
 
 source "/etc/shared-bootdir-helper-multi-kparam.cfg" || exit 1
 
@@ -20,23 +22,20 @@ inputfile="$1"
 
 while IFS= read -r line; do
     matched=0
-    if [[ "$line" == *"$placeholder"* ]]; then
+    if [[ "$line" == *"\tlinux\t/"* ]]; then
         for hostname in "${!map_hostname_to_kparam[@]}"; do
             # Assuming that, the kimg filename contains "vmlinuz-xxx-$hostname ", in lowercase. That's important! 
             [[ "$line" == *"-$hostname "* ]] &&
-                echo "$line" | sed "s|$placeholder|${map_kimage_to_kparam[$hostname]}|g" >> "$tmpfile" &&
+                echo "$line" | sed "s|-$hostname .*$|-$hostname ${map_kimage_to_kparam[$hostname]}|g" >> "$tmpfile" &&
                 matched=1 && 
                 break
         done
+        [[ $matched == 0 ]] && echo "Warning: kernel line '$line' doesnt match ANY entry in /etc/shared-bootdir-helper-multi-kparam.cfg" && exit 2
     fi
     [[ $matched == 0 ]] && echo "$line" >> "$tmpfile"
 done < "$inputfile" || exit $?
 
 mv "$tmpfile" "$inputfile" || exit $?
 
-grep "$placeholder" "$inputfile" &&
-    echo "Warning: placeholder '$placeholder' still exists in processed grub.cfg. Have you correctly set the 'map_kimage_to_kparam' of $0? Please double-check! " &&
-    exit 2
-
 exit 0