Bootable USB device disappears during reboot

Here’s an interesting situation. I recently moved a Windows install onto an external SSD as a Windows To Go installation using WinToUSB. For what its worth though, this problem happens with more than just this hard drive I did this with, it seems to also happen with my flash drive that has Ventoy on it as well.

If I’m booted into an OS on either the Win To Go SSD (connected via USB) or the Ventoy flash drive, and I reboot the machine via the OS I’m in, when it restarts, the USB device is unavailable and it will end up falling back to the next boot option. Completely shutting down the machine though and restarting it, the device will be back again just fine.

This happens on multiple computers, specifically on my Lenovo ThinkPad and on a Dell 9020 desktop.

Is this intended behavior I’m just not familiar with, or what might be going on here? It makes it a pain because I can’t just reboot the Win To Go installation, I have to shut down, then start and I often use that installation remotely via VNC so I can’t really start the machine again once it has been shut down fully, reboot is more convenient but doesn’t work.

Any help would be great, thanks!

Does it work if you unplug and reinsert the USB? I’m not sure at which point it might work.

OS’s now switch off mounted USB drives on dismount. At least, Ubuntu does and reportedly this is to do the same as Windows. Too many external drives didn’t park their heads properly if they weren’t switched off, or something like that. Maybe this switching off is the cause of your problem.

Is the boot device connected to Thunderbolt port, by chance? It could be getting disabled by Thunderbolt security. Try moving it to a non-thunderbolt USB port, if available.

I’ll have to try unplugging and reinserting the USB. Even if that works though it won’t help me a ton, because again, I access the machine remotely often and having to unplug and replug the USB at some point in the reboot process would be just as impossible as a full shutdown and restart would be unfortunately. Thanks for the idea though!

I think you may be onto something about OS’s switching off the USB drive on dismount maybe.

As far as I know, it’s not a Thunderbolt port but I also know very little about Thunderbolt.

I suppose I could look into turning on WakeOnLan so I can fully shut down and then remotely kickstart the machine again since that seems to work.

On Linux gparted.org application is your friend. Document all your partition table information.
1.) GPT or MBR ? You should make stuff work with GPT scheme partition table. Moden implementation. Leave old MBR behind. www.rodsbooks dot com/refind setup refind boot manager to GUI select which partition to boot from.
2.) efibootmgr what are those settings currently efibootmgr -o or efibootmgr -c In what order are partitions set to boot up.
3.) envars.txt file what settings are in this file. How do they affect the boot order?
4.) MS Windows and NTFS type 0700 or ExFAT maybe king in your tech world. But there are other Partition Types and filesystem formats out there. When MS Windows finds another Valid Partition Type number it ignores that value and does not allow BIOS to boot that legitimate Partition Type number. FreeBSD A500 A501 UFS, A502 Swap, A503 ZFS. Maybe windows can NOT BOOT a Linux OpenZFS partition type number? Linux Swap 8200, Linux ext2 8300, Linux OpenZFS 83
ghostbsd-arm64 . blogspot . com/2023/12/partition-type-numbers-for-freebsd-and.html
5.) Use gdisk /dev/sdc or gdisk /dev/sda or gdisk /dev/sdb print
Collect useful information about each partition. Create your own training diagram for the partition type numbers you find in your system disk.

