Page 1 of 1

Is it possible to PXE boot Partition Logic /Visopsys?

Posted: Tue Jul 10, 2018 1:26 am
by PorkChops
Is there a way to PXE boot Partition Logic / Visopsys? The tiny floppy or ISO images can be loaded easily enough via PXELINUX/memdisk, but then Visopsys needs to "find" the boot device in order to access whatever other files it requires and so it is unable to complete its initialization -- for example:
PXE-Visopsys-floppy.png
PXE-Visopsys-floppy.png (9.09 KiB) Viewed 28958 times
Is it possible to load all of Partition Logic / Visopsys into memory so that it could be booted via PXE?

Re: Is it possible to PXE boot Partition Logic /Visopsys?

Posted: Tue Jul 10, 2018 9:45 pm
by andymc
Hi PorkChops, welcome.

I'm afraid I haven't tried this at all, I think it would need some minor(ish) code tweaks, but I haven't looked at that protocol for a long while. I don't quite remember how it all works. The floppy or ISO images do contain everything needed to boot the system, but yes when the kernel starts up, it needs to be able to figure out where they are. The obvious thing that you suggest is to tweak the kernel so that it will accept a RAM disk as the boot device. It does have a RAM disk driver, so most of what would be needed should already be coded.

The way the ISO image works is that it has a minimal floppy image, with the kernel, which then loads the ISO filesystem from the media. Maybe the more correct way is for the kernel to contact the DHCP/BOOTP server for the full image, or something like that. That would need a bit more coding, and also support for a lot more network adapters :-)

Re: Is it possible to PXE boot Partition Logic /Visopsys?

Posted: Mon Jul 23, 2018 7:06 am
by nextvolume
Yes, it is indeed possible and I have done it in the past, back when 0.74 was current I was tinkering with the kernel a bit, I got the idea to boot Visopsys on a set-top box that netbooted via DHCP. I even implemented a 16-color VGA driver.
It worked, but as it had no network support, it was mostly a demonstration.
You need to embed a filesystem image in the Visopsys kernel, fix the ramdisk driver up a bit and then pass a pointer to the filesystem image data to the ramdisk driver. I used floppy disk emulation with gPXE.
I remember having problems with loading somewhat big kernels, that was a bit limiting. That requires some work (loading kernel at a different address and changing the setup...).
This really needs to be automated ;)
It is a bit old but if someone wants I can try to see if I still have this and upload it here.

Re: Is it possible to PXE boot Partition Logic /Visopsys?

Posted: Tue Jul 24, 2018 1:53 am
by PorkChops
The goal for me is to PXE boot Partition Logic, so network support is not a requirement. I'd be very interested if you are willing to look for it and upload it...

andymc

Posted: Wed Jul 25, 2018 2:35 pm
by andymc
Yes nextvolume, if you still have that and/or diffs of the changes you had to make, that would be great to start playing with.

I haven't done a partition logic release in a while but I should do (the disk manager has a number of improvements) and this would be another reason to update it

Re: Is it possible to PXE boot Partition Logic /Visopsys?

Posted: Fri Jan 24, 2020 12:43 am
by andymc
If anyone here is still interested, the newly-released version 0.85 may do what's required here. I implemented it for Coreboot/SeaBIOS support: if you create a file /ramdisk in the root of the floppy disk image, the loader will load the boot medium into memory and pass the address to the kernel, which will create a RAM disk for it and proceed to boot from that. That was all it needed, no?