控制 Ventoy 搜索路径的方法总结

  • 背景介绍

默认情况下,Ventoy 会遍历磁盘中的所有目录及其子目录以找出所有支持的镜像文件。一般情况下U盘中的文件数目都不会很多,因此这个过程比较快,几乎感觉不到。
但是如果你的U盘中有非常非常多文件的话,整个搜素过程就会很慢,就会卡很久才能进入启动菜单。
因此,Ventoy 提供了多种方法来控制搜索行为,灵活使用这些方法可以加快搜索速度,减少进入启动菜单的等待时间。

注意:本文中介绍的各个方法可能是不同的版本中加入的,所以测试时请使用最新发布的 Ventoy 版本。

  • 1. 指定搜索目录

通过 全局控制插件 中的 VTOY_DEFAULT_SEARCH_ROOT 参数,可以指定搜索目录。指定之后,Ventoy 就只会在这个目录及其子目录里面搜索了。
如下设置则 Ventoy 就只会在 ISO 这个目录里面搜索(包括其子目录)。

{
    "control": [
        { "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" }
    ]
}

  • 2. 指定搜索的子目录层数

全局控制插件 中还有一个 VTOY_MAX_SEARCH_LEVEL 参数,通过这个参数可以控制递归搜索子目录时的最大层数。默认情况下,不管你子目录有多少层都会一直搜到底。
通过这个参数可以设置,比如最多搜索 3 层以内的子目录。如果同时也设置了 VTOY_DEFAULT_SEARCH_ROOT 参数,则层数就从其对应的目录为根目录(0级),往下开始计算。
比如,下面这个设置相当于只列出根目录下的文件,而不去搜索任何一个子目录。

{
    "control": [
        { "VTOY_MAX_SEARCH_LEVEL": "0" }
    ]
}

下面这个设置表示,从 ISO 目录开始,往下最多搜索1层子目录。所以,例如 /ISO/abc 这个目录会进行搜索,而 /ISO/abc/def 这个目录就不会搜索了。

{
    "control": [
        { "VTOY_MAX_SEARCH_LEVEL": "1" },
        { "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" }
    ]
}

  • 3. 跳过某个特定的目录

Ventoy 还提供了一个小功能。就是如果发现某一个目录下有一个名字为 .ventoyignore 的文件。就会自动跳过这个目录及其所有子目录的搜索。
这里只要求文件名字是 .ventoyignore 即可,对文件内容没有要求,甚至也可以是一个空文件。这在一些特殊情况下比较有用。 例如,你在某个目录下有很多 ISO 格式 的 Office 安装文件,由于是 ISO 格式的,所以默认也会被 Ventoy 搜索出来,但其实它不是一个可启动的镜像文件。 此时,你就可以在这个目录下放一个 .ventoyignore 即可。

另外,特殊说明一下,这个文件要求名字是 .ventoyignore 也就是说它没有名称部分,只有一个后缀部分。默认情况下,系统可能不允许你创建这种没有名称、只有后缀的文件。
这个其实是有意为之,就是为了防止误操作的情况。你可以借助批处理 CMD.exe 来创建这个文件,如下(假设你想要跳过 Ventoy 里面的 ISO/test 这个目录):

cd /D E:\ISO\test
echo 123 > .ventoyignore

  • 4. 指定文件列表

文件列表插件 这种模式是终极的自定义模式。
在这种模式下,Ventoy 再也不自己搜索了,而是完全由你来告诉 Ventoy,你说有几个文件就几个文件,你说在哪个目录就在哪个目录。

  • 5. 文件类型过滤

默认情况下,Ventoy 会列出所有支持的镜像文件,比如 .iso/.wim/.img/.vhd/.vtoy 文件。
全局控制插件 中有一组 VTOY_FILE_FLT_XXX 参数,通过这个参数可以进行文件类型过滤。 比如,把 VTOY_FILE_FLT_EFI 设置为 "1", 则会过滤掉所有的 .efi 文件。

  • 总结

Ventoy 提供了几种控制搜索行为的方法,可以灵活使用。其中,除了指定文件列表的方式以外,其他方法是可以组合使用的。
比如,你指定了搜索路径为 ISO 目录以后,你也还可以在 ISO/abc 这个子目录下放一个 .ventoyignore 文件, 这样 ISO/abc 这个子目录就会被整个跳过。