6.) gdisk /dev/sdb
list partition type numbers
0700 Microsoft basic data 0c01 Microsoft reserved
2700 Windows RE 3000 ONIE boot
3001 ONIE config 3900 Plan 9
4100 PowerPC PReP boot 4200 Windows LDM data
4201 Windows LDM metadata 4202 Windows Storage Spaces
7501 IBM GPFS 7f00 ChromeOS kernel
7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8300 Linux filesystem
8301 Linux reserved 8302 Linux /home
8303 Linux x86 root (/) 8304 Linux x86-64 root (/)
8305 Linux ARM64 root (/) 8306 Linux /srv
8307 Linux ARM32 root (/) 8308 Linux dm-crypt
8309 Linux LUKS 830a Linux IA-64 root (/)
830b Linux x86 root verity 830c Linux x86-64 root verity
830d Linux ARM32 root verity 830e Linux ARM64 root verity
830f Linux IA-64 root verity 8310 Linux /var
8311 Linux /var/tmp 8312 Linux user’s home
8313 Linux x86 /usr 8314 Linux x86-64 /usr
8315 Linux ARM32 /usr 8316 Linux ARM64 /usr
8317 Linux IA-64 /usr 8318 Linux x86 /usr verity
8319 Linux x86-64 /usr verity 831a Linux ARM32 /usr verity
831b Linux ARM64 /usr verity 831c Linux IA-64 /usr verity
8400 Intel Rapid Start 8500 Container Linux /usr
8501 Container Linux resizable rootfs 8502 Container Linux /OEM customization
8503 Container Linux root on RAID 8e00 Linux LVM
a000 Android bootloader a001 Android bootloader 2
a002 Android boot 1 a003 Android recovery 1
a004 Android misc a005 Android metadata
a006 Android system 1 a007 Android cache
a008 Android data a009 Android persistent
a00a Android factory a00b Android fastboot/tertiary
a00c Android OEM a00d Android vendor
a00e Android config a00f Android factory (alt)
a010 Android meta a011 Android EXT
a012 Android SBL1 a013 Android SBL2
a014 Android SBL3 a015 Android APPSBL
a016 Android QSEE/tz a017 Android QHEE/hyp
a018 Android RPM a019 Android WDOG debug/sdi
a01a Android DDR a01b Android CDT
a01c Android RAM dump a01d Android SEC
a01e Android PMIC a01f Android misc 1
a020 Android misc 2 a021 Android device info strong text
a022 Android APDP a023 Android MSADP
a024 Android DPO a025 Android recovery 2
a026 Android persist a027 Android modem ST1
a028 Android modem ST2 a029 Android FSC
a02a Android FSG 1 a02b Android FSG 2
a02c Android SSD a02d Android keystore
a02e Android encrypt a02f Android EKSST
a030 Android RCT a031 Android spare1
a032 Android spare2 a033 Android spare3
a034 Android spare4 a035 Android raw resources
a036 Android boot 2 a037 Android FOTA
a038 Android system 2 a039 Android cache
a03a Android user data a03b LG (Android) advanced flasher
a03c Android PG1FS a03d Android PG2FS
a03e Android board info a03f Android MFG
a040 Android limits a200 Atari TOS basic data
a500 FreeBSD disklabel a501 FreeBSD boot
a502 FreeBSD swap a503 FreeBSD UFS
a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a580 Midnight BSD data a581 Midnight BSD boot
a582 Midnight BSD swap a583 Midnight BSD UFS
a584 Midnight BSD ZFS a585 Midnight BSD Vinum
a600 OpenBSD disklabel a800 Apple UFS
a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated
a905 NetBSD encrypted a906 NetBSD RAID
ab00 Recovery HD af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline
af03 Apple label af04 AppleTV recovery
af05 Apple Core Storage af06 Apple SoftRAID Status
af07 Apple SoftRAID Scratch af08 Apple SoftRAID Volume
af09 Apple SoftRAID Cache af0a Apple APFS
b300 QNX6 Power-Safe bc00 Acronis Secure Zone
be00 Solaris boot bf00 Solaris root
bf01 Solaris /usr & Mac ZFS bf02 Solaris swap
bf03 Solaris backup bf04 Solaris /var
bf05 Solaris /home bf06 Solaris alternate sector
bf07 Solaris Reserved 1 bf08 Solaris Reserved 2
bf09 Solaris Reserved 3 bf0a Solaris Reserved 4
bf0b Solaris Reserved 5 c001 HP-UX data
c002 HP-UX service e100 ONIE boot
e101 ONIE config e900 Veracrypt data
ea00 XBOOTLDR partition eb00 Haiku BFS
ed00 Sony system partition ed01 Lenovo system partition
ef00 EFI system partition ef01 MBR partition scheme
ef02 BIOS boot partition f800 Ceph OSD
f801 Ceph dm-crypt OSD f802 Ceph journal
f803 Ceph dm-crypt journal f804 Ceph disk in creation
f805 Ceph dm-crypt disk in creation f806 Ceph block
f807 Ceph block DB f808 Ceph block write-ahead log
f809 Ceph lockbox for dm-crypt keys f80a Ceph multipath OSD
f80b Ceph multipath journal f80c Ceph multipath block 1
f80d Ceph multipath block 2 f80e Ceph multipath block DB
f80f Ceph multipath block write-ahead l f810 Ceph dm-crypt block
f811 Ceph dm-crypt block DB f812 Ceph dm-crypt block write-ahead lo
f813 Ceph dm-crypt LUKS journal f814 Ceph dm-crypt LUKS block
f815 Ceph dm-crypt LUKS block DB f816 Ceph dm-crypt LUKS block write-ahe
f817 Ceph dm-crypt LUKS OSD fb00 VMWare VMFS
fb01 VMWare reserved fc00 VMWare kcore crash protection
fd00 Linux RAID

last of the 16 bit partition type numbers

Best of Luck, figuring out your booting situation. Nomadbsd.org has a FreeBSD that runs from a single USB Flash drive. puppylinux.com has gparted included as an application to examine partition table contents.

The default boot directory is /EFI/BOOT/BOOTX64.EFI BOOTX64.EFI is the default boot file

Here are some examples of other directories.
/EFI/ghostbsd default directory for ghostbsd operating system
/EFI/freebsd default directory for freebsd operating system
/EFI/refind default directory for the Refind boot manager. Refind will locate and list with an ICON all the bootable EFI files in all the available partitions on all the disks. Read more at www rodsbooks com/refind
/EFI/windows I am guessing is default windows directory that has a BOOTX64.EFI file
/EFI/Dell I saw this directory on a Dell laptop computer

The UEFI looks for the first FAT32 partition it can find, then looks for directory /EFI/BOOT and looks for a BOOTX64*.EFI file that it can load and execute

Probably more details to study and learn, but this is the basics