]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
1.0.51 release v1.0.51
authorlongpanda <admin@ventoy.net>
Fri, 27 Aug 2021 12:36:32 +0000 (20:36 +0800)
committerlongpanda <admin@ventoy.net>
Fri, 27 Aug 2021 12:36:32 +0000 (20:36 +0800)
.github/ISSUE_TEMPLATE/issue_template.yml
GRUB2/MOD_SRC/grub-2.04/grub-core/loader/arm64/linux.c
GRUB2/MOD_SRC/grub-2.04/grub-core/loader/i386/linux.c
GRUB2/MOD_SRC/grub-2.04/grub-core/loader/mips64/linux.c
IMG/cpio/ventoy/hook/ventoy-hook-lib.sh
IMG/cpio/ventoy/loop/cloudready/ventoy-hook.sh
IMG/cpio/ventoy/loop/fydeos/ventoy-hook.sh
IMG/cpio_x86/ventoy/tool/vtoytool_install.sh
INSTALL/grub/grub.cfg
README.md

index 222e60ada76baf6e5b873df170fb85c8f9e7a130..4298ac34bbbbf177f7f71ed1d93871037e3c85dc 100644 (file)
@@ -21,7 +21,7 @@ body:
     attributes:
       label: Ventoy Version
       description: What version of ventoy are you running?
-      placeholder: 1.0.49
+      placeholder: 1.0.51
     validations:
       required: true
   - type: dropdown
index f8dfec6444505cb12008f1fcca3be1b00ec6bec0..f2c40d016f170c2bc63a74508a0e6c3c7e794dfb 100644 (file)
@@ -279,6 +279,13 @@ static int ventoy_boot_opt_filter(char *opt)
         opt[1] = 't';
         return 0;
     }
+    
+    if (grub_strncmp(opt, "dm=", 3) == 0)
+    {
+        opt[0] = 'D';
+        opt[1] = 'M';
+        return 0;
+    }
 
     if (ventoy_debug)
     {
index f6c879f54e94168e14f46ce66faf0ad1728da120..ae06ad1dbdb0892681a21f493fc965ff19a97534 100644 (file)
@@ -506,6 +506,13 @@ static int ventoy_boot_opt_filter(char *opt)
         return 0;
     }
 
+    if (grub_strncmp(opt, "dm=", 3) == 0)
+    {
+        opt[0] = 'D';
+        opt[1] = 'M';
+        return 0;
+    }
+
     if (ventoy_debug)
     {
         if (grub_strcmp(opt, "quiet") == 0)
index 2822187d4029ebca704462a2cb9fdeb9541a474b..d81cc3c849b6083bc6755c21de191e4a4a6620e6 100644 (file)
@@ -228,6 +228,13 @@ static int ventoy_boot_opt_filter(char *opt)
         return 0;
     }
 
