diff -ruN calamares-3.2.4/src/modules/umount/main.py calamares-3.2.4-new/src/modules/umount/main.py
--- calamares-3.2.4/src/modules/umount/main.py	2021-08-17 15:04:10.299572769 +0800
+++ calamares-3.2.4-new/src/modules/umount/main.py	2021-08-17 15:04:06.339731767 +0800
@@ -64,6 +64,7 @@
     """
     root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
     target_env_call(["cp", "-arfp", "/etc/apt/sources.list.bak", "/etc/apt/sources.list"])
+    target_env_call(["rm", "-rf", "/opt/grub"])
 
     if(libcalamares.job.configuration and
        "srcLog" in libcalamares.job.configuration and
diff -ruN calamares-3.2.4/src/modules/bootloader/main.py calamares-3.2.4-new/src/modules/bootloader/main.py
--- calamares-3.2.4/src/modules/bootloader/main.py	2021-08-16 10:09:59.000000000 +0800
+++ calamares-3.2.4-new/src/modules/bootloader/main.py	2021-08-16 10:11:28.395471123 +0800
@@ -442,14 +442,16 @@
 #
 #    prepare_bootloader(fw_type)
 
-    check_target_env_call([libcalamares.job.configuration["grubMkconfig"],
-                          "-o", libcalamares.job.configuration["grubCfg"]])
+#    check_target_env_call([libcalamares.job.configuration["grubMkconfig"],
+#                          "-o", libcalamares.job.configuration["grubCfg"]])
 
-    partitions = libcalamares.globalstorage.value("partitions")
+#    partitions = libcalamares.globalstorage.value("partitions")
 	
-    for partition in partitions:
-        if partition["mountPoint"] == "/boot":
-            check_target_env_call(["mv" , libcalamares.job.configuration["grubCfg"],
-                                  libcalamares.job.configuration["efiGrubCfg"]])
-            break
+#    for partition in partitions:
+#        if partition["mountPoint"] == "/boot":
+#            check_target_env_call(["mv" , libcalamares.job.configuration["grubCfg"],
+#                                  libcalamares.job.configuration["efiGrubCfg"]])
+#            break
+    libcalamares.utils.target_env_call(["bash",  "-c", "dpkg -i /opt/grub/*.deb"])
+    libcalamares.utils.target_env_call(["bash",  "-c", "update-grub"])
     return None
diff -ruN calamares-3.2.4/src/modules/grubcfg/pmon-config.sh calamares-3.2.4-new/src/modules/grubcfg/pmon-config.sh
--- calamares-3.2.4/src/modules/grubcfg/pmon-config.sh	2021-08-16 10:09:59.000000000 +0800
+++ calamares-3.2.4-new/src/modules/grubcfg/pmon-config.sh	2021-08-16 16:02:29.767676992 +0800
@@ -1,5 +1,5 @@
 #!/bin/bash
-
+set -x 
 ###############################################################################
 # default 0
 # timeout 3
@@ -18,28 +18,55 @@
 
 function sd2wd
 {
-    readonly local char_map=({a..z})
-    n=0
-    for char in ${char_map[*]}; do
-        eval "local diskmap${char}=$n"
-        let n=n+1
+    flag=-1
+    index=0
+
+    local sdpart=${1##*/}
+    value=$(echo $sdpart | grep nvme)
+    if [ $? -eq 0 ]
+    then
+        local disk=$(echo "$sdpart" | grep '[[:digit:]]\+' -o | head -n1)
+        local order=$(echo "$sdpart" | grep '[[:digit:]]\+' -o | tail -n1)
+	str1=-1
+	flag=1
+    fi
+
+    value=$(echo $sdpart | grep -E 'sd|hd')
+    if [ $? -eq 0 ];
+    then
+	str=`echo ${sdpart//[0-9]}`
+	str1=`echo ${str:0-1}`	
+        local order=$(echo "$sdpart" | grep '[[:digit:]]\+' -o | head -n1)
+	flag=0
+    fi
+
+    for i in {a..z}
+    do
+        if [[ $str1 != -1 && "$str1" == "$i" ]];then
+	    disk=$index
+	fi
+
+	((index++))
+
+	if [ "$order" == "$index" ];then
+	    part=$i
+	fi
     done
-    local sdpart=$1
-    local order=$(echo "$sdpart" | grep '[[:digit:]]\+' -o)
-    let index=order-1
-    local disk_char="${sdpart%$order}"
-    disk_char="${disk_char#/dev/sd}"
-    disk_var="diskmap$disk_char"
-    part_var="${char_map[$index]}"
-    [ "$part_var" = "a" ] && part_var=
-    wdpart="wd${!disk_var}${part_var}"
+	
+    if [ $flag == 1 ]
+    then 
+    	wdpart="nvme$disk$part"
+    else
+	wdpart="wd$disk$part"
+    fi
+
     echo $wdpart
 }
 
 entry=('title Loongnix 20 GNU/Linux %kver%'
        '    kernel /dev/fs/%fstype%@%wdx%/boot/vmlinuz-%kver%'
        '    initrd /dev/fs/%fstype%@%wdx%/boot/initrd.img-%kver%'
-       '    args console=tty loglevel=0 locales=zh_CN.UTF-8 splash quiet root=%rootdev% resume=%swapdev%')
+       '    args console=tty locales=zh_CN.UTF-8 splash quiet root=%rootdev% resume=%swapdev%')
 
 boot_dir=$root_mount_point/boot
 cfg_file=${boot_dir}/boot.cfg
