]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - Plugson/src/Core/ventoy_disk_linux.c
Fix the issue for booting Bliss OS 15.x
[Ventoy.git] / Plugson / src / Core / ventoy_disk_linux.c
index 1a081592e9197043ccb87190ee0ba1b13686c28f..f4ec853ce261696818047c03191a199435332560 100644 (file)
@@ -311,12 +311,24 @@ uint64_t ventoy_get_disk_size_in_byte(const char *disk)
 
 int ventoy_get_disk_vendor(const char *name, char *vendorbuf, int bufsize)
 {
-    return ventoy_get_sys_file_line(vendorbuf, bufsize, "/sys/block/%s/device/vendor", name);
+    if (strncmp(name, "loop", 4) == 0)
+    {
+        scnprintf(vendorbuf, bufsize, "Local");
+        return 0;
+    }
+    
+    return ventoy_get_sys_file_line(vendorbuf, bufsize, "/sys/block/%s/device/vendor", name);        
 }
 
 int ventoy_get_disk_model(const char *name, char *modelbuf, int bufsize)
 {
-    return ventoy_get_sys_file_line(modelbuf, bufsize, "/sys/block/%s/device/model", name);
+    if (strncmp(name, "loop", 4) == 0)
+    {
+        scnprintf(modelbuf, bufsize, "Loop Device");
+        return 0;
+    }
+
+    return ventoy_get_sys_file_line(modelbuf, bufsize, "/sys/block/%s/device/model", name);  
 }
 
 static int fatlib_media_sector_read(uint32 sector, uint8 *buffer, uint32 sector_count)
@@ -576,9 +588,9 @@ int ventoy_get_disk_info(char **argv)
     char model[128];
     char *disk = argv[4];
 
-    if (strncmp(argv[4], "/dev/", 4) == 0)
+    if (strncmp(argv[4], "/dev/", 5) == 0)
     {
-        disk += 4;
+        disk += 5;
     }
     ventoy_get_disk_vendor(disk, vendor, sizeof(vendor));
     ventoy_get_disk_model(disk, model, sizeof(model));