mirror of
				https://github.com/ventoy/Ventoy.git
				synced 2025-10-29 15:55:04 -04:00 
			
		
		
		
	bug fix
This commit is contained in:
		
							parent
							
								
									ef80baf150
								
							
						
					
					
						commit
						c72f96312c
					
				| @ -41,8 +41,8 @@ $BUSYBOX_PATH/busybox --install $BUSYBOX_PATH | ||||
| 
 | ||||
| export PATH=$BUSYBOX_PATH/:$VTOY_PATH/tool | ||||
| 
 | ||||
| export VTOY_BREAK_LEVEL=$(hexdump -n 1 -s 429 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) | ||||
| export VTOY_DEBUG_LEVEL=$(hexdump -n 1 -s 430 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) | ||||
| export VTOY_BREAK_LEVEL=$(hexdump -n 1 -s 449 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) | ||||
| export VTOY_DEBUG_LEVEL=$(hexdump -n 1 -s 450 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) | ||||
| 
 | ||||
| #Fixme: busybox shell output redirect seems to have some bug in rhel5 | ||||
| if uname -a | grep -q el5; then | ||||
|  | ||||
| @ -2,6 +2,12 @@ | ||||
| 
 | ||||
| VENTOY_PATH=$PWD/../ | ||||
| 
 | ||||
| if [ -e check.sh ]; then | ||||
|     if ! sh check.sh; then | ||||
|         exit 1 | ||||
|     fi | ||||
| fi | ||||
| 
 | ||||
| rm -f ventoy.cpio | ||||
| 
 | ||||
| chmod -R 777 cpio | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| @ -144,8 +144,12 @@ function uefi_iso_menu_func { | ||||
|         loopback -d loop | ||||
|     fi | ||||
| 
 | ||||
|     unset LoadIsoEfiDriver | ||||
|     | ||||
|     if [ -n "$vtisouefi" ]; then | ||||
|         set LoadIsoEfiDriver=on | ||||
|     else | ||||
|         unset LoadIsoEfiDriver | ||||
|     fi | ||||
| 
 | ||||
|     vt_chosen_img_path chosen_path | ||||
| 
 | ||||
|     if vt_is_udf ${1}${chosen_path}; then | ||||
| @ -302,7 +306,7 @@ function legacy_iso_menu_func { | ||||
| ############################################################# | ||||
| ############################################################# | ||||
| 
 | ||||
| set VENTOY_VERSION="1.0.01" | ||||
| set VENTOY_VERSION="1.0.02" | ||||
| 
 | ||||
| #disable timeout | ||||
| unset timeout | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -361,6 +361,7 @@ static void ventoy_dump_chain(ventoy_chain_head *chain) | ||||
|     uint32_t i = 0; | ||||
|     uint8_t chksum = 0; | ||||
|     uint8_t *guid; | ||||
|     uint8_t *vtoy_reserve; | ||||
|      | ||||
|     guid = chain->os_param.vtoy_disk_guid; | ||||
|     for (i = 0; i < sizeof(ventoy_os_param); i++) | ||||
| @ -368,6 +369,8 @@ static void ventoy_dump_chain(ventoy_chain_head *chain) | ||||
|         chksum += *((uint8_t *)(&(chain->os_param)) + i); | ||||
|     } | ||||
| 
 | ||||
|     vtoy_reserve = (uint8_t *)(chain->os_param.vtoy_reserved); | ||||
| 
 | ||||
|     printf("##################### ventoy_dump_chain #######################\n"); | ||||
| 
 | ||||
|     printf("os_param will be save at %p\n", ventoy_get_runtime_addr()); | ||||
| @ -379,6 +382,8 @@ static void ventoy_dump_chain(ventoy_chain_head *chain) | ||||
|     printf("os_param->vtoy_disk_part_type=%u\n",  chain->os_param.vtoy_disk_part_type); | ||||
|     printf("os_param->vtoy_img_path=<%s>\n",      chain->os_param.vtoy_img_path); | ||||
|     printf("os_param->vtoy_img_size=<%llu>\n",    chain->os_param.vtoy_img_size); | ||||
|     printf("os_param->vtoy_reserve[0]=<%u>\n",    vtoy_reserve[0]); | ||||
|     printf("os_param->vtoy_reserve[1]=<%u>\n",    vtoy_reserve[1]); | ||||
|     printf("os_param->vtoy_img_location_addr=<0x%llx>\n", chain->os_param.vtoy_img_location_addr); | ||||
|     printf("os_param->vtoy_img_location_len=<%u>\n",   chain->os_param.vtoy_img_location_len); | ||||
|     ventoy_debug_pause(); | ||||
|  | ||||
| @ -38,9 +38,9 @@ const TCHAR * g_Str_English[STR_ID_MAX] = | ||||
|     TEXT("The disk will be formatted and all the data will be lost.\r\nContinue?"), | ||||
|     TEXT("The disk will be formatted and all the data will be lost.\r\nContinue? (Double Check)"), | ||||
|     TEXT("Congratulations!\r\nVentoy has been successfully installed to the device."), | ||||
|     TEXT("An error occurred during the installation. You can try again and check log.txt for detail."), | ||||
|     TEXT("An error occurred during the installation. You can replug the USB and try again. Check log.txt for detail."), | ||||
|     TEXT("Congratulations!\r\nVentoy has been successfully updated to the device."), | ||||
|     TEXT("An error occurred during the update. You can try again and check log.txt for detail."), | ||||
|     TEXT("An error occurred during the update. You can replug the USB and try again. Check log.txt for detail."), | ||||
| 
 | ||||
|     TEXT("A thread is running, please wait..."), | ||||
| }; | ||||
| @ -61,9 +61,9 @@ const TCHAR * g_Str_ChineseSimple[STR_ID_MAX] = | ||||
|     TEXT("磁盘会被格式化, 所有数据都会丢失!\r\n是否继续?"), | ||||
|     TEXT("磁盘会被格式化, 所有数据都会丢失!\r\n再次确认是否继续?"), | ||||
|     TEXT("恭喜你! Ventoy 已经成功安装到此设备中."), | ||||
|     TEXT("安装 Ventoy 过程中发生错误. 你可以重试一次, 详细信息请查阅 log.txt 文件."), | ||||
|     TEXT("安装 Ventoy 过程中发生错误. 你可以重新拔插一下U盘然后重试一次, 详细信息请查阅 log.txt 文件."), | ||||
|     TEXT("恭喜你! 新版本的 Ventoy 已经成功更新到此设备中."), | ||||
|     TEXT("更新 Ventoy 过程中遇到错误. 你可以重试一次, 详细信息请查阅 log.txt 文件."), | ||||
|     TEXT("更新 Ventoy 过程中遇到错误. 你可以重新拔插一下U盘然后重试一次, 详细信息请查阅 log.txt 文件."), | ||||
| 
 | ||||
