Ventoy
ventoy.net
ventoy.net
I wrote about it here: https://www.theregister.com/2021/12/10/friday_foss_fest/
Now there's a PXE network-boot version too.
https://www.linux-magazine.com/Issues/2022/257/deepin
> Deepin is a distribution developed in Wuhan, China by Deepin Technology. Its homepage proclaims it "the top Linux distribution from China" ... The extensive EULA is uncommon for the Linux space, and the privacy policy goes into some detail about the types of information they collect – not just browser history, but information on when you use your computer and the applications installed on your system.
https://cntechpost.com/2019/12/31/union-tech-acquires-deepin...
> Deepin Technology said today it is now a wholly-owned subsidiary of Union Tech ... developed a new UOS product ... The UOS preparatory group was voluntarily initiated by a number of domestic operating system core companies. Its members include China Electronics Group (CEC), Wuhan Shenzhidu Technology Co., Ltd., Nanjing Chengmai Technology, and ZTE New Fulcrum ... It has set up a headquarters in Beijing and established branches in Shanghai, Guangzhou, Wuhan, Nanjing, Xi'an, Chengdu and other places.
I don't get it. It supports hundreds of distros and dozens of OSes.
What do you feel is relevant about Deepin?
Indeed, so why is Deepin the only distro worthy of a "Friendly Link" on the Ventoy home page? Are they a sponsor of the project? Code contributor? Preferred demo platform?
It's not the only link: there's also some Chinese forum.
Maybe it's Longpanda's favourite distro? It is a very good one. I've reviewed it:
https://www.theregister.com/2022/04/01/deepin_205_surfaces/
https://www.theregister.com/2022/08/25/deepin_206_23/
It is one of the major distros, with millions of users, and yet there is very little knowledge of it in the West. Its commercial upstream claims to have over 3 million paid users:
https://www.theregister.com/2023/11/20/3_million_deepin_user...
I suspect that in plain old user numbers it is up there with Debian, Ubuntu and CentOS, and yet you rarely even hear it mentioned in the same breath. Nor is its desktop, DDE, which is FOSS and is supported in Fedora, openSUSE and has its own Ubuntu remix.
For the serverside, there are several python projects on github which provide everything you need in one package, for example pybootd.
UEFI threw a huge moneywrench in the process, and SystemD doesn't help. Last time I made it work I had to track down a mailing list entry where someone discussed an otherwise undocumented kernel option that needed to be set to make it work. One of the key glue techs that made it work last time (rom-o-matic) went out of development and is gone.
if option arch = 00:07 { filename "uefi/shimx64.efi"; next-server X.X.X.X; } else ...
Otherwise, your going to get the wrong arch/filename.
It is similar to HTTPS, but the arch = 00:10 for x64 and it needs:
option vendor-class-identifier "HTTPClient";
Then put the URL in the filename field.
Finally just put the usual bios/pxe stub in the last "else"
Of course, your distro should provide a PXE capable grub/kernel/initrd, which you then toss on the TFTP/HTTPS (or HTTP then you don't have to deal with certs) server in the path provided.
Without that support, you have to take apart ISO files to netboot them, and your PXE environment needs to understand the various kernels and how to boot them, and how to provide modules / filesystem images.
It's a big pain.
But I get a good bit of satisfaction of having gleaned a pretty functional understanding of setting up PXE/netboot (Ubuntu installs; with a Ubuntu PXE server via DNSMasq + nfs + tftp).
I even did some grub menu user input (and ascii art while I was at it) prompts/trickery to allow choosing the machine name shortly after boot, before the long slow Ubuntu install.
The list of things I've failed at (memtest) or not tried (Windows) is surely long, though.
Ventoy is fantastic for any lower-volume imaging needs I have, of course.
Having a single thumb drive with multiple ISOs on it means you don't have to keep juggling thumb drives ("now where did I put my Debian 12 XFCE installer") or overwriting them over and over ("oh no, this has the 64-bit ISO, but now I need the 32-bit installer").
Useful for more than installs too, I have live distros with things like memtest, gparted and clonezilla, which really simplifies little one-off fixes.
There are a few issues at play:
1. Power supply issues: the power demands of your mix of enclosure and drive may not be satisfied by your USB port(s), which can vary wildly in capability, and over time.
2. The controller within the enclosure can overheat under load. This seems to happen across many enclosures I’ve tried. Larger enclosures may allow for attaching a tiny heatsink.
3. NVMe drives may not gracefully handle sudden disconnections. USB connections are inherently unreliable interfaces prone to physical disruption and loss of power, which will multiply against any normally hidden non-resiliance in the nvme drive.
If your drive decides to stop showing up, first try loading up the boot device selection screen in the UEFI, and then insert the drive. It may take several seconds to show up. If trying that a few times doesn’t work, the drive may be stuck in some kind of bad state. You may be able to recover from this with the unfortunately poorly known power cycle technique https://dfarq.homeip.net/fix-dead-ssd/
The technique summarized is:
1. Connect to power (not data) only. Alternatively letting the drive sit at bios setup screen also seems to work. Turn on the power and leave the power on for 30 minutes.
2. After 30 minutes, power down or pull the power cable.
3. Wait 30 seconds, then restore power.
4. Let the drive sit powered on for another 30 minutes.
5. Power down again, then wait 30 seconds.
Always set up automatic backups if you actually have non-replaceable data on the drive. They can and will just suddenly die forever with loss of all data, just like thumb drives. You have been warned.
All that said, there are generally less issues if you are simply putting ventoy on it to just install an OS from an iso.
I have a dual raid1 sata enclosure that I use to boot a windows to go install created with Rufus (https://github.com/pbatard/rufus), which makes testing and benchmarking so much nicer to deal with. I’ve even stuck games on it, and other than relative filesystem slowness it works pretty great, once I added a heatsink to the enclosure controller.
Not sure how gracefully the enclosure downgrades to USB 2.0 speeds, but it's very handy and very fast.
The SSD doesn't need to be fancy. It's overall bigger than a typical thumb drive, but much more reliable and the SSD can be easily swapped out. The detachable USB C cable on the enclosure is also very convenient.
The reason I went this route is simple really, I wanted something faster/more reliable than a flash drive. Ventoy runs fine off a cheap flash drive, but, it is faster when your device is faster.
[1] https://learn.microsoft.com/en-us/virtualization/community/t...
Sample configs for grub2 ISO boot, e.g. USB or secondary disk partition for system recovery, https://news.ycombinator.com/item?id=38663958
There is dedicated hardware to emulate optical drives, e.g. Korean IODD sells SSD enclosures to emulate up to 4 virtual optical drives in parallel, mapped to ISOs or VHDs. As a standalone device, this keeps untrusted emulation code away from the system CPU. The output of that untrusted code could be verified, e.g. by hashing the emulated ISO.
A New Bootable USB Solution https://news.ycombinator.com/item?id=28889392 (October 16, 2021 — 182 points, 47 comments)
Ventoy makes making bootable USB drives easy https://news.ycombinator.com/item?id=24273289 (August 25, 2020 — 66 points, 11 comments)
Ventoy: A new bootable USB solution https://news.ycombinator.com/item?id=24241485 (August 21, 2020 — 394 points, 106 comments)
Ventoy – A New Bootable USB Solution https://news.ycombinator.com/item?id=23394714 (June 2, 2020 — 70 points, 6 comments)
It works with BIOS and UEFI and even lets you keep using your usb for other files.
especially if you want to customize or keep your bootable recovery disk usb updated without rolling your own ISOs.
It's still great, but if you run into space issues you'll have to extend the loop file.
It is basically a bootloader that lists all the Isos on the drive and let's you boot them.
I have a handful of Isos and it's a good send
It's configurable via a simple json file.
Example config:
{ "image_list": [ "/ISO/Linux/archlinux-2020.10.01-x86_64.iso", "/ISO/cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso", "/ISO/Win10PE.iso" ] }
or:
https://www.ventoy.net/en/plugin_control.html
And something like:
{ "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" }
I didn't test Tails much (I was just trying to encourage learning linux through fun... tools) but I could boot into Kubuntu and play the included Switch games. It even worked with a cheap/generic Switch Pro-like controller without any extra setup required other than to tell Yuzu to use it.
Essentially it was an instant boot-on-anything Nintendo Switch emulator thumb drive (it was one of the tinier varieties too). Tape that drive to the back of a $20 Switch Pro-like controller and it's a fantastic Christmas gift
Variants without this limitation were discussed yesterday.
Usecase: a rescue distribution to start from the UEFI menu manually, or automatically if your normal boot fails
A few ISO + a UEFI entry to select them is much simpler: the ISO file will never change. It can not be rended unbootable by mistake
I tried to explain that yesterday in a reply to https://news.ycombinator.com/item?id=38668260 and on https://news.ycombinator.com/item?id=38668809
Theoretically, something similar can be achieved with a read-only partition, or a read-only installation (e.g. Fedora Silverblue). I won’t argue that may include more competency than just throwing some ISOs at the partition. But for me, that feels like a more comfortable way of having a rescue system at hand. I have an Arch installation USB for the same reasons, to save my Arch installation if anything happens. I had been thinking of creating a separate USB with Arch installed, but I’m not sure it’s needed. As in reality all of my maintenances were to boot, chroot and update or downgrade some things. In case I need a GUI, I use a Fedora installation. I assume your scenario is more like that.
Yes, it's just faster to boot to an installation or liveCD iso, as it's rarely needed and updating it only requires a new ISO.
Having a full installation on a separate partition is riskier (what if something writes to the partition) and more brittle (too many moving parts)
Ventoy saved my bacon. One of the problems I was encountering turned out to be that one of the BIOSes wasn't recognizing the standard Debian ISO (any of them) as bootable, but it did recognize Ventoy. The other device ultimately refused to boot anything other than either Windows or Ubuntu (hard-locking on kernel load), but Ventoy at least made it easier to trial-and-error my way to that conclusion.
I flatly refuse to purchase a mass-market computer ever again. Everything from this point forward is either going to be custom built or purchased from a vendor with explicit Linux support.
the image was built using this repo [2] and this command: ./build.sh -i dl/alpine-standard-3.19.0-x86_64.iso -p min -s 0.3
[1] https://ocv.me/asm.usb.xz [2] https://github.com/9001/asm
Just FYI, Windows Boot Manager (and also its predecessor NTLDR) can chainload into any other bootloader including GRUB. Originally intended to support dualbooting Windows NT with Windows 9x, it's actually quite handy and reliable.
>I flatly refuse to purchase a mass-market computer ever again.
There's your problem. "Big box" store-bought computers have motherboards that are locked down and devoid of most advanced features.
Can you explain how to use Windows bootmgr to chainload a linux kernel store either in the EFI or the NTFS?
The goal is to use the same menu that shows different Windows versions from different drives
Yes, this means if GRUB subsequently has its own selection for Windows Boot Manager you can go and dance between the two forever. :P
Seeing as the system is booting into Windows Boot Manager first, I think it should satisfy any SecureBoot demands if you want to actually boot GRUB or something afterwards.
But still have not found a way to boot Linux from Windows boot loader in plain UEFI. Where those exact 446 bytes are completely ignored.
OTOH, booting Windows from a linux UEFI bootloader is still fundamentally as easy as it was a few years ago once the Linux community had legitimately acquired microsoft-signed bootloader shims. Except since then these specific Microsoft-signed keys "became" compromised, and are presently in the process of being blacklisted[0].
"Early-adopters" were expected to manually update their motherboards along the lines published here:
https://support.microsoft.com/en-us/topic/kb5025885-how-to-m...
Take a close look at the FAQ and Troubleshooting sections at the bottom of this article. And these are focused on potential problems with Windows itself. For Linux you need to interpret this information yourself.
Which is also the article where the expected deployment staging schedule shows that the blacklisting process will eventually be complete no sooner than October 8, 2024.
As time draws near, anyone who has not manually taken action will have their original keys be corrected in stages by being silently autoreplaced by spares. This autoreplacement seems to be occurring recently while running updated Windows 10 & 11 installs.
Looks like a new executable, SecureBootEncodeUEFI.exe, was downloaded during an update, and has been reaching the designated spawning date for many users:
https://learn.microsoft.com/en-us/answers/questions/1286247/...
https://answers.microsoft.com/en-us/windows/forum/all/secure...
I saw the CMD popup while I was running an updated W10 on an especially slow PC.
According to the calendar, this is a really drawn-out process, and until it's over[1] we will remain in a transition period where you never know which keys you need to have on your media in order for it to boot on any one particular motherboard.
.
[0] https://arstechnica.com/information-technology/2023/05/micro...
>Fix will eventually render all kinds of older Windows boot media unbootable.
Not only "old" Windows boot media, Linux boot media is a target that can not be considered merely "collateral damage".
[1] It will only be completely over once all UEFI PC motherboards in existence have been updated to perfection. Well, really after that only once all UEFI-bootable media has been corrected to match perfectly as well. Haven't seen any articles on how this is supposed to be accomplished though . . .
Could very well be some subtle encouragement to discard all old media for some reason.
That's exactly what I'm looking for: chainloading from bootmgfw by adding entries with bcdedit: this is because winload.exe loads the kernel (ntoskrnl) by reading the BCD, so maybe it's possible to make it load a linux kernel, or to replace winload.exe by something that will (you can revert that with `bcdedit /set {default} path \windows\system32\boot\winload.exe`)
Have you explored that?
I have found some hardware seems to have weird issues with drives of a certain size (I tried using a 256GB external SSD and have encountered a laptop that will not boot from it, and will only boot from USB storage if it's like 32GB or lower or something weird like that). But that appears to be a particular quirk of that laptop and nothing to do with Ventoy in particular.
1. I have servers in the basement with a KVM switch and Idrac. I always keep a usb stick with Easy2boot and Ventoy on it plugged into my servers, and often my desktops, so I can fix stuff offline, or even totally wipe the OS. Plop a live CD (Sergei Strelec) on there, and you can copy isos on there from the network. It's awesome.
I'd say it's one of my most essential pieces of kit that I take with me.
https://github.com/ventoy/Ventoy
That was hard.
FreeDOS with SBEmu is really nice for an instant DOS machine on real hardware:
there were some challenges, especiall with UEFI with some devices. but there are workarounds documented in the tool's website. it is like a one-time thing per device, but you do have to trust random keys off the internet.
it is well worth the hassle of extra keystrokes to get to the boot menu. i just wish there was a way to bypass grub menu for every iso where it applies.
But how ventoy achieve systems booting and detecting the iso programmatically? I know that initially, there seems to be grub2 reading usb file list and then it reads iso eltorito boot image and boots from it, but how exactly the OS itself know about the virtual drive? Is there an interface in uefi or bios that allow emulate optical drive, or some other standard is at play and operating systems just happens to support it? Window 10/11 pe / installer, for example, reports the iso in diskpart as virtual disk. Not an optical drive. Windows kernel actually mounts the iso somehow automatically.
Can someone point me on how this actually works, please.
Modern UEFI BIOSes can natively boot from USB sticks, they can save settings and screenshots to the USB stick (thus they are not mounted read-only).
I did a deep dive into grub2 years ago, and ended up creating my own sort-of-ventoy-like Swiss army knife, boot anything, grub config.
In some ways, you can treat grub2 as a mini os, with a scripting language.
So ... I'm sure that's how Ventoy does it (but I haven't really checked)
Tools/Utilities included on this Windows PE:
AoMei Partition Assistant: Partitioning solution
WinRAR: Powerful archiver and archive manager
7-Zip: Archiver and archive manager
Defraggler: Disk Defragmenter
MS Paint and Wordpad: Microsoft’s basic image and text editors
Macrium Reflect: Backup and disk imaging solution
CCleaner: System optimization, privacy and cleaning tool
Media Player Classic: Classic Windows media player
HWiNFO: Hardware information and diagnostic tool
Snipping Tool: Screen capture application.
Windows Defender: Microsoft’s excellent antivirus app
TeamViewer: Remote control solution
Double Drive: Driver backup application
Winmerge: File comparison tool
Opera: Web Browser, Fast, simple and safe way to get around on the web
GetRight: Download manager
Ntpwedit: Change or remove passwords for local system accounts
Partition Wizard
Virtual Keyboard
Virtual Magnifying Glass
DiskCryptor: Disk encryption application similar to Bitlocker
Bitlocker: Microsoft’s disk encryption application
Powershell: Powerful automation tool is both a shell and a scripting language
UltraISO: Directly edit ISO files, make images from CD/DVD-ROM
Unlocker: Unlocker helps delete locked files with error messages
Gimagex: A graphical user interface for the ImageX tool
SuperAntiSpyWare: Free Malware Remover
Magic Jelly Bean Key Finder: A utility that retrieves your Product Keys
HiJackThis: Spot home page hijackers and startup programs
Ghost: The classic imaging tool
Skype: Provides video chat and voice calls
VNC Viewer: Remote Control Software
Sysinternal Suite Troubleshooting Utilities
VLC Media Player: Open-source cross-platform multimedia player
IrfanView Image Viewer
FastStone Image Viewer: User-friendly image browser, converter and editor
Mozilla FireFox: Another great browser
Easy BCD: Boot management tool and bcd editor
Snipping Tool: Take snapshots
Drive Snapshot: Disk imaging solution
MyLan Viewer: Network/IP Scanner
Rufus: Utility to format and create bootable USB flash drives
Wise Data Recovery: Recovery program to get back deleted photos, documents, etc.
WinToolkit: Customize Your Windows Installation
ImgBurn: CD burning tool
Treesize: Quickly Scan Directory Sizes and Find Space Hogs
Klite Codec Pack Basic
RecoverKeys: Retrieves your Product Keys
Remote Desktop: Latest version of Windows remote desktop
DismGui: Dism with a graphical interface
Klite Codec Pack Basic
Google Chrome: Great Browser
Powershell: Automation scripting
[0] https://www.fcportables.com/gandalf-boot-iso/