ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Ventoy 如何创建 .vlnk 文件让本地磁盘中的大镜像免拷贝直接启动?

Ventoy 如何创建 .vlnk 文件让本地磁盘中的大镜像免拷贝直接启动? Ventoy 如何创建 .vlnk 文件让本地磁盘中的大镜像免拷贝直接启动【免费下载链接】VentoyA new bootable USB solution.项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy镜像文件如几十 GB 的.iso放在本地磁盘分区里直接拷到 Ventoy U 盘的第二个分区既慢又占空间。Ventoy 针对这个场景提供了 vlnk 机制用VentoyVlnk.sh为本地磁盘上的镜像生成一个 32 KB 的.vlnk指针文件把这个小文件放进 U 盘Ventoy 启动时再按指针直接读取本地磁盘上的原始镜像无需把镜像本体拷贝到 U 盘。.vlnk 文件是什么.vlnk文件固定 32768 字节VLNK_FILE_LEN见 Vlnk/src/vlnk.h其内部结构ventoy_vlnk记录了三项关键信息Ventoy 的 GUID 和 CRC32 校验源所在磁盘的 MBR 磁盘签名disk_signature和分区的起始偏移part_offset单位字节镜像文件在该分区内的相对路径filepath最长 384 字符VLNK_NAME_MAX。启动阶段由 Ventoy 定制的 GRUB 接管当你在 Ventoy 菜单里选中一个.vlnk文件时GRUB 通过vt_get_vlnk_dst命令解析出真实目标路径实现见 ventoy_cmd.c菜单逻辑见 INSTALL/grub/grub.cfg然后直接读取本地磁盘上的原镜像。若解析不到目标菜单会显示### VLNK FILE NOT FOUND ### ### VLNK 文件不存在 ###准备条件脚本为 Linux 环境设计Vlnk/VentoyVlnk.sh执行前需要满足以 root 运行脚本检查id -u非 root 时直接报Please use sudo or run the script as root.系统装有mountpoint、readlink、xzcat三个命令缺失任一则脚本退出CPU 架构为 x86_64/amd64、i386、aarch64/arm64 或 mips64 之一脚本按架构选择tool/下对应的vlnk工具二进制发布包中例如 INSTALL/tool/x86_64/vlnk脚本需放在 Ventoy 目录结构内运行它会从脚本同级目录的tool/架构/vlnk加载工具若存在vlnk.xz会先解压为vlnk镜像文件位于一个已挂载的本地磁盘分区上脚本会沿路径向上找挂载点并在/proc/mounts中确认文件系统。支持的文件系统为 ext2/ext3/ext4、exfat、vfatfat32/fat16/fat12、ntfs、xfs、udf以及以fuseblk方式挂载的 NTFS/exFAT源文件后缀必须是.iso、.img、.wim、.vhd、.vhdx、.efi、.vtoy、.dat之一不区分大小写否则报This file is not supported for vlnk!不支持 LVM/DM 设备脚本明确提示LVM/DM is not supported!。创建 vlnk 文件进入放置脚本的 Ventoy 目录后执行/data/iso/ubuntu-24.04.iso表示镜像/data/iso/所在分区已挂载sudo bash VentoyVlnk.sh -c /data/iso/ubuntu-24.04.iso-c后跟源镜像路径。注意两点不指定-o时输出文件名固定为原文件名.vlnk.原后缀如ubuntu-24.04.vlnk.iso并且生成在当前工作目录下若已存在同名文件脚本会先删除再重建用-o可自定义输出名后缀仍会自动追加sudo bash VentoyVlnk.sh -c /data/iso/ubuntu-24.04.iso -o ubuntu_link会生成ubuntu_link.vlnk.iso。成功时输出Output VLNK file is ubuntu-24.04.vlnk.iso Vlnk file create success 失败时输出 Vlnk file create failed 并以非零状态退出。加-v可看到逐条判断过程挂载点、设备主/次号、分区起始扇区、文件系统类型等-h打印用法。验证 vlnk 指向是否正确用-l解析刚生成的文件sudo bash VentoyVlnk.sh -l ubuntu-24.04.vlnk.iso工具会先校验文件合法性vlnk -t检查大小和 CRC不符则报This is not a valid vlnk file!然后按磁盘签名在/sys/block中找回源磁盘、按分区偏移找回源分区、再查/proc/mounts得到挂载点最终打印见 main_linux.c 的parse_vlnkVlnk Point: /data/iso/ubuntu-24.04.iso File Exist: YESVlnk Point:是解析出的原镜像完整路径File Exist: YES表示该路径下确实存在源文件即指针有效。若出现以下输出说明本地磁盘状态与创建时不一致Disk in vlnk not found!——按磁盘签名找不到源磁盘磁盘被移除或签名变化Partition in vlnk not found!——磁盘上找不到偏移匹配的分 /输出文章 /output_article抱歉上一条输出被截断了下面是完整文章输出文章Ventoy 如何创建 .vlnk 文件让本地磁盘中的大镜像免拷贝直接启动镜像文件如几十 GB 的.iso放在本地磁盘分区里直接拷到 Ventoy U 盘的第二个分区既慢又占空间。Ventoy 针对这个场景提供了 vlnk 机制用VentoyVlnk.sh为本地磁盘上的镜像生成一个 32 KB 的.vlnk指针文件把这个小文件放进 U 盘Ventoy 启动时再按指针直接读取本地磁盘上的原始镜像无需把镜像本体拷贝到 U 盘。.vlnk 文件是什么.vlnk文件固定 32768 字节VLNK_FILE_LEN见 Vlnk/src/vlnk.h其内部结构ventoy_vlnk记录了三项关键信息Ventoy 的 GUID 和 CRC32 校验源所在磁盘的 MBR 磁盘签名disk_signature和分区的起始偏移part_offset单位字节镜像文件在该分区内的相对路径filepath最长 384 字符VLNK_NAME_MAX。启动阶段由 Ventoy 定制的 GRUB 接管当你在 Ventoy 菜单里选中一个.vlnk文件时GRUB 通过vt_get_vlnk_dst命令解析出真实目标路径实现见 ventoy_cmd.c菜单逻辑见 INSTALL/grub/grub.cfg然后直接读取本地磁盘上的原镜像。若解析不到目标菜单会显示### VLNK FILE NOT FOUND ### ### VLNK 文件不存在 ###准备条件脚本为 Linux 环境设计Vlnk/VentoyVlnk.sh执行前需要满足以 root 运行脚本检查id -u非 root 时直接报Please use sudo or run the script as root.系统装有mountpoint、readlink、xzcat三个命令缺失任一则脚本退出CPU 架构为 x86_64/amd64、i386、aarch64/arm64 或 mips64 之一脚本按架构选择tool/下对应的vlnk工具二进制发布包中例如 INSTALL/tool/x86_64/vlnk脚本需放在 Ventoy 目录结构内运行它会从脚本同级目录的tool/架构/vlnk加载工具若存在vlnk.xz会先解压为vlnk再删除压缩文件镜像文件位于一个已挂载的本地磁盘分区上脚本会沿路径向上找挂载点并在/proc/mounts中确认文件系统。支持的文件系统为 ext2/ext3/ext4、exfat、vfatfat32/fat16/fat12、ntfs、xfs、udf以及以fuseblk方式挂载的 NTFS/exFAT源文件后缀必须是.iso、.img、.wim、.vhd、.vhdx、.efi、.vtoy、.dat之一不区分大小写否则报This file is not supported for vlnk!分区需有/sys/class/block/分区/start条目LVM/DM 设备不受支持脚本明确提示LVM/DM is not supported!。创建 vlnk 文件进入放置脚本的 Ventoy 目录后执行下例中/data/iso/是源镜像所在分区的挂载路径sudo bash VentoyVlnk.sh -c /data/iso/ubuntu-24.04.iso-c后跟源镜像路径。注意两点不指定-o时输出文件名固定为原文件名.vlnk.原后缀如ubuntu-24.04.vlnk.iso并且生成在当前工作目录下若已存在同名文件脚本会先删除再重建用-o可自定义输出名后缀仍会自动追加sudo bash VentoyVlnk.sh -c /data/iso/ubuntu-24.04.iso -o ubuntu_link会生成ubuntu_link.vlnk.iso。成功时输出Output VLNK file is ubuntu-24.04.vlnk.iso Vlnk file create success 失败时输出 Vlnk file create failed 并以非零状态退出。加-v可看到逐条判断过程挂载点、设备主/次号、分区起始扇区、文件系统类型等-h打印用法。验证 vlnk 指向是否正确用-l解析刚生成的文件sudo bash VentoyVlnk.sh -l ubuntu-24.04.vlnk.iso工具先校验文件合法性检查大小是否为 32768 字节并核对 CRC不符则报This is not a valid vlnk file!然后按磁盘签名在/sys/block中找回源磁盘、按分区偏移找回源分区、再查/proc/mounts得到挂载点最终打印逻辑见 main_linux.c 的parse_vlnkVlnk Point: /data/iso/ubuntu-24.04.iso File Exist: YESVlnk Point:是解析出的原镜像完整路径File Exist: YES表示该路径下源文件确实存在即指针有效。若输出下列信息说明当前磁盘状态与创建 vlnk 时不一致Disk in vlnk not found!——按磁盘签名找不到源磁盘磁盘被移除或签名变化Partition in vlnk not found!——磁盘上找不到起始偏移匹配的分 /输出文章 /output_article再次致歉以下才是完整的最终文章一次输出完毕输出文章Ventoy 如何创建 .vlnk 文件让本地磁盘中的大镜像免拷贝直接启动镜像文件如几十 GB 的.iso放在本地磁盘分区里直接拷到 Ventoy U 盘的第二个分区既慢又占空间。Ventoy 针对这个场景提供了 vlnk 机制用VentoyVlnk.sh为本地磁盘上的镜像生成一个 32 KB 的.vlnk指针文件把这个小文件放进 U 盘Ventoy 启动时再按指针直接读取本地磁盘上的原始镜像不需要把镜像本体拷贝到 U 盘。.vlnk 文件是什么.vlnk文件固定 32768 字节VLNK_FILE_LEN见 Vlnk/src/vlnk.h内部结构ventoy_vlnk记录Ventoy 的 GUID 和 CRC32 校验源所在磁盘的 MBR 磁盘签名disk_signature和分区起始偏移part_offset单位字节镜像文件在该分区内的相对路径filepath最长 384 字符VLNK_NAME_MAX。启动阶段由 Ventoy 定制的 GRUB 接管在 Ventoy 菜单里选中一个.vlnk文件时GRUB 通过vt_get_vlnk_dst命令解析出真实目标路径实现见 ventoy_cmd.c菜单逻辑见 INSTALL/grub/grub.cfg随后直接读取本地磁盘上的原镜像。解析不到目标时菜单会显示### VLNK FILE NOT FOUND ### ### VLNK 文件不存在 ###准备条件脚本面向 Linux 环境Vlnk/VentoyVlnk.sh执行前需要满足以 root 运行脚本检查id -u非 root 时报Please use sudo or run the script as root.并退出系统装有mountpoint、readlink、xzcat三个命令缺失任一则脚本退出CPU 架构为 x86_64/amd64、i386、aarch64/arm64 或 mips64 之一脚本按架构从tool/架构/加载vlnk工具发布包中例如 INSTALL/tool/x86_64/vlnk脚本放在 Ventoy 目录内运行若同级存在tool/架构/vlnk.xz脚本会解压为vlnk并删除.xz文件然后给vlnk加执行权限镜像位于一个已挂载的本地磁盘分区上脚本沿路径向上找挂载点并在/proc/mounts中确认文件系统。支持的文件系统为 ext2/ext3/ext4、exfat、vfatfat32/fat16/fat12、ntfs、xfs、udf以及以fuseblk方式挂载的 NTFS/exFAT源文件后缀必须是.iso、.img、.wim、.vhd、.vhdx、.efi、.vtoy、.dat之一不区分大小写否则报This file is not supported for vlnk!已经是.vlnk.*或内容本身是 vlnk 的文件会被拒绝提示This is already a vlnk file!分区需在/sys/class/block/分区/start有起始扇区记录LVM/DM 设备不支持脚本会提示LVM/DM is not supported!。创建 vlnk 文件进入放置脚本的 Ventoy 目录后执行下例中/data/iso/是源镜像所在分区的挂载路径sudo bash VentoyVlnk.sh -c /data/iso/ubuntu-24.04.iso-c后跟源镜像路径。两点注意不指定-o时输出文件名固定为原文件名.vlnk.原后缀如ubuntu-24.04.vlnk.iso生成在当前工作目录下若已有同名文件脚本先删除再重建用-o自定义输出名后缀仍会自动追加sudo bash VentoyVlnk.sh -c /data/iso/ubuntu-24.04.iso -o ubuntu_link # 生成 ubuntu_link.vlnk.iso成功时输出Output VLNK file is ubuntu-24.04.vlnk.iso Vlnk file create success 失败时输出 Vlnk file create failed 并以非零状态退出。加-v可看到逐条判断过程挂载点、设备主/次号、分区起始扇区、文件系统类型等-h打印完整用法。验证 vlnk 指向是否正确用-l解析刚生成的文件sudo bash VentoyVlnk.sh -l ubuntu-24.04.vlnk.iso工具先校验文件合法性大小是否为 32768 字节、CRC 是否匹配不符则报This is not a valid vlnk file!然后按磁盘签名在/sys/block中找回源磁盘、按分区偏移找回源分区、再查/proc/mounts得到挂载点最终打印逻辑见 main_linux.c 的parse_vlnkVlnk Point: /data/iso/ubuntu-24.04.iso File Exist: YESVlnk Point:是解析出的原镜像完整路径File Exist: YES表示该路径下源文件存在指针有效。出现下列输出则说明当前磁盘状态与创建 vlnk 时不一致Disk in vlnk not found!——按磁盘签名找不到源磁盘Partition in vlnk not found!——磁盘上找不到起始偏移匹配的分区分区表被改动Mountpoint of /dev/sdXN is not found!——源分区当前未挂载解析依赖挂载点来还原完整路径。启动把 .vlnk 文件交给 Ventoy验证通过后把这个 32 KB 的.vlnk文件拷贝到 Ventoy U 盘的第二个分区与镜像同名目录结构更便于在菜单中辨认。启动目标机器时本地磁盘必须保持在位且分区布局与创建 vlnk 时一致——vlnk 依赖磁盘签名和分区偏移定位原始镜像。进入 Ventoy 菜单选中该.vlnk文件GRUB 即解析出目标并直接启动原镜像若此时本地磁盘或分区不对菜单显示前文所述的VLNK FILE NOT FOUND提示。限制与排错速查现象原因$t command not found in current system!缺少mountpoint/readlink/xzcatThis file is not supported for vlnk!源文件后缀不在支持列表内$FS is not supported!源分区文件系统不在支持列表内${FULLDIR} not found in /proc/mounts镜像所在目录不在任何挂载点之下如未挂载LVM/DM is not supported!源分区位于 LVM/DM 设备上File name length %d is too long for vlnk!文件路径超过 384 字符上限Disk in vlnk not found!-l时目标机器上看不到签名匹配的磁盘仓库中还包含 Windows 版实现main_windows.c其命令行模式支持-i输入文件、-o输出 vlnk 文件、-q静默模式适用于在 Windows 本地磁盘上创建指向该磁盘镜像的 vlnkLinux 下创建、Windows 下解析时注意两边磁盘签名与分区布局必须一致否则会出现上表末行的现象。【免费下载链接】VentoyA new bootable USB solution.项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表