Gerd Hoffmann wrote:
> On Sun, Feb 28, 2021 at 02:22:53PM -0000, Yiguang Chen wrote:
> > Most time, When a vm with seabios start. The bios will
> > display such info:
> > -----
> > Seabios (version rel-1.13-0 ......)
> > Machine UUID ...
> >
> > IPXE ..
> >
> > IPXE..
> >
> > Booting from DVD/CD...
> > Press any key to boot from CD or DVD.
> > ---
> >
> > It means that have a bootable cdrom to boot. But If we want to boot
> > from cdrom, we must press any key as what the warning had said. If it
> > is possible to boot from DVD/CD automatically, instead of pressing a
> > key by hand?
> This is a windows install iso, right?
You are right. The cdrom is a windows install iso.
> This isn't seabios, the windows boot loader does that. I think windows
> does this only in case it finds a bootable hard disk. So when booting
> the guest with a fresh & blank virtual hard disk it should boot the
> windows installer without asking for a key press.
It seems that the windows install iso cause this behavior and the seabios source code prove this.
--- roms/seabios/src/boot.c
static void
boot_cdrom(struct drive_s *drive)
{
if (! CONFIG_CDROM_BOOT)
return;
printf("Booting from DVD/CD...\n");
int status = cdrom_boot(drive);
if (status) {
printf("Boot failed: Could not read from CDROM (code %04x)\n", status);
return;
}
u8 bootdrv = CDEmu.emulated_drive;
u16 bootseg = CDEmu.load_segment;
tpm_add_cdrom(bootdrv, MAKE_FLATPTR(bootseg, 0), 512);
/* Canonicalize bootseg:bootip */
u16 bootip = (bootseg & 0x0fff) << 4;
bootseg &= 0xf000;
call_boot_entry(SEGOFF(bootseg, bootip), bootdrv);
}
---
Best regards,
YiguangChen