Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Boot from Ventoy USB-Drive to boot a LOCAL DRIVE
#1
Hello Ventoy Community,

i'm a newbie to ventoy and maybe someone can help me after hours of research.

My Hardware

- ACEMAGIC AD03
- BIOS / UEFI / SECURE BOOT
- SSD / GPT
- VENTOY 1.0.97

First Configuration

- 1 SSD as a VENTOY drive / GPT / SECURE BOOT
- 1 VBOX-VDI Image with OpnSense 24 "OPNSENSE.PRIMARY.VDI.VTOY" (32GB)
- 1 VBOX-VDI Image with OpnSense 24 "OPNSENSE.BACKUP.VDI.VTOY" (32GB)
- 1 ISO OpnSense LiveCD
- 1 ISO SystemRescue
- Other Tools
- No USB Drive

When i now want to start the IMAGE, the boot process under OPNSENSE aborts with a MOUNT ERROR ...
Switching from UFS to ZFS and / or MBR / SECURE BOOT disable didn't help.

As far as i can find out, VENTOY doesn't work with FREEBSD as IMAGE.


Second Configuration

- 1 SSD as the primary drive for OPNSENSE
- 1 USB Drive as VENTOY DRIVE
- 1 ISO OpnSense LiveCD on the USB Drive
- 1 ISO SystemRescue on the USB Drive
- Other Tools on the USB Drive

My problem here is that i can't start OPNSENSE on the local drive with VENTOY from USB Drive automatically after 30 seconds.

If i manually go to F4 and select BOOTX64.EFI everything works fine.

I tried F4>BOOT THE 1ST LOCAL DISK ... Here Ventoy tries to start WINDOWS and aborts with an error message.

I tried VTOY_EXIT ... Here Ventoy simply restarts the computer and opens the pc bios.

###

Now i would like to create a grub entry via F6> that simply boots the hard drive after 30 Seconds with "VTOY_DEFAULT_IMAGE": "F6>"

Unfortunately i have no idea about grub / bootloader ... or maybe i'm just doing something wrong.


Many thanks for the help  Heart
Reply
#2
Ok, i experimented a bit ...

1. I searched for BOOTX64.EFI. The VENTOY EFI drive must be visible for this and i found it in the LOCALBOOT.CFG.

2. Then I copied out

set VTOY_SEARCH_NO_VTOYEFI=1
            if search -n -s -f /efi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /efi/boot/bootx64.efi
                boot
            elif search -n -s -f /vtefi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /vtefi/boot/bootx64.efi
                boot
            else
                unset VTOY_SEARCH_NO_VTOYEFI
                echo "BOOTX64.EFI NOT found ..."
            fi       
        }

and copied it into the VENTOY_GRUB.CFG.

menuentry "BOOT FIREWALL" --class=boot_uefi --class=custom {
            set VTOY_SEARCH_NO_VTOYEFI=1
            if search -n -s -f /efi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /efi/boot/bootx64.efi
                boot
            elif search -n -s -f /vtefi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /vtefi/boot/bootx64.efi
                boot
            else
                unset VTOY_SEARCH_NO_VTOYEFI
                echo "BOOTX64.EFI NOT found ..."
            fi       
        }

menuentry '<-- EXIT [Esc]' --class=vtoyret VTOY_RET {
    echo 'Return ...'
}


3. I changed / add in the VENTOY.JSON the default image and time.

"control":[
        { "VTOY_MENU_TIMEOUT": "30" },
        { "VTOY_DEFAULT_IMAGE": "F6>" }
    ]


Now the USB drive boots after 30 seconds the OPNSENSE installation from the hard drive ...

I have no idea if this is correct, but it works.


Heart
Reply
#3
(04-05-2024, 03:50 PM)RGB Wrote: Ok, i experimented a bit ...

1. I searched for BOOTX64.EFI. The VENTOY EFI drive must be visible for this and i found it in the LOCALBOOT.CFG.

2. Then I copied out

set VTOY_SEARCH_NO_VTOYEFI=1
            if search -n -s -f /efi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /efi/boot/bootx64.efi
                boot
            elif search -n -s -f /vtefi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /vtefi/boot/bootx64.efi
                boot
            else
                unset VTOY_SEARCH_NO_VTOYEFI
                echo "BOOTX64.EFI NOT found ..."
            fi       
        }

and copied it into the VENTOY_GRUB.CFG.

menuentry "BOOT FIREWALL" --class=boot_uefi --class=custom {
            set VTOY_SEARCH_NO_VTOYEFI=1
            if search -n -s -f /efi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /efi/boot/bootx64.efi
                boot
            elif search -n -s -f /vtefi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /vtefi/boot/bootx64.efi
                boot
            else
                unset VTOY_SEARCH_NO_VTOYEFI
                echo "BOOTX64.EFI NOT found ..."
            fi       
        }

menuentry '<-- EXIT [Esc]' --class=vtoyret VTOY_RET {
    echo 'Return ...'
}


3. I changed / add in the VENTOY.JSON the default image and time.

"control":[
        { "VTOY_MENU_TIMEOUT": "30" },
        { "VTOY_DEFAULT_IMAGE": "F6>" }
    ]


Now the USB drive boots after 30 seconds the OPNSENSE installation from the hard drive ...

I have no idea if this is correct, but it works.


Heart
Edit localboot.cfg, try changing the code there
menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0,1)
        chainloader +1
        boot. boot
    }
become
menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot. boot
    }
Reply
#4
Quote:menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot. boot
    }



Thanks. i've tried that. However, i get the following error ...

error: invalid EFI file path.
error: can't find command "boot."

Heart
Reply
#5
(04-05-2024, 08:16 PM)RGB Wrote:
Quote:menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot. boot
    }



