Hi,
one of my spare-time projects is to build a bootable Openstep/i386 CD. Currently, I'm trying to understand how the Openstep (4.2) install floppy works. By looking at the filesystem, the only executable is sarld (which, as far as I understand, is the standalone dynamic linker for kernel extensions).
The installer itself is not visible on the file system of the boot floppy, but one can see the strings that the installer displays when examining the strings on the boot floppy image. I suspect the installer is implemented as an extended second-stage boot loader (since the Openstep install floppy doesn't boot the Mach kernel until all drivers are configured and loaded) which implements a floppy disk driver - potentially via BIOS callbacks - as well as UFS and a Mach-O loader.
In order to create a bootable CD-ROM, I can see two possible approaches - either to convince the installer to read and install from an iso9660 CD-ROM instead of ufs (may be hard to achieve or nearly impossible) or to create a hybrid iso9660/ufs CD-ROM. I investigated the latter possibility a bit further.
"Standard" hybrid CD-ROMs contain an iso9660 and a HFS or HFS+ file system. This is possible since iso9660 doesn't use the first sectors on the CD and starts its own structures at block 16. HFS(+) can be advised to start its data at a certain block offset. So, one can put the iso part of the file system at block 16-to-n and start the HFS(+) portion after that block.
It seems that ufs provides similar capabilities. The ufs header file (/usr/include/sys/ufs.h) shows fields in the super block that specify offsets for cylinder blocks, inode blocks and data. So, using a modified newfs, it should be possible to create a hybrid iso9660/ufs CD-ROM that contains the Openstep Install and Driver floppies as El Torito boot images in the iso portion and the install CD ufs contents in the ufs portion.
One problem that might show up here is that the installer requires a floppy change. This can probably be circumvented by changing the "Prompt For Driver Disk" entry in the install floppy's /private/Drivers/i386/System.config/Instance0.table file to "No". But the drivers and Mach kernel won't fit onto a single 1.44 MB floppy, so the next question would be if the boot loader/installer code is able to handle 2.88 MB floppy images...
Altogether, this seems to be nontrivial, but I think it has some chance to succeed. Any comments/ideas?
Hi Cuby,
I've done a small amount of research into this recently so that I could build a bootable (on i386) NEXTSTEP CD. I think the "El Torito" approach will work but there are some issues to overcome. I made an El Torito bootable CD by combining an ISO image of the NEXTSTEP CD with a disk image of the 3.3 Intel boot floppy. I was able to boot the PC from the CD but it hung when asking for the driver floppy. I'm guessing that since the El Torito standard emulates a floppy drive, the PC can't see the real floppy drive and therefore can't find the driver disk. As you mentioned, it might be possible to get around this by tweaking a config file. Another possible way around this is the fact that the El Torito standard allows multiple boot floppy images on the same CD. It might be possible to add the driver disk image after the boot image.
I was able to mount the ISO image on a Linux box but it would only do so read only, so I wasn't able to add the driver files to the image. I'll keep playing with it and see if I can get around this. Your approach of building a hybrid CD is probably the most likely to succeed. When I made the El Torito CD I added the Joliet file system along side the RockRidge extensions and the CD was readable on a Windows box, which it normally isn't. So maybe there's some promise there. I'd also like to dissect the Y2K patch and add the updated files to the ISO image, eliminating the need for patching after the install.
I don't fully understand all of this and I probably know just enough to be dangerous. :) I'll try to find the time in the next few days to work on it again.
http://www.nextcomputers.org/forums/viewtopic.php?t=520&highlight=bootI made some boot CDs a few months ago..
The 2.44MB floppy option exists for El Torito. All it should require is modifying the driver list - eliminating all the obsolete drivers, and modifying the scripts that handle file location, disk switching, etc.
Currently, these CDs work as CD1 behaving like the Boot Floppy, and CD2 as the Driver Disk. Disk swapping acts the same as for a floppy drive.
The only real difference is that you need multiple CD drives or to be quick on your toes and be sure to put the User CD in before the IDE devices are recognized.
The ISO can be mounted and modified normally.
http://juddy.org/Openstep/bootcd.isohttp://juddy.org/Openstep/drivercd.isoInstructions for creating the CD are in the post.
I need a running system before I can get tackling the "Single Disc" problem..
Quote from: "itomato"http://www.nextcomputers.org/forums/viewtopic.php?t=520&highlight=boot
I made some boot CDs a few months ago..
Thanks for the pointer. I didn't see that thread when it was posted in November. :shock:
Hmmm...
Does something like a "bootable CD" exist for black 68k hardware? It's getting harder day by day to find usable floppy disks and sometimes I'm simply anoyed to do that RAW disk stuff under windows... Anyway I fear that my floppy disk drive has decided to see it's maker sooner or later...
Can it be done?
J
Quote from: "Jenne"Hmmm...
Does something like a "bootable CD" exist for black 68k hardware? It's getting harder day by day to find usable floppy disks and sometimes I'm simply anoyed to do that RAW disk stuff under windows... Anyway I fear that my floppy disk drive has decided to see it's maker sooner or later...
Can it be done?
The 68k CD is bootable - but you need a version of the firmware that actually supports booting from CD. In my experience, only v.74 ROMs in ColorTurbos support direct booting from CD. Not sure about the Mono Turbos...
One alternative could be to set up a netboot/network install server, but I never actually tried this. Anyone?
Before anyone starts to laugh: I'm no NeXT-geek!
Just an idea: when looking at old Apple OS CDs (up to 9.2.2) the is a small file included in the system folder: "Mac OS ROM". This one includes some Mac firmware to make that CD bootable on some Macs.
Now my idea:
As long as a NeXTstep CD might be bootable along with the according firmware could it be possible to place a "NeXT OS ROM" file onto a NeXTstep CD and make it bootable somehow?
J
The Macs that used that ROM file were OpenFirmware based, IIRC, and were able to reference that ROM file from the disc.
The NeXT's never made it that far. There may exist some hack to load ROM code from a floppy, but I've never heard about it.
You could update the ROM, by flashing a compatible EPROM with a v74 ROM dump. (I know I've seen one somewhere..) or using one from a parts machine.
My ColorStation could boot from CDROM, though it was picky about the CD Drive that was attached.
It was a 2.4 ROM - v65
Thanks, itomato.
Having a look on Your ROM I noticed my old NeXTcube has exactly the same ROM - at least the label on this chip tells me that.
But my cube refuses to boot off the CD without the boot floppy... Don't know why :(
J
Jenne -
What model CDROM are you using?
Quote
The NEXTSTEP/OpenStep FAQ
Apple CD-150
PLI 1035N for NeXT
SUN CD-ROM drive (Sony CDU-8012, Rev. 3.1a)
NEC 73M and 74 (transfer rates > of 300 KB/sec.)
NEC 84 S NEC 4xi NEC 6x speed
Apple CD-SC (Sony 541-22 mechanism)
Apple CD-300 Apple CD-300+ Chinon CDS-431 (with new drivers)
Eclipse CD-ROM from Microtech
Toshiba 3201
Toshiba 3301
Toshiba 3401
Toshiba 3501
Toshiba TXM3301E1
Toshiba XM-2200A
external Toshiba XM3601
Plextor Quadspeed
Plextor PX-63CS (6xspeed)
DENON DRD-253 external (data only, no music)
HP's LaserROM drive (Toshiba XM-3301TA drive in HP's box)
Texel 3024 (required a firmware upgrade to version was 1.11)
Check out these two entries from the old FAQ:
http://i.channelu.com/NeXT/NeXTFAQ-html/NeXTFAQ.060.htmlhttp://i.channelu.com/NeXT/NeXTFAQ-html/NeXTFAQ.080.htmlYou'll probably have to enter the ROM monitor and tell the Cube which SCSI device to boot from.
as in:
bsd(1,0,0)sdmach rootdev=sd1The 1 is position of a SCSI device on the SCSI chain. If the device is set to SCSI ID 4, it would still be sd(1) if no other devices are connected. 0 (zero) is typically the hard disk, IIRC.
Hmm.. Thinking back, I could be wrong about the ColorStation booting from CDROM.. It
just might be Turbo only..
It's worth a shot anyway![/quote]
I've been using all the listed Apple drives and the one Plextor Quadspeed but none of them worked. Seems to me that only the Turbo-machines are able to boot off a CD...
J
Quote from: "cuby"The 68k CD is bootable - but you need a version of the firmware that actually supports booting from CD. In my experience, only v.74 ROMs in ColorTurbos support direct booting from CD. Not sure about the Mono Turbos...
Quote from: "itomato"
Hmm.. Thinking back, I could be wrong about the ColorStation booting from CDROM.. It just might be Turbo only..
I can confirm that the non-Turbo color (Rev. 2.5 v66) won't boot off the CDROM directly (both v3.2 and v3.3. Haven't tried v3.0PR2 yet). Then again, a Turbo color (Rev. 3.3 v74) didn't either :( But that might have been a configuration problem. I'll try again later.
Anyways, according to "Installing And Configuring NEXTSTEP Release 3.3 For Intel Processors and NeXT Computers" page 7:
QuoteIf you're installing NEXTSTEP from a CD-ROM and you have an internal floppy disk drive, type bfd and press Return. (If you have a NeXTstation or NeXTcube Turbo computer, you may be able to start installing NEXTSTEP from the CD-ROM without a floppy disk by typing bsd(n,0,0)sdmach rootdev=sdna and pressing Return, replacing n with the drive number of your CD-ROM drive.)
Lastly, I can confirm this external SCSI CD-ROM drive works perfectly from cube to station:
Panasonic LK-RC504 (not sure what the make of the actual drive *inside* is)
EDIT:
And some conflicting information (note that they don't say "maybe" as in the above quote, and they also omit the partition
a, from the root device specification, as in
sdn vs
sdna) from this Apple document:
http://www.nextcomputers.org/forums/viewtopic.php?p=4695#4695QuoteFor Turbo systems
Turbo systems have the ability to boot directly off the CD-ROM drive without assistance from the floppy drive.
NeXT> bsd(n,0,0) sdmach -s rootdev=sdn
Where n is the unit number of the CD-ROM drive.
Is it possible to boot the openstep 4.2 cd on a ColorTurbo as well? The command referenced above works fine for a NS3.3 cd, but not an OS4.2 one. It tries to boot, but errors out with a "bad label", "bad checksum" and a few other errors. The cd has worked fine in the past on both next and intel hardware, and does not appear damaged. The floppy drive on this particular machine is not working, and I would like to install OS4.2 on it.
Thanks,
Chef
I have been working on a boot able cd image as well. I have successfully created a 2mg hard drive image that uses the floppy booter and sarld. Mine freaks out when I try to load the floppy drive with the drivers. I'll try to modify the system config file like is mentioned above. My hope is to then use the image to create an el torito boot disk.