Would it be possible to support a ramdisk based filesystem?
MEMDISK of Syslinux can boot ISOs and floppy images (and provides INT13h access to this memory mapped disks).
This INT13h access will be lost when the Visopsys kernel is booted and tries to read the additional files.
This would be useful for including Visopsys or Partition Logic in existing bootable rescue projects in the form of an ISO or bootable USB stick.
memdiskfind.c contains info about how to detect the mBFT structure in the first MB of RAM:
http://git.zytor.com/?p=syslinux/syslin ... e9d532636f
ifmemdsk.c32 is a com32 module for Syslinux that is also able to detect MEMDISK:
- can also use the INT13h installation check (doesn't work for ISOs)
- mBFT scanning ==> recommended (works for floppy, hard disk and ISO
emulation), but you need a "recent" MEMDISK version (3.86 or higher, I think)
- Displays parameters passed to the MEMDISK (MEMDISK is in linux kernel format) append line (so might be useful to pass info to Visopsys)
http://git.zytor.com/?p=syslinux/syslin ... e9d532636f
Mdiskchk.com can use the same detection method as ifmemdisk.c32 (but made for DOS):
http://git.zytor.com/?p=syslinux/syslin ... e9d532636f
Alternatively, support for cpio as filesystem (initrd) so all Visopsys files can be stored inside a cpio archive, would be nice, to be able to load them directly with an INT13h based bootloader.
A few days ago, plans for Syslinux variant that is able use a cpio archive as initrd, appeared:
http://www.syslinux.org/archives/2011-S ... 16903.html
Syslinux has also a elf.c32 module, but currently fails to load the Visopsys kernel:
Code: Select all
LABEL visopsys
COM32 elf.c32
APPEND visopsys
Code: Select all
Memory segment at 0xc0000000 (len 0x0006b548) is unavailable
Invalid ELF file or insufficient memory
boot:
Syslinux is able to read files from ext2/3/4, fat12/16/32, ISO9660 and very soon also NTFS (now in test fase).;; For the code segment, we simply place it at the entry point. The
;; entry point, in physical memory, should be KERNELCODEDATALOCATION.
;; Thus, all we do is move all code forward by CODE_OFFSET bytes.
;; This will have the side effect of deleting the ELF header and
;; program header from memory.
If the Visopsys kernel could be fixed so elf.c32 can load it properly (assuming that the problem is in the kernel), Syslinux could be used to support loading Visopsys from unsupported filesystems.