Ventoy: A new bootable USB solution
ventoy.net
ventoy.net
Their website and documentation sucks, but the product makes you giggle at the idea of using yumi/rufus/easy2boot/looking for empty/erasable thumbdrives. The latest iteration is the IODD-MINI. Though it looks like the crowdfunding campaign botched, i just bought myself the 512 GB version off Amazon Germany this week.
DeviceTree can go die in a fire.
Open source hardware and software published at https://github.com/ALSchwalm/pISO
- They struggle with fragmentation
- sometimes, the UEFI/Bios just won't see the disk, not sure why, I'm guessing the enclosure doesn't boot fast enough?
- Sometimes the enclosure just wouldn't read the ISO list. Again, no idea why. Fragmentation maybe?
After a few years of heavy use by me, the 2531's firmware corrupted. Reflashing using arcane prayers, legacy software flashing tool, and a physical Windows XP box got it back up and running. I gave it to a friend who still uses it.
With a 120GB cheap (no DRAM) SATA SSD, these things are fantastic.
I vaguely remember having some hassle initially formatting the drive for the ISOs once, but after that, it's worked flawlessly for so long I can't remember the details.
Despite both working solidly, I really want a Mini just because it would let me slim down my toolkit further.
I think it was WoeUSB that finally worked for me, not plain dd or Rufus or Apple's Boot Camp utility. Ventoy looks impressive, but unfortunately too many tools don't work.
Like you it used to drive me crazy and would often doesn't work but I never had issues after doing this.
This is different from the Linux situation, in which a file's name and directory location are separate from its inode, or the data structure holding actual information about the file including where the data lives on disk: once the inode associated with a file name is looked up and the file opened, anything may be done with the file name, including changing or unlinking it. Inodes with no links will also only be freed once every open file descriptor on the unlinked inode is closed. So a process will keep on chugging even if its executable file on disk is deleted, as though nothing happened -- because the file itself is only deleted once its inode is closed and unlinked.
I mean it's easy enough to try for yourself if you do not believe my own experience.
AND.... anyway it very often doesn't even work. Many UEFI BIOS are very opinionated about what they consider bootable.
This is a slick solution, but I think the average person it would be easier to just copy paste the files from the iso onto a usb and call it a day.
Although now this is even easier if you commonly are installing a new OS. But for the typical enthusiast that installs a new OS every couple years this solution is overkill.
> UEFI:NTFS is a generic bootloader, that is designed to allow boot from NTFS or exFAT partitions, in pure UEFI mode, even if your system does not natively support it. This is primarily intended for use with Rufus, but can also be used independently.
When I built my new PC I also spent a couple of hours on it, because most of the old documented and simple solutions did not work.
When I had a big partition that could hold the image the system wouldn't want to boot from it. On the small Fat32 partition the image didn't fit.
I think in the end I had to create 2 paritions, a Fat32 and an ExFat one. Then I had most of the boot files on both, but the big windows image only on the ExFat one.
That actually works - when the installer can't find the big image on the original partition you can point it to the other one and the installation will continue.
I should try this one too.
[0]: https://www.pendrivelinux.com/yumi-multiboot-usb-creator/
Wonder if it can somehow be combined with or run in conjunction with iPXE :D
Having a single boot drive to install / update / fix problems is handy.
I know running `cat distro.iso > /dev/sda` isn't hard but at least I don't need to tie up multiple 32gb flash drives with 700mb isos.
I think the main thing today is that I have very high capacity flash drives regardless, may as well make good use out of them.
It's been useful to boot into WinXP to play AoE or WoW, or Mac OS 10.9 to run p0sixspwn to jailbreak an iPhone 4S. The laptop has a 2 TB drive, and a lot of legacy software just in case I need to open some obscure file (e.g. AppleWorks).
I regularly find old laptops in the trash, and friends like it very much when I repair them and give them away. Some only boot Win10, others only Win7 (x64 or x32), and the oldest only XP. As for why you'd want various Linux distros, I imagine it's a similar platform-sensitivity issue.
I wish there were a bundle pack of USB drives with installers for all Windows and Mac OS versions, so I could just pick out the right installer and install. And another bundle of live USBs. Carrying around lots of USB sticks would be bulky, but somehow I expect it to be more reliable than Ventoy - my experience with the Zalman ZM-VE350 has never been reliable enough to replace an external CD drive.
Is the EFI in newer MBP still that picky?
Did you have success with this tool?
Found @ https://everymac.com/mac-answers/snow-leopard-mac-os-x-faq/m...
Also, you may be able to boot 64-bit macOS on your system if you follow the netkas.org link from your everymac.com link:
Remember: Never touch a working boot setup an old Mac with a crippled EFI. ;)
I once asked about how to boot an ISO (in Grub) here: https://superuser.com/questions/154133/grub-boot-from-iso
And one quote from there:
> GRUB can read ISO9660 (”iso”) images. It can for example load the first few sectors and boot it. But most people do not realize is “what then?”. What would the loaded operating system do? It will most likely look for a CDROM, which it won’t find, and fail.
I.e. files that are at the same time a valid .iso and a valid disk image.
Basically you can add to a normal bootable .iso a MBR taking advantage of the fact that the MBR is first absolute (512 bytes) sector of the device whilst the CD/DVD bootsector is the 17th sector (2048 bytes).
A BIOS will chainload the MBR on hd-like devices (including USB sticks) or the CD/DVD bootsectors (on optical media), then Syslinux/Isolinux, or grub4dos or GRUB2 (among others) will do the rest (chainloading the kernel and initrd and boot the Linux.
This answer doesn't seem right to me at all.
I'm not a OS expert, but I've spent some time booting weird hardware.
Generally, the boot process will load a kernel into memory, which has drivers for (hopefully!) the hardware needed to load the rest of the OS. The boot instructions (from GRUB or whatever) will specify the root partition (in linux) and enough information on how to load it.
That might be on a local drive, a CD/DVD or a network device, but provided the kernel has the driver available it doesn't really matter.
http://reboot.pro/topic/9916-grub4dos-isohybrided/?p=88531
Since all in all that happens is that a contiguous extent on disk is mapped as a partition, there is the requirement for the .iso image to be contiguous in the hosting filesystem.
Ventoy goes beyond this as it virtualizes the .iso blocklist , thus allowing non-contiguous images:
http://reboot.pro/topic/22277-ventoy-open-source-usb-boot-ut...
> A "Ventoy Compatible" concept is introduced by ventoy, which can help to support any ISO file.
from the "Ventoy Compatible" page:
> From the document you can see that ventoy will create a virtual disk from the iso file and boot it. But the virtual disk is only on BIOS(Legacy or UEFI) level. In most case it works only in bootloader period. Most of the morden OS's kernels will use their driver to access hardware after boot, so the virtual disk will not be visible to them. In normal case, the OS will search all the hardware storage media(CDROM/USB/HD ...) to find the source medium. But with ventoy they will not find such medium because there is no such physical media and they don't know that they were booted from a virual disk. In order to support that ventoy must do some hook before boot. But the hook is really a hard work because there are so many different OS distros and so many special cases.
menuentry "Debian Sid LXDE Live" {
insmod ext2
loopback loop /isos/debian-sid-lxde.iso
linux (loop)/live/vmlinuz-3.14-1-amd64 initrd=/live/initrd.img-3.14-1-amd64 quiet boot=live config fromiso=/dev/sda1/isos/debian-sid-lxde.iso toram=filesystem.squashfs noeject quickreboot hostname=debian username=liveuser locales=de_DE.UTF-8 keyboard-layouts=de nopersistence
initrd (loop)/live/initrd.img-3.14-1-amd64
}FWIW this is on a cheap laptop with buggy UEFI which gave me some boot problems in the past, so that gives me some hope.
I discovered it a few days ago and used the latest (1.0.19) version to boot the Linux Mint 20 iso and install it to my laptop without problems. Looks like there's also a "Tested ISO" page[0] on the official site.
Yeah and it has a whos-who of hacked and cracked Windows10 'WinPE' / preinstalled environments which I find amusing, like for example:
Gandalf's-Win10PEx64-19H2.iso
Gandalf_s_Windows_10PEx64_Redstone_5_build_17763.iso
Bob.Ombs.Modified.Win10PEx64.v4.8.iso
WinPE10_8_Sergei_Strelec_x86_x64_2020.06.09_English.isoI used this to fix a broken windows system recently while visting my "in-laws".
Probably a bodged update, booting windows resulted in "Boot device not found".
I had created the stick a couple of weeks earlier and put some ISOs on there, including windows 10 and ubuntu. Just have it with my leys now.
Used the Ubuntu stick to assess the situation, run smartmontools on the disk, backup data to an external hard drive and then used the windows stick to restore a recovery point which fixed the system.
This seems to be a fine alternative that I will have to try. The problem is that I don't really have large USB sticks for this anymore...
That's why after all these years I am still interested in the Firmware or the hypervisor level emulation of the optical drive.
Maybe by even including the whole virtual storage controller (like Adaptec 29160N SCSI Card), OpROM on which could support boot seamlessly for most BIOS or UEFI firmwares.
And which would be supported by most PC OSes including some more obscure like MS-DOS, OpenBSD, Solaris 10, BeOS, MorphOS.
(Or maybe by trying to integrate the emulated ODD subsystem into physical USB stack. Which I guess would be a lot more difficult)
You can't dd them. Format a USB drive, make a fat32 or ntfs[1] partition. Extract all the files from the ISO (mount -o loop to an intermediate directory and copy the files out, 7z can also do it) onto said partition. Set the bootable and ESP (EFI System Partition flag) flags. Works like a charm every time.
(You can also try the woeusb[2] tool, but it's not doing anything fundamentally different to or better than that.)
1. Fat may be problematic; iirc install.wim is >4gb lately. But ntfs-3g is adequate if lacklustre.
I think it would only work if your UEFI firmware happen to contain a driver for reading NTFS partitions. UEFI firmwares are only required to read FAT12/FAT16/FAT32. Rufus solves this by making an extra FAT partition with a UEFI:NTFS [1] binary which loads its own NTFS driver to boot the Windows `bootmgfw` EFI binary.
>Project started on 2020-04-05
http://reboot.pro/topic/22277-ventoy-open-source-usb-boot-ut...
The compatibility matrix of this tool right here is impressive.
Actually you most probably had to fiddle with so-called UEFI, i.e. Universal EFI which should really-really be called UUEFI (Unlike Universal Extended Firmaware Interface).
I’m usually juggling different images for different experiments and this should simplify things greatly.
But isn't copying the ISO file about as much work?
Instead, I suspect a better solution would be to have a bootable file system on the USB drive (instead of an ISO file), which you can rsync new versions to.
> which you can rsync new versions to
Both cases, it is more work than what you're objecting.
"you just need to copy the ISO/WIM/IMG/EFI files to the USB drive and boot them directly" - Can you explain what specifically is painful about this process?
That’s all it takes today.
The Windows WIM support is especially nice for work where most of our machines are Windows based and again I can carry just one flash drive to cover several different builds of Windows plus HBCD.
> Persistence supported (1.0.11+)
There's a link to more info [1] which says how to configure it: there's a JSON file with config info, in which you specify a file on the USB stick for it to save the data.
This is the problem with these multiboot systems... They're flakey and tend to fail for your particular use case, no matter how common :(
Back to one-iso-per-usb-stick
And it's GPL3, which is awesome.
But i can't find the link to the source repo.
Does anyone see one?
For others' convenience:
https://github.com/ventoy/Ventoy
(it's also on the download page, but I was looking for it in homepage, FAQ, and licensing page)