Thanks. i've tried that. However, i get the following error ...

error: invalid EFI file path.
error: can't find command "boot."

Heart
sorry, extra word boot, it should be
menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot
    }
Reply
#6
Quote:sorry, extra word boot, it should be
menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot
    }


OK, I tried that.

First via F4 (LOCALBOOT.CFG) ...

Booting "Windows ..."

error: no such device: /EFI/Microsoft/Boot/bootmgfw.efi.
error: no such device: /EFI/Microsoft/Boot/bootmgfw.efi.
Windows NOT found ...

Press any key to continue...

Failed to boot default and fallback entries.
Press any key to continue...


Then via F6 (VENTOY_GRUB.CFG) ...

error: invalid EFI file path.
error: you need to load the kernel first.

Press any key to continue...


Under F2:BROWSER i see:

DISK (hd0,msdos) [VENTOY] ntfs 3.72GB >> USB Drive but 16GB?

DISK (hd1,msdos) [] fat 260.00MB >>> No idea!?

DISK (hd1,msdos4) (zroot) zfs 103.54GB >> SSD Local Drive


Do you have another idea? Otherwise i stick with F6 and BOOTX64.EFI from second post ... it works even if it's wrong.

Heart

EDIT

I took a look at the partitions ...

BIOS Boot

1. USB
2. HDD

USB Drive (VENTOY)

1. 14.29 GB VENTOY (NTFS)
2. 32.00 MB VTOYEFI (FAT16)

SSD Local Drive (OPNSENSE)

1. 260.0 MB EFI (FAT16)
2. 512.0 KB (LINUX)
3. 8.00 GB (LINUX)
4. 103.5 GB (LINUX)
Reply
#7
(04-06-2024, 11:27 AM)RGB Wrote:
Quote:sorry, extra word boot, it should be
menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot
    }


OK, I tried that.

First via F4 (LOCALBOOT.CFG) ...

Booting "Windows ..."

error: no such device: /EFI/Microsoft/Boot/bootmgfw.efi.
error: no such device: /EFI/Microsoft/Boot/bootmgfw.efi.
Windows NOT found ...

Press any key to continue...

Failed to boot default and fallback entries.
Press any key to continue...


Then via F6 (VENTOY_GRUB.CFG) ...

error: invalid EFI file path.
error: you need to load the kernel first.

Press any key to continue...


Under F2:BROWSER i see:

DISK (hd0,msdos) [VENTOY] ntfs 3.72GB >> USB Drive but 16GB?

DISK (hd1,msdos) [] fat 260.00MB >>> No idea!?

DISK (hd1,msdos4) (zroot) zfs 103.54GB >> SSD Local Drive


Do you have another idea? Otherwise i stick with F6 and BOOTX64.EFI from second post ... it works even if it's wrong.

Heart

EDIT

I took a look at the partitions ...

BIOS Boot

1. USB
2. HDD

USB Drive (VENTOY)

1. 14.29 GB VENTOY (NTFS)
2. 32.00 MB VTOYEFI (FAT16)

SSD Local Drive (OPNSENSE)

1. 260.0 MB EFI (FAT16)
2. 512.0 KB (LINUX)
3. 8.00 GB (LINUX)
4. 103.5 GB (LINUX)
A small addition, ventoy_grub.cfg content looks like this
if [ "$grub_platform" = "pc" ]; then
menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot
    }
else
menuentry "BOOT FIREWALL" --class=boot_uefi --class=custom {
            set VTOY_SEARCH_NO_VTOYEFI=1
            if search -n -s -f /efi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /efi/boot/bootx64.efi
                boot
            elif search -n -s -f /vtefi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /vtefi/boot/bootx64.efi
                boot
            else
                unset VTOY_SEARCH_NO_VTOYEFI
                echo "BOOTX64.EFI NOT found ..."
            fi     
        }
fi
menuentry '<-- EXIT [Esc]' --class=vtoyret VTOY_RET {
    echo 'Return ...'
}
Reply
#8
Quote:A small addition, ventoy_grub.cfg content looks like this
if [ "$grub_platform" = "pc" ]; then
menuentry "$VTLANG_LB_SBOOT_HDD1" --class=boot_disk --class=F4boot {
        set root=(hd0)
        chainloader +1
        boot
    }
else
menuentry "BOOT FIREWALL" --class=boot_uefi --class=custom {
            set VTOY_SEARCH_NO_VTOYEFI=1
            if search -n -s -f /efi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /efi/boot/bootx64.efi
                boot
            elif search -n -s -f /vtefi/boot/bootx64.efi; then
                unset VTOY_SEARCH_NO_VTOYEFI
                terminal_output  console
                chainloader /vtefi/boot/bootx64.efi
                boot
            else
                unset VTOY_SEARCH_NO_VTOYEFI
                echo "BOOTX64.EFI NOT found ..."
            fi     
        }
fi
menuentry '<-- EXIT [Esc]' --class=vtoyret VTOY_RET {
    echo 'Return ...'
}


Ok, that works...

I spent the weekend testing some firewall images (VDI) because i still need a backup system of the running firewall on the local drive ...

I testet it with UEFI / LEGACY / CSM / GPT / MBR.

- OpnSense : (BSD) Not Working
- Endian : (RED HAT) Not Working
- pfSense : (BSD) Not Working
- Smoothwall : (LINUX) Not Working
- ipFire : (LINUX) Not Working
- Zentyal : (UBUNTU) Version 8 / UEFI / Works

Zentyal is not based on bsd or red hat. It is developed under ubuntu and works with vtoyboot.

Now i can buy a new usb stick because the old one is broken from copying.   Big Grin


Heart
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)