Original Ventoy is a boot utility - a shim that boots ISO image files.
You run the included script, it installs onto the USB thumb drive you select, and then you can copy ISO images to the USB filesystem.
Each ISO automatically becomes a GRUB boot menu option.
This thing is fantastic.
iVentoy is the same idea, over a local network. PXE is a very old and pervasive standard for booting a computer by discovering a special network file server.
You wouldn't need a thumb drive at all - the client is in the BIOS of the motherboard and network interface.
Original idea dates from a time when mass storage - more than a few megabytes - was too expensive to install in each workstation, and we ran everything, including OS system files, on the file server. And we liked it.
>You wouldn't need a thumb drive at all - the client is in the BIOS of the motherboard and network interface.
>Original idea dates from a time when mass storage - more than a few megabytes - was too expensive to install in each workstation, and we ran everything, including OS system files, on the file server.
To be fair, in those times most people had "bare" network cards and needed to add an Eprom to it to add the PXE extension.
BIOSes (and integrated network cards) with PXE booting capabilities came much later, when local storage (within limits) wasn't anymore that much expensive.
> To be fair, in those times most people had "bare" network cards and needed to add an Eprom to it to add the PXE extension.
I remember the days of plugging chips into NE2000 clones to put in diskless 386’s connected to a thinnet network. These machines netbooted DOS and the Novell Netware client from a 486-based server running Netware 3 using a proprietary, non-PXE boot process. Loads of fun.
(I still have a tray of boot ROMs somewhere. I wonder if that code has been preserved somewhere or if I should read them out...)
but there is a whole world of different Eprom sizes and the usual possibility of incompatibilities with the NIC or with the BIOS on those old machines:
> How is the ISO image presented to the booting machine via the network?
Probably in two stages.
First a small kernel/initrd is booted with PXE from dhcp+tftp
Then that one has the ability to get the iso image either via tftp, or perhaps http or ftp or some other protocol, from the machine that served the initial files over tftp
Yes, that is how you would do it if you are rolling your own boot setup.
But, most ISO images are not set up to work this way, and the implication of the iVentoy site is that you can just use unmodified ISO images.
That is what I am wondering: How can you use unmodified ISO images to boot, as images, over the network? (Or can you?)
All the iPXE forum posts about this idea essentially end with "you can't do that without kernel support for reading the rest of the ISO.", so if iVentoy has solved that, I wanted to know how.
The situation is not all that different from their other tool for having multiple ISOs on a usb drive though, is it?
You have ISO images that usually you would write onto a CD or write to a USB drive with dd. These cannot boot by themselves if you just put the ISO file as is onto a FAT32 USB drive or similar. But Ventoy has a stage one boot thing for USB which you can then use to select an ISO file from your USB and somehow boot it.
So iVentoy would work the same way. The stage one is from iVentoy, not from the ISO itself. And that stage one does something that makes it possible to boot the ISO that it retrieved. Similar to how the USB based thing somehow can boot the ISO files from the USB.
Indeed, it seems iVentoy uses NBD to present block storage devices (eg: ISOs) to the DHCP client. I just installed iVentoy 1.0.08 in my lab on a Debian 12 VM (via VMware 8 server). From there, I created a new VM and booted Linux Mint 21.1 via UEFI boot. Linux Mint install went well with no noticeable issues.
Overall, first impressions are looking good. Found a few bugs that need to get worked out including:
* UEFi boot requires iVentoy to have 2 vCPUs (see forums)
* Restarting the iVentoy script resets the IP Boot config (specifically the Subnet Mask and Gateway)
From their release page, iVentoy supports a bunch of Linux and Windows install images, and you can even inject custom auto-install scripts to the ISO for unattended installs. Very cool. Finally, the iVentoy discussion forum seems very active, and the developer seems engaged.
I will probably support the developer ($49) because he was able to leverage NBD to overcome some iPXE issues I struggled with for a long time. I know how much time/effort goes into making iPXE booting look seamless. Kudos to him/her/them
It seems to be hot-patching the image to redirect the kernel command line to boot from the iventoy server.
I booted ubuntu-22.04.2-live-server-amd64.iso and the resulting kernel command line of the installation environment has a "url" argument that points at the iventoy server URL for the iso image.
I was not able to directly boot a homegrown Debian live ISO image, so I think they just have a broad set of specific ISOs that work with iVentoy. It's not a generic "boot any ISO" solution.
I'm not totally familiar with this in the context of low-level boot.
I've used iSCSI (SCSI protocol over Ethernet), AoE (likewise, ATA) and FreeBSD has a network layer of their GEOM virtual storage stack.
A "file server" takes a local filesystem (like Ext4) and shares it to network clients. Client and server need to agree on the protocol for sharing (SMB for example), but the client need not understand the server's local, on-disk data layout. My Mac doesn't run Ext4.
A Network Block Device just serves up storage blocks, not files. Sort of the inverse of the file server, where the server need not understand the local, on-disk layout of the span of blocks it's sharing. The NBD client interprets the blocks it receives as a file system. I could install an iSCSI driver on my Mac, share a volume from a Linux iSCSI server, and format the volume with APFS. I could encrypt the volume, such that the server couldn't access the decrypted data on its disk. It just serves up "raw" blocks.
NBD is fairly similar to AoE or iSCSI, you can connect to an NBD and then format it, as you suggest doing with iSCSI and APFS. One use case people were doing a lot at one time is doing RAID-1 with a local partition and a remote partition over NBD in HA clusters.
> On Linux, network block device (NBD) is a network protocol that can be used to forward a block device (typically a hard disk or partition) from one machine to a second machine.
Ventoy is one software that I always recommend to my peers. The ability to just throw the isos into a flash drive and have them work with no problem and no flashing (except for the initial Ventoy flash) makes installing OSs so much easier. The first thing i do when i get a flash drive is to install Ventoy on it.
I have used iPXE for a while but it bothered me that the setup is a bit difficult especially not being able to load ISOs directly. It made me wish that Ventoy was a PXE compatible. Now that iVentoy exists, this would make my life so much easier
Does anyone know of an open-source alternative to this?
I've been looking for a piece of software like this for a while, but I'm not gonna run software with full, unrestricted root (and internet) access unless the source code is available, or it's at least highly trusted.
The computer which run iVentoy must be in the same LAN with them.
Besides, there must no other DHCP servers in the same LAN.
It can coexist with an existing DHCP server. That means you can just start it up on your own network without any modifications, and start netbooting machines.
It turns out that multiple DHCP servers can co-exist on the same network segment. So I just have a second dhcp server solely for a pxe bootstrapper. At the time, at least the initial download must be tftp, but I used a stripped down ipxe stub that took advantage of the universal undi network drivers, and then loaded the rest (usually syslinux) over a fast HTTPS connection.
From there, iSCSI was no problem, and I could also use tools like plop, memdisk, or grub4dos, as well as Windows 7/8/10 with wimboot.
I remember for some distros like Knoppix, we would use an NBI driver to just mount the iso directly over the network, which could be far simpler and more performant than NFS.
EDIT: To be honest, it is simple enough that it doesn't have to use Docker. It is mostly dnsmasq and PHP.
I’m probably missing out on a great tool, but such a low level application being produce of the hundred acre wood gives me the heebie jeebies.
Not to mention it being closed source, regardless of origin!
ahah I discovered this tool yesterday as I sought to reinstall W11 on my school laptop from debian. Pleasently surprised it (nearly) worked right away; just forgot to disable SecureBoot before anything
You run the included script, it installs onto the USB thumb drive you select, and then you can copy ISO images to the USB filesystem.
Each ISO automatically becomes a GRUB boot menu option.
This thing is fantastic.
iVentoy is the same idea, over a local network. PXE is a very old and pervasive standard for booting a computer by discovering a special network file server.
You wouldn't need a thumb drive at all - the client is in the BIOS of the motherboard and network interface.
Original idea dates from a time when mass storage - more than a few megabytes - was too expensive to install in each workstation, and we ran everything, including OS system files, on the file server. And we liked it.