This document has been created as an initial means of addressing the proliferation of "How do I handle XXX odd partitioning scheme on this giant disk I got?" There's a lot of seemingly conflicting information floating around, but it's not so bad. I don't intend this to be exhaustive, I just want somewhere to point people rather than typing it all in time after time. This is valid as of NeXTSTEP3.3 and OpenStep4.2 for Mach.

Important point number 1: NS/OS Cannot Handle Filesystems Larger Than 2 Gigabytes.

Important point number 2: NS/OS Cannot Make Use Of More Than One Fdisk-Style Partition. (AKA FreeBSD "slices").

Important point number 3: Do Not Get Involved With Disktab Entries Unless You Have Absolutely No Choice. You'll Be Sorry

So, what is one to do if one has a disk larger than 2 Gig? One uses UFS/FFS/BSD style partitioning. BSD has long been able to partition disks, it's just that BSD style partitioning has nothing at all to do with FDISK style partitioning. Some modern BSD's address this in various fashion. The only Unix who's solution I care much for is Linux, which embraces and conquers FDISK partitioning.

So, how to build a disk with fdisk partitions for multiple operating systems, and more than 2Gig available for NS/OS? Use fdisk to create a partition of type A2 (the NS/OS partition type) of the total size you want to allocate to NS/OS. If you use NeXT's fdisk, it will set the type for you. I haven't had good luck with NeXT's fdisk on large disks (it generally gives me info goofy enough that I don't trust it), so I use the Linux fdisk. Then, you should be able to install NS/OS, and the install program should find the right fdisk partition, and partition it for you if necessary. At least I think so - it might be BuildDisk which does this. Can't hurt to try, though.

When you next boot, you should have disk devices like /dev/sd0a and /dev/sd0b (c, d, ...), which can be mounted using mount. Or put them in /etc/fstab and let the system mount them at boot time.

What If The Install Program Leaves Me With Four 1Gig Partitions? Well, if you aren't willing to suffer a bit, you're probably out of luck (at least until some future version of OpenStep has a more capable install program). If you have a spare drive around, you can fix things up somewhat. Install NS/OS to the spare drive, and boot from it. Then initialize the NS/OS partition on the target drive using something like "disk -i -p 1200000 /dev/rsd1a". This will create /dev/sd1a at 1.2Gig, with the remainder going to /dev/sd1b. Adjust the first partition's size as needed, and don't ask me what happens if the remainder is still more than 2Gig (I obviously don't have disks as big as yours). Then mount and use ditto or gnutar or other appropriate technology to duplicate the entire bootable system onto /dev/sd1a. This is part of the suffering, because if you don't do it right, you'll end up with subtle and annoying problems down the road. I generally use gnutar (which is shipped with NS/OS), something like "gnutar cf - / | (cd /Mountpoint ; tar xvpf -)", run as root. If you mount the NS/OS CD-ROM, you can try something like "ditto -V -arch i386 -bom /usr/lib/NextStep/ -outBom /Mountpoint/ / /Mountpoint". Again, do it as root so permissions are right. /Mountpoint is where you mounted your new /dev/sd1a, of course.

Don't forget to install a boot block on the disk, using "disk -b /dev/sd1a". The boot block will already be there if you've already tried to install NS/OS on the disk.

You can manage this without a bootable disk, by booting from the CD-ROM, but IMHO this is a good way to nuke stuff, so I'm not going to talk about it. Read /NextLibrary/Documentation/NextDev/ReleaseNotes/3_3Development.rtf on the developer CD-ROM if you really want to know.

How Scott Gets Off Writing This. My current main system has a 2Gig SCSI drive and a 3.1Gig EIDE drive. Both drives have a NS/OS slice BSD partitioned into two partitions. In each case the "b" partition is about 8Meg, and the "a" partition is the balance. In the 1.5Gig "a" partition of the bootable SCSI drive, I've got NeXTSTEP3.3. In the 1.0Gig "a" partition of the EIDE drive, I've got OpenStep4.2 for Mach. In the 8Meg "b" partitions, I've placed the set of files needed to boot the version of NS/OS installed on the other drive (OS on the SCSI, NS on the EIDE).

Weird, huh? There's a reason, though. By default, the SCSI drive boots NeXTSTEP3.3, and if I type "config=OS" at the boot prompt, I get OpenStep4.2. If the system boots from the EIDE drive, though, it gets OpenStep4.2 by default - and I type "config=NS" to get NeXTSTEP3.3. This way I can move the drives between systems and boot either, even if I've not yet managed the magic to make the SCSI boot first on that system.

I've also got a Syquest EZFlyer emergency boot disk which can boot Linux, NeXTSTEP3.3, or OpenStep4.2. Another application of UFS partitions within FDISK partitions.

Scott Hess