|     TEXT("当前有任务正在运行, 请等待..."), | ||||
| }; | ||||
|  | ||||
| @ -25,7 +25,7 @@ | ||||
| 
 | ||||
| PHY_DRIVE_INFO *g_PhyDriveList = NULL; | ||||
| DWORD g_PhyDriveCount = 0; | ||||
| static int g_FilterRemovable = 1; | ||||
| static int g_FilterRemovable = 0; | ||||
| static int g_FilterUSB = 1; | ||||
| int g_ForceOperation = 1; | ||||
| 
 | ||||
| @ -41,11 +41,8 @@ int ParseCmdLineOption(LPSTR lpCmdLine) | ||||
| 
 | ||||
|     for (i = 0; i < __argc; i++) | ||||
|     { | ||||
|         if (strncmp(__argv[i], "-R", 2) == 0) | ||||
|         { | ||||
|             g_FilterRemovable = 0; | ||||
|         } | ||||
|         else if (strncmp(__argv[i], "-U", 2) == 0) | ||||
|         if (strncmp(__argv[i], "-U", 2) == 0 || | ||||
| 			strncmp(__argv[i], "-u", 2) == 0) | ||||
|         { | ||||
|             g_FilterUSB = 0; | ||||
|         } | ||||
| @ -58,11 +55,6 @@ int ParseCmdLineOption(LPSTR lpCmdLine) | ||||
|     GetCurrentDirectoryA(sizeof(cfgfile), cfgfile); | ||||
|     strcat_s(cfgfile, sizeof(cfgfile), "\\Ventoy2Disk.ini"); | ||||
| 
 | ||||
|     if (0 == GetPrivateProfileIntA("Filter", "Removable", 1, cfgfile)) | ||||
|     { | ||||
|         g_FilterRemovable = 0; | ||||
|     } | ||||
| 
 | ||||
|     if (0 == GetPrivateProfileIntA("Filter", "USB", 1, cfgfile)) | ||||
|     { | ||||
|         g_FilterUSB = 0; | ||||
| @ -258,6 +250,30 @@ PHY_DRIVE_INFO * GetPhyDriveInfoById(int Id) | ||||
|     return NULL; | ||||
| } | ||||
| 
 | ||||
| int SortPhysicalDrive(PHY_DRIVE_INFO *pDriveList, DWORD DriveCount) | ||||
| { | ||||
| 	DWORD i, j; | ||||
| 	PHY_DRIVE_INFO TmpDriveInfo; | ||||
| 
 | ||||
| 	for (i = 0; i < DriveCount; i++) | ||||
| 	{ | ||||
| 		for (j = i + 1; j < DriveCount; j++) | ||||
| 		{ | ||||
| 			if (pDriveList[i].BusType == BusTypeUsb && pDriveList[j].BusType == BusTypeUsb) | ||||
| 			{ | ||||
| 				if (pDriveList[i].RemovableMedia == FALSE && pDriveList[j].RemovableMedia == TRUE) | ||||
| 				{ | ||||
| 					memcpy(&TmpDriveInfo, pDriveList + i, sizeof(PHY_DRIVE_INFO)); | ||||
| 					memcpy(pDriveList + i, pDriveList + j, sizeof(PHY_DRIVE_INFO)); | ||||
| 					memcpy(pDriveList + j, &TmpDriveInfo, sizeof(PHY_DRIVE_INFO)); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int Ventoy2DiskInit(void) | ||||
| { | ||||
|     g_PhyDriveList = (PHY_DRIVE_INFO *)malloc(sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE); | ||||
| @ -269,6 +285,9 @@ int Ventoy2DiskInit(void) | ||||
|     memset(g_PhyDriveList, 0, sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE); | ||||
| 
 | ||||
|     GetAllPhysicalDriveInfo(g_PhyDriveList, &g_PhyDriveCount); | ||||
| 
 | ||||
| 	SortPhysicalDrive(g_PhyDriveList, g_PhyDriveCount); | ||||
| 
 | ||||
|     FilterPhysicalDrive(g_PhyDriveList, g_PhyDriveCount); | ||||
| 
 | ||||
|     return 0; | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| @ -213,6 +213,16 @@ static DWORD WINAPI InstallVentoyThread(void* Param) | ||||
|     PHY_DRIVE_INFO *pPhyDrive = (PHY_DRIVE_INFO *)Param; | ||||
| 
 | ||||
|     rc = InstallVentoy2PhyDrive(pPhyDrive); | ||||
| 	if (rc) | ||||
| 	{ | ||||
| 		Log("This time install failed, now wait and retry..."); | ||||
| 		Sleep(10000); | ||||
| 
 | ||||
| 		Log("Now retry to install..."); | ||||
| 
 | ||||
| 		rc = InstallVentoy2PhyDrive(pPhyDrive); | ||||
| 	} | ||||
| 
 | ||||
|     if (rc == 0) | ||||
|     { | ||||
| 		PROGRESS_BAR_SET_POS(PT_FINISH); | ||||
| @ -239,6 +249,16 @@ static DWORD WINAPI UpdateVentoyThread(void* Param) | ||||
|     PHY_DRIVE_INFO *pPhyDrive = (PHY_DRIVE_INFO *)Param; | ||||
| 
 | ||||
|     rc = UpdateVentoy2PhyDrive(pPhyDrive); | ||||
| 	if (rc) | ||||
| 	{ | ||||
| 		Log("This time update failed, now wait and retry..."); | ||||
| 		Sleep(10000); | ||||
| 
 | ||||
| 		Log("Now retry to update..."); | ||||
| 
 | ||||
| 		rc = UpdateVentoy2PhyDrive(pPhyDrive); | ||||
| 	} | ||||
| 
 | ||||
|     if (rc == 0) | ||||
|     { | ||||
| 		PROGRESS_BAR_SET_POS(PT_FINISH); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user