Ventoy Persistence Plugin

Hello everyone. I bought a used laptop with no hard drive and when I received it I found that whoever removed the hard drive also removed the SATA connector cable, so my 2.5 inch drives can’t be connected and after my purchase I’m temporarily not able to afford the connector nor an m.2 drive until next month. I noticed that Arch and many arch-based distros are now supported in Ventoy for the persistence plugin. I made a first attempt and failed to make Garuda persistent. Before I waste my time, I was just wondering if anyone has had success with this. I do know that running garuda live is not supported, but this is a rare case scenario and just temporary, and what else would I want to run from USB but Garuda?

And long-time-no-see everyone…I’ve missed this place.

╭─garuda@garuda in ~ as 🧙 took 58s
╰─λ garuda-inxi
Kernel: 6.5.9-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: hpet,acpi_pm
parameters: BOOT_IMAGE=/boot/vmlinuz-x86_64 lang=en_US keytable=us tz=UTC
misobasedir=garuda root=miso:LABEL=GARUDA_DR460NIZED_RAPTOR quiet
systemd.show_status=1 ibt=off driver=free nouveau.modeset=1
i915.modeset=1 radeon.modeset=1
Desktop: KDE Plasma v: 5.27.9 tk: Qt v: 5.15.11 wm: kwin_x11 vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Type: Laptop System: HP product: HP ZBook 15 G3 v: N/A
serial: <superuser required> Chassis: type: 10 serial: <superuser required>
Mobo: HP model: 80D5 v: KBC Version 10.75 serial: <superuser required>
UEFI: HP v: N81 Ver. 01.52 date: 10/28/2020
ID-1: BAT0 charge: 35.8 Wh (37.5%) condition: 95.4/90.0 Wh (106.0%)
volts: 10.6 min: 11.1 model: Hewlett-Packard Primary type: Li-ion
serial: <filter> status: discharging cycles: 4
Info: model: Intel Core i7-6820HQ bits: 64 type: MT MCP arch: Skylake-S
gen: core 6 level: v3 note: check built: 2015 process: Intel 14nm family: 6
model-id: 0x5E (94) stepping: 3 microcode: 0xE2
Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB
L3: 8 MiB desc: 1x8 MiB
Speed (MHz): avg: 858 high: 1270 min/max: 800/3600 scaling:
driver: intel_pstate governor: powersave cores: 1: 800 2: 800 3: 1270 4: 800
5: 800 6: 800 7: 800 8: 800 bogomips: 43198
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Device-1: Intel HD Graphics 530 vendor: Hewlett-Packard driver: i915
v: kernel arch: Gen-9 process: Intel 14n built: 2015-16 ports: active: eDP-1
empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3 bus-ID: 00:02.0
chip-ID: 8086:191b class-ID: 0300
Device-2: NVIDIA GM107GLM [Quadro M600M] vendor: Hewlett-Packard
driver: nouveau v: kernel non-free: 535.xx+ status: current (as of 2023-09)
arch: Maxwell code: GMxxx process: TSMC 28nm built: 2014-19 pcie: gen: 1
speed: 2.5 GT/s lanes: 16 link-max: gen: 3 speed: 8 GT/s ports:
active: none empty: DP-4,DP-5,DP-6 bus-ID: 01:00.0 chip-ID: 10de:13b2
class-ID: 0300 temp: 31.0 C
Device-3: Chicony [] driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
lanes: 1 mode: 2.0 bus-ID: 1-7:2 chip-ID: 04f2:b51c class-ID: 0e02
Display: x11 server: X.Org v: 21.1.9 with: Xwayland v: 23.2.2
compositor: kwin_x11 driver: X: loaded: modesetting,nouveau
alternate: fbdev,intel,nv,vesa dri: iris,nouveau gpu: i915 display-ID: :0
screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
s-diag: 582mm (22.93")
Monitor-1: eDP-1 model: LG Display 0x046f built: 2014 res: 1920x1080
hz: 60 dpi: 141 gamma: 1.2 size: 345x194mm (13.58x7.64") diag: 396mm (15.6")
ratio: 16:9 modes: 1920x1080
API: EGL v: 1.5 hw: drv: intel iris drv: nvidia nouveau platforms:
device: 0 drv: nouveau device: 1 drv: iris device: 2 drv: swrast gbm:
drv: nouveau surfaceless: drv: iris x11: drv: iris inactive: wayland
API: OpenGL v: 4.6 compat-v: 4.3 vendor: intel mesa v: 23.2.1-arch1.2
glx-v: 1.4 direct-render: yes renderer: Mesa Intel HD Graphics 530 (SKL GT2)
device-ID: 8086:191b memory: 30.41 GiB unified: yes
API: Vulkan v: 1.3.269 layers: 3 device: 0 type: integrated-gpu name: Intel
HD Graphics 530 (SKL GT2) driver: mesa intel v: 23.2.1-arch1.2
device-ID: 8086:191b surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe
(LLVM 16.0.6 256 bits) driver: mesa llvmpipe v: 23.2.1-arch1.2 (LLVM
16.0.6) device-ID: 10005:0000 surfaces: xcb,xlib
Device-1: Intel 100 Series/C230 Series Family HD Audio
vendor: Hewlett-Packard driver: snd_hda_intel v: kernel
alternate: snd_soc_avs bus-ID: 00:1f.3 chip-ID: 8086:a170 class-ID: 0403
Device-2: NVIDIA GM107 High Definition Audio [GeForce 940MX]
vendor: Hewlett-Packard driver: snd_hda_intel v: kernel pcie: gen: 1
speed: 2.5 GT/s lanes: 16 link-max: gen: 3 speed: 8 GT/s bus-ID: 01:00.1
chip-ID: 10de:0fbc class-ID: 0403
API: ALSA v: k6.5.9-zen2-1-zen status: kernel-api tools: N/A
Server-1: PipeWire v: 0.3.83 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Device-1: Intel Ethernet I219-LM vendor: Hewlett-Packard driver: e1000e
v: kernel port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15b7 class-ID: 0200
IF: enp0s31f6 state: down mac: <filter>
Device-2: Intel Wireless 8260 driver: iwlwifi v: kernel pcie: gen: 1
speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:24f3 class-ID: 0280
IF: wlp2s0 state: up mac: <filter>
Device-1: Intel Bluetooth wireless interface driver: btusb v: 0.8 type: USB
rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-12:4 chip-ID: 8087:0a2b
class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 4.2
lmp-v: 8 status: discoverable: no pairing: no class-ID: 7c010c
Local Storage: total: 57.81 GiB used: 0 KiB (0.0%)
ID-1: /dev/sda maj-min: 8:0 model: General USB Flash Disk size: 28.91 GiB
block-size: physical: 512 B logical: 512 B type: USB rev: 3.2 spd: 5 Gb/s
lanes: 1 mode: 3.2 gen-1x1 tech: SSD serial: <filter> fw-rev: 1100
scheme: GPT
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
ID-2: /dev/sdb maj-min: 8:16 model: General USB Flash Disk size: 28.91 GiB
block-size: physical: 512 B logical: 512 B type: USB rev: 3.2 spd: 5 Gb/s
lanes: 1 mode: 3.2 gen-1x1 tech: SSD serial: <filter> fw-rev: 1100
scheme: GPT
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
Message: No partition data found.
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 31.14 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 8 dev: /dev/zram0
System Temperatures: cpu: 53.0 C pch: 33.0 C mobo: N/A gpu: nouveau
temp: 31.0 C
Fan Speeds (rpm): N/A
Processes: 234 Uptime: 39m wakeups: 1 Memory: total: 32 GiB note: est.
available: 31.14 GiB used: 4.09 GiB (13.1%) Init: systemd v: 254
default: graphical tool: systemctl Compilers: gcc: 13.2.1 Packages:
pm: pacman pkgs: 1230 libs: 353 tools: octopi,paru Shell: fish v: 3.6.1
running-in: konsole inxi: 3.3.30
Garuda (2.6.17-1):
System install date:     2024-01-09
Last full system update: 2024-01-09 ↻
Is partially upgraded:   Yes
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       <superuser required>
Failed units:            snapper-cleanup.service
1 Like

I’ve never ran into that, Dave, but I do have a spare WD 1GB SATA m.2 drive with 99% life left in it I can send to you if you’re that bereft.


Not sure exactly what your referring persistent but Linux Mint is a great USB distro.
Best on good hardware but I’ve run it on Core Duo w/8GB ram on laptop with burned out HD controller quit respectively.
If I am not miss taken you can create a folder on the ventoy for personal data usable from Live… Did you try to create it?
If not, doesn’t Garuda not run that way from a deadicated USB iso?
I mean i’ts probably gonna be clunky.

1 Like

Well, @Bro, that’s quite an offer, and that’s a drive I could surely use. I could send you some money for it in about 3 weeks, or replace it if you like. I’ll hit you up in a PM to discuss further.

@dudesplace, that’s actually a pretty good suggestion. I know for certain that Linux Mint can be made into a Ventoy Persistent Distro because I’ve made one before, but I’d only do that if I knew for certain that this wouldn’t work with Garuda. No offense to Mint, but I grew up in arch-based and can’t help but feel like Debian-based is just inferior. We never have to add repos (can’t remember the term they use for it) to get a package in this neighborhood. I’ve been trying and hoping for arch-based persistence for years and IF I can make it work on my favorite system, especially when I absolutely need it, then I’ll do or learn whatever it takes to make it happen. But I do have Mint in mind if I can’t make this work. Thanks for the good suggestion.

1 Like

Just put a persistence data file in the 1st partition and tell Ventoy by the json configuration, and that’s all.

lsblk -f | grep sda
├─sda1      exfat  1.0   Ventoy       1C24-D355                              17,1G    36% /run/media/sgs/Ventoy
├─sda2      vfat   FAT16 VTOYEFI      1E1C-88C8                                           
└─sda3      ext4   1.0   Speicher     8f7d761a-910d-4612-88db-d0a5ee320880
sudo bash /dev/sda
bash: No such file or directory

I do

A persistence array is defiVentoy.ned to describe the configuration in /ventoy/ventoy.json. Did change anything in grub

but at the moment I don’t have the patience to go through the next pages of instructions. I made this stick some month ago and don’t know what they mean by the first partition :D.


Maybe the best is you ask in :slight_smile:

And then make a tutorial for Garuda users :clap:


Thanks, @SGS. I don’t know why it’s failing. I found the tool in the preboot Ventoy menus to check your ventoy.json configuration (I edited mine manually on my phone) and here’s what it says:


Looks like it should be working (except I wonder if the zeros where it says “PERSIST 0” mean that is disabled; maybe they should be ones), but when I booted, connected to wifi, synced the repos, installed ventoy-bin and firefox, and pinned firefox to the dock, then rebooted, I had to put my wifi password again, and noticed none of those tasks had persisted. I’m not clear on if you had yours working or not, but the 1st partition would be the large one where you put the isos.

Here’s my ventoy.json file. Maybe someone who speaks json can see a problem. Like I said, I used my phone so I couldn’t use the tool in the ventoy program. I did it manually.

I just noticed I hit enter twice and made an empty line at line 13, but from what I know about coding, I don’t think that matters. I guess I’ll fix that and see if it fixes it.

I also ran the script and made my own .dat file in an arch install with proot-distro on my phone. I wonder if that was a bad idea…but for some reason the premade .dat files I downloaded didn’t contain the vtoycow labelled files that it was supposed to. They were missing from the .zip in the 5.0 downloads. Missing in the 4.0 .zip too.

1 Like

I’ve never used any of this, so take with a grain of salt.
Looking at Plugin.persistence . Ventoy I wonder if you need to use vtoycow in place of persistence.

P.S. I won’t be able to respond for a few hours or maybe tomorrow.


Yes sir, you are correct. I had to make my own. I just added an edit right before you posted with that info. I made an ext4 garuda.dat file of 8GB with the label vtoycow with the script on the ventoy site.

1 Like

Sorry, it must be “Did not change anything in grub.” No files to start the persistent modes.

Also, not include, I just change the ventoy.json

But in manual


  1. VentoyPlugson is only used to generate ventoy.json file and does not have any other function.
  2. You can also manually edit ventoy.json again after it generated.


  • 2.2 How to start —— Linux
  1. Open teminal and run sudo bash /dev/sdX
  2. Open your browser and visit

again, there is no .sh


No arch or Garuda backend included, I use latest ventoy … seems the do this for you but is missing this shell script. And you can see, IDK anything from json :smiley: .

SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 156 column 1 of the JSON data

1 Like

I didn’'t notice you could use the tool online! Thanks for that!

Yes. And I saw a youtube video where the guy downloaded the 5.0 zip and the arch files were in there. They must have removed them. Whether on purpose or not I don’t know.

And thanks for the help, @SGS , I was afraid you Garuda Team guys would frown on me for my post.

And, @SGS , the .sh is in the linux download here.

For the plugson script and the create .dat file script. I guess I could have used the plugson script in the arch install on my phone…

1 Like

works now

 ventoy -v

      Ventoy: 1.0.96  x86_64
      longpanda [email protected]


wrong version :wink:

Seems I need some weeks to check all and will test later the ventoy live ISO.

ups, Ventoy LiveCD is not the ISO version of Ventoy, it is just used to install Ventoy.

Missing , behind }

        { "VTOY_DEFAULT_MENU_MODE": "1" },
        { "VTOY_MAX_SEARCH_LEVEL": "2" }
        "ventoy_color": "#d0e764"
            "key": "Garuda",
            "class": "garuda"
            "key": "MX-",
            "class": "mx"
            "key": "Elementar",
            "class": "elementary"
            "key": "Windows_7",
            "class": "windows7"
            "key": "Windows_10",
            "class": "windows10"
            "key": "Kubuntu",
            "class": "Kubuntu"
            "key": "Linuxmint",
            "class": "Linuxmint"
            "key": "Arch",
            "class": "arch"
            "key": "ArchLinux",
            "class": "archlinux"
            "key": "Chakra",
            "class": "chakra"
            "key": "Debian",
            "class": "debian"
            "key": "Deepin",
            "class": "deepin"
            "key": "Endeavouros",
            "class": "endeavouros"
            "key": "Fedora",
            "class": "fedora"
            "key": "Gentoo",
            "class": "gentoo"
            "key": "GNU",
            "class": "gnu-linux"
            "key": "Kali",
            "class": "kali"
            "key": "Kaos",
            "class": "kaos"
            "key": "Lubuntu",
            "class": "lubuntu"
            "key": "Linux",
            "class": "Linux"
            "key": "Manjaro",
            "class": "manjaro"
            "key": "Solus",
            "class": "solus"
            "key": "Opensuse",
            "class": "opensuse"
            "key": "SteamOS ",
            "class": "steamos"
            "key": "Ubuntu",
            "class": "ubuntu"
            "key": "Search",
            "class": "find.efi"
            "key": "Pop",
            "class": "pop"
            "key": "Xubuntu",
            "class": "xubuntu"
            "key": "CentOS-7-",
            "class": "centos"
            "image": "/garuda-hyprland-linux-zen-231219.iso",

            "image": "/garuda-hyprland-linux-zen-231219.iso",

Since some scripts in Hyprland live ISO set some settings (monitor, waybar) it start without my changes, also WiFi settings are empty.

IDK what they mean by persistent :smiley:
On the other hand, I am not perfect in this kind of action and reading 1000 pages of manual :rofl:


Ok. I found out Garuda doesn’t work with ventoy persistence. My json file was fine. I downloaded Archman iso and added another section to the json file and archman was automatically persistent. Maybe a team member would have to contact them at Ventoy to add the feature.

It means that any changes you make in the system will remain next time you boot. Any files you add or packages you install will be there next time you boot it. It acts like a real hard drive install. I knew archman was persistent as soon as I booted it the second time because it automatically connected to my hotspot. It remembered the wifi password.

1 Like

Well, I got my connector and this cheap Drive seems to be working well. Write speeds are right on.