+    if (grub_strncmp(opt, "dm=", 3) == 0)
+    {
+        opt[0] = 'D';
+        opt[1] = 'M';
+        return 0;
+    }
+
     if (ventoy_debug)
     {
         if (grub_strcmp(opt, "quiet") == 0)
index 8b50cc6128b5d75cb3b8cbbce6935ab81e7f761f..881daef5a626424ece53c134087c9b515dddb601 100644 (file)
@@ -562,6 +562,31 @@ ventoy_create_dev_ventoy_part() {
     fi
 }
 
+
+ventoy_create_chromeos_ventoy_part() {   
+    blkdev_num=$($VTOY_PATH/tool/dmsetup ls | $GREP ventoy | $SED 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/')
+    $BUSYBOX_PATH/mknod -m 0666 /dev/ventoy b $blkdev_num
+    
+    if [ -e /vtoy_dm_table ]; then
+        vtPartid=1
+        
+        $CAT /vtoy_dm_table | while read vtline; do
+            echo $vtline > /ventoy/dm_table_part${vtPartid}
+
+            if [ $vtPartid -eq $1 ]; then
+                $VTOY_PATH/tool/dmsetup create ventoy${vtPartid} /ventoy/dm_table_part${vtPartid} --readonly
+            else
+                $VTOY_PATH/tool/dmsetup create ventoy${vtPartid} /ventoy/dm_table_part${vtPartid}
+            fi
+
+            blkdev_num=$($VTOY_PATH/tool/dmsetup ls | $GREP ventoy${vtPartid} | $SED 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/')
+            $BUSYBOX_PATH/mknod -m 0666 /dev/ventoy${vtPartid} b $blkdev_num
+            
+            vtPartid=$(expr $vtPartid + 1)
+        done        
+    fi
+}
+
 is_inotify_ventoy_part() {
     if echo $1 | $GREP -q "2$"; then
         if ! [ -e /sys/block/$1 ]; then
index b2a586d77b0518dabb143ba38dc160fa1e9bd5fc..2cf658ba31da5ae8eaf7564ad7363977a8bf3414 100644 (file)
@@ -58,38 +58,70 @@ blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\
 vtDM=$(ventoy_find_dm_id ${blkdev_num})
 echo -n $vtDM > /ventoy/vtDM
 
-ventoy_create_dev_ventoy_part
+ventoy_create_chromeos_ventoy_part 3
 mdev -s
 
 vtlog "copy out the e2fsck program ..."
+
+copy_lib() {
+    cp -a /ventoy_rdroot/usr/lib64/$1 /usr/lib64/
+    cp -a /ventoy_rdroot/lib64/$1 /lib64/
+}
+
 mkdir /ventoy_rdroot
 mkdir -p /lib /lib64 /usr/lib64 /sbin
 
 mount -o ro /dev/ventoy3 /ventoy_rdroot >>$VTLOG 2>&1
 cp -a /ventoy_rdroot/sbin/e2fsck /sbin/
-cp -a /ventoy_rdroot/usr/lib64/libext2fs* /usr/lib64/
-cp -a /ventoy_rdroot/usr/lib64/libcom_err* /usr/lib64/
-cp -a /ventoy_rdroot/usr/lib64/libe2p* /usr/lib64/
-cp -a /ventoy_rdroot/lib64/libblk* /lib64/
-cp -a /ventoy_rdroot/lib64/libuuid* /lib64/
-cp -a /ventoy_rdroot/lib64/libdl.* /lib64/
-cp -a /ventoy_rdroot/lib64/libdl-* /lib64/
-cp -a /ventoy_rdroot/lib64/libc.* /lib64/
-cp -a /ventoy_rdroot/lib64/libc-* /lib64/
-cp -a /ventoy_rdroot/lib64/libpthread* /lib64/
-cp -a /ventoy_rdroot/lib64/ld-* /lib64/
+cp -a /ventoy_rdroot/sbin/dmsetup /sbin/
+
+copy_lib libext2fs*
+copy_lib libcom_err*
+copy_lib libe2p*
+copy_lib libblk*
+copy_lib libuuid*
+copy_lib libdl.*
+copy_lib libdl-*
+copy_lib libc.*
+copy_lib libc-*
+copy_lib libpthread*
+copy_lib ld-*
+copy_lib libdevmapper*
+copy_lib libudev*
+copy_lib libm.*
+copy_lib libm-*
+copy_lib librt*
+copy_lib libpopt*
+copy_lib libgpg-error*
+copy_lib libselinux*
+copy_lib libsepol*
+copy_lib libpcre*
+copy_lib libcap*
+copy_lib libdw*
+copy_lib libgcc_s*
+copy_lib libattr*
+copy_lib libelf*
+copy_lib libz.*
+copy_lib libbz2*
+copy_lib libgcrypt*
+copy_lib liblvm*
+
+ln -s /lib64/libdevmapper.so.1.02 /lib64/libdevmapper.so.1.02.1
 
 umount /ventoy_rdroot
 
 vtlog "========================================="
 vtlog "===== e2fsck -y -v /dev/ventoy1 ====="
 e2fsck -y -v /dev/ventoy1 >>$VTLOG 2>&1
-vtlog "===== e2fsck -y -v /dev/ventoy3 ====="
-e2fsck -y -v /dev/ventoy3 >>$VTLOG 2>&1
+#vtlog "===== e2fsck -y -v /dev/ventoy3 ====="
+#e2fsck -y -v /dev/ventoy3 >>$VTLOG 2>&1
 vtlog "===== e2fsck -y -v /dev/ventoy8 ====="
 e2fsck -y -v /dev/ventoy8 >>$VTLOG 2>&1
 vtlog "========================================="
 
+/sbin/dmsetup --version >>$VTLOG 2>&1
+veritysetup --version >>$VTLOG 2>&1
+
 vtlog "proc devtmpfs ..."
 mkdir /newdev
 mount -t devtmpfs dev /newdev
@@ -125,10 +157,45 @@ for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
     fi
 done
 
-cp -a $VTLOG /newdev/ventoy.log
-umount /newdev
 
+# if grep -q 'DM=' /proc/cmdline; then
+    # vtlog "Boot verified image ..."
+    
+    # dmP1=$(sed "s/.*\(0 [0-9]* verity\).*/\1/" /proc/cmdline)
+    # alg=$(sed "s/.*alg=\([^ ]*\).*/\1/" /proc/cmdline)
+    # hexdigest=$(sed "s/.*root_hexdigest=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
+    # salt=$(sed "s/.*salt=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
+    # hashstart=$(sed "s/.*hashstart=\([0-9][0-9]*\).*/\1/" /proc/cmdline)
+    
+    #512 to 4096
+    # blocknum=$(expr $hashstart / 8)
+    # hashoffset=$(expr $hashstart \* 512)
+    
+    # vtlog "veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0"
+    # veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0
+    # sleep 1
+    # mdev -s
+
+    # blkdev_num=$(dmsetup ls | grep vroot | sed 's/.*(\([0-9][0-9]*\),[^0-9]*\([0-9][0-9]*\).*/\1:\2/')
+    # vtDM=$(ventoy_find_dm_id ${blkdev_num})
+    # vtlog "blkdev_num=$blkdev_num vtDM=$vtDM"
+
+    # if [ -b /dev/$vtDM ]; then
+        # veritysetup status vroot >> $VTLOG 2>&1
+        # mount -o ro /dev/$vtDM /ventoy_rdroot
+    # else
+        # mount -o ro $vt_root_dev /ventoy_rdroot
+    # fi
+# else
+    # vtlog "Boot normal image ..."
+    # mount -o ro $vt_root_dev /ventoy_rdroot
+# fi
+
+vtlog "Boot normal image ..."
 mount -o ro $vt_root_dev /ventoy_rdroot
+
+cp -a $VTLOG /newdev/ventoy.log
+umount /newdev
 mount -t devtmpfs dev /ventoy_rdroot/dev
 
 PATH=$VTPATH_OLD
index b2a586d77b0518dabb143ba38dc160fa1e9bd5fc..2cf658ba31da5ae8eaf7564ad7363977a8bf3414 100644 (file)
@@ -58,38 +58,70 @@ blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\
 vtDM=$(ventoy_find_dm_id ${blkdev_num})
 echo -n $vtDM > /ventoy/vtDM
 
-ventoy_create_dev_ventoy_part
+ventoy_create_chromeos_ventoy_part 3
 mdev -s
 
 vtlog "copy out the e2fsck program ..."
+
+copy_lib() {
+    cp -a /ventoy_rdroot/usr/lib64/$1 /usr/lib64/
+    cp -a /ventoy_rdroot/lib64/$1 /lib64/
+}
+
 mkdir /ventoy_rdroot
 mkdir -p /lib /lib64 /usr/lib64 /sbin
 
 mount -o ro /dev/ventoy3 /ventoy_rdroot >>$VTLOG 2>&1
 cp -a /ventoy_rdroot/sbin/e2fsck /sbin/
-cp -a /ventoy_rdroot/usr/lib64/libext2fs* /usr/lib64/
-cp -a /ventoy_rdroot/usr/lib64/libcom_err* /usr/lib64/
-cp -a /ventoy_rdroot/usr/lib64/libe2p* /usr/lib64/
-cp -a /ventoy_rdroot/lib64/libblk* /lib64/
-cp -a /ventoy_rdroot/lib64/libuuid* /lib64/
-cp -a /ventoy_rdroot/lib64/libdl.* /lib64/
-cp -a /ventoy_rdroot/lib64/libdl-* /lib64/
-cp -a /ventoy_rdroot/lib64/libc.* /lib64/
-cp -a /ventoy_rdroot/lib64/libc-* /lib64/
-cp -a /ventoy_rdroot/lib64/libpthread* /lib64/
-cp -a /ventoy_rdroot/lib64/ld-* /lib64/
+cp -a /ventoy_rdroot/sbin/dmsetup /sbin/
+
+copy_lib libext2fs*
+copy_lib libcom_err*
+copy_lib libe2p*
+copy_lib libblk*
+copy_lib libuuid*
+copy_lib libdl.*
+copy_lib libdl-*
+copy_lib libc.*
+copy_lib libc-*
+copy_lib libpthread*
+copy_lib ld-*
+copy_lib libdevmapper*
+copy_lib libudev*
+copy_lib libm.*
+copy_lib libm-*
+copy_lib librt*
+copy_lib libpopt*
+copy_lib libgpg-error*
+copy_lib libselinux*
+copy_lib libsepol*
+copy_lib libpcre*
+copy_lib libcap*
+copy_lib libdw*
+copy_lib libgcc_s*
+copy_lib libattr*
+copy_lib libelf*
+copy_lib libz.*
+copy_lib libbz2*
+copy_lib libgcrypt*
+copy_lib liblvm*
+
+ln -s /lib64/libdevmapper.so.1.02 /lib64/libdevmapper.so.1.02.1
 
 umount /ventoy_rdroot
 
 vtlog "========================================="
 vtlog "===== e2fsck -y -v /dev/ventoy1 ====="
 e2fsck -y -v /dev/ventoy1 >>$VTLOG 2>&1
-vtlog "===== e2fsck -y -v /dev/ventoy3 ====="
-e2fsck -y -v /dev/ventoy3 >>$VTLOG 2>&1
+#vtlog "===== e2fsck -y -v /dev/ventoy3 ====="
+#e2fsck -y -v /dev/ventoy3 >>$VTLOG 2>&1
 vtlog "===== e2fsck -y -v /dev/ventoy8 ====="
 e2fsck -y -v /dev/ventoy8 >>$VTLOG 2>&1
 vtlog "========================================="
 
+/sbin/dmsetup --version >>$VTLOG 2>&1
+veritysetup --version >>$VTLOG 2>&1
+
 vtlog "proc devtmpfs ..."
 mkdir /newdev
 mount -t devtmpfs dev /newdev
@@ -125,10 +157,45 @@ for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
     fi
 done
 
-cp -a $VTLOG /newdev/ventoy.log
-umount /newdev
 
+# if grep -q 'DM=' /proc/cmdline; then
+    # vtlog "Boot verified image ..."
+    
+    # dmP1=$(sed "s/.*\(0 [0-9]* verity\).*/\1/" /proc/cmdline)
+    # alg=$(sed "s/.*alg=\([^ ]*\).*/\1/" /proc/cmdline)
+    # hexdigest=$(sed "s/.*root_hexdigest=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
+    # salt=$(sed "s/.*salt=\([0-9a-fA-F][0-9a-fA-F]*\).*/\1/" /proc/cmdline)
+    # hashstart=$(sed "s/.*hashstart=\([0-9][0-9]*\).*/\1/" /proc/cmdline)
+    
+    #512 to 4096
+    # blocknum=$(expr $hashstart / 8)
+    # hashoffset=$(expr $hashstart \* 512)
+    
+    # vtlog "veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0"
+    # veritysetup create vroot $vt_root_dev $vt_root_dev $hexdigest --data-block-size=4096 --hash-block-size=4096 --data-blocks=$blocknum --hash-offset=$hashoffset --salt=$salt --hash=$alg --no-superblock --format=0
+    # sleep 1
+    # mdev -s
+
+    # blkdev_num=$(dmsetup ls | grep vroot | sed 's/.*(\([0-9][0-9]*\),[^0-9]*\([0-9][0-9]*\).*/\1:\2/')
+    # vtDM=$(ventoy_find_dm_id ${blkdev_num})
+    # vtlog "blkdev_num=$blkdev_num vtDM=$vtDM"
+
+    # if [ -b /dev/$vtDM ]; then
+        # veritysetup status vroot >> $VTLOG 2>&1
+        # mount -o ro /dev/$vtDM /ventoy_rdroot
+    # else
+        # mount -o ro $vt_root_dev /ventoy_rdroot
+    # fi
+# else
+    # vtlog "Boot normal image ..."
+    # mount -o ro $vt_root_dev /ventoy_rdroot
+# fi
+
+vtlog "Boot normal image ..."
 mount -o ro $vt_root_dev /ventoy_rdroot
+
+cp -a $VTLOG /newdev/ventoy.log
+umount /newdev
 mount -t devtmpfs dev /ventoy_rdroot/dev
 
 PATH=$VTPATH_OLD
index d6b347067930858839a9003ec6f66df08fad570f..a7ecdf5f9965c14f7de580f25934506a900a9055 100644 (file)
@@ -81,6 +81,13 @@ else
         echo "use unsquashfs_32" >>$VTLOG    
         $BUSYBOX_PATH/cp -a $VTOY_PATH/tool/unsquashfs_32 $VTOY_PATH/tool/vtoy_unsquashfs
     fi
-    
+
+    if $GREP -q 64 $VTOY_PATH/ventoy_arch; then
+        echo "use veritysetup64" >>$VTLOG    
+        $BUSYBOX_PATH/cp -a $VTOY_PATH/tool/veritysetup64  $VTOY_PATH/tool/veritysetup
+    else
+        echo "use veritysetup32" >>$VTLOG    
+        $BUSYBOX_PATH/cp -a $VTOY_PATH/tool/veritysetup32  $VTOY_PATH/tool/veritysetup
+    fi
 fi
 
index 45694c73433d19998e8a7d531ab0f88182054e12..eb50e5ce2ab0209cf0824bf3ccb364797b443029 100644 (file)
@@ -1501,8 +1501,7 @@ function vtoy_unsupport_menuentry {
 
 function only_uefi_tip {
     echo -e "\n This IMG file is only supported in UEFI mode. \n"
-    echo -e " 此 IMG 文件只支持在 UEFI 模式下启动。\n"
-    echo -e "\npress ENTER to exit (请按 回车 键返回) ..."    
+    echo -e "\n press ENTER to exit ..."
     read vtInputKey 
 }
 
index f5d19bb613ca4ca6498661a1adf738d5849914f9..de05001adf422dd3c03707e5981ad359d95530e2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ You can copy many image files at a time and ventoy will give you a boot menu to
 x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and MIPS64EL UEFI are supported in the same way.<br/>
 Both MBR and GPT partition style are supported in the same way.<br/>
 Most type of OS supported(Windows/WinPE/Linux/Unix/Vmware/Xen...) <br/>
-  720+ ISO files are tested (<a href="https://www.ventoy.net/en/isolist.html">List</a>). 90%+ distros in <a href="https://distrowatch.com/">distrowatch.com</a> supported. <br/>
+  730+ ISO files are tested (<a href="https://www.ventoy.net/en/isolist.html">List</a>). 90%+ distros in <a href="https://distrowatch.com/">distrowatch.com</a> supported. <br/>
 <br/>Official Website: <a href=https://www.ventoy.net>https://www.ventoy.net</a>
 </h4>
 
@@ -36,7 +36,7 @@ Most type of OS supported(Windows/WinPE/Linux/Unix/Vmware/Xen...) <br/>
 * FAT32/exFAT/NTFS/UDF/XFS/Ext2(3)(4) supported for main partition
 * ISO files larger than 4GB supported
 * Native boot menu style for Legacy & UEFI
-* Most type of OS supported, 720+ iso files tested
+* Most type of OS supported, 730+ iso files tested
 * Linux vDisk boot supported
 * Not only boot but also complete installation process
 * Menu dynamically switchable between List/TreeView mode