Formatting SCSI Disks

How to format a SCSI disk on the XL1201.

First, boot into Lisp.

Command: Format SCSI Disk (SCSI address) 1 (keywords) :Sector Size (sector size in bytes [default 1280]) 1280  
SCSI device 1 is a SEAGATE ST39173N, conforming to protocol SCSI-2,  
    with a logical block size of 1280 bytes/block,
    with a physical sector size of 1280 bytes/sector,
    with a non-changeable interleave value of 1.
Format it at 1280 bytes per sector? (Y or N) Yes.  

Then, it will go through a very long format. The status line at the bottom will say CL USER: SCSI.

After a while, the command processor will say:

Format succeeded.  
New geometry is 7771607 blocks of 1280 bytes/block.  
Command:  

Now, remember that for some reason FEP8 is SCSI ID 1, so we do this:

Command: Create Initial Fep Filesystem (FEP unit number) 8  

During this the status line will say CL USER: Disk wait and an underline under Disk will blink.

If you put something wrong in, the system will remind you: (note that {rubout} looks different on the console)

Command: Create Initial Fep Filesystem (FEP unit number) 17  
The input read, 17, was not 7 or 8.  
Press {rubout} to correct your input.  

Now, if you Halt Machine and return to the FEP, you can see the files on your new filesystem:

FEP Command: Show Directory (Directory [Default ...]) FEP8:>*.*.newest  
FEP8:>ROOT-DIRECTORY.DIR.1              1    DIRECTORY    @ 2016-06-16 17:46:55 (PST) [His highness] Benson  
FEP8:>DISK-LABEL.FEP.1                 64     81920(8)    @ 2016-06-16 17:46:55 (PST) [Disk label] Benson  
FEP8:>BAD-BLOCKS.FEP.1                  0         0(8)    @ 2016-06-16 17:46:55 (PST) [Disk defects] Benson  
FEP8:>FREE-PAGES.FEP.1                759    971520(8)    @ 2016-06-16 17:46:55 (PST) [FEPFS free map] Benson  
FEP8:>SEQUENCE-NUMBER.FEP.1             1      1280(8)    @ 2016-06-16 17:46:55 (PST) [FEPFS sequence number] Benson  
FEP8:>DIAGNOSTIC.FEP.1                 64     81920(8)    @ 2016-06-16 17:46:55 (PST) [Diagnostic area] Benson

Returning to Lisp, we can do the same thing:

Command: Show Directory (files [default FEP8:>*.*.newest])

FEP8:>*.*.newest  
  7770705 free, 895/7771600 used (0%)

      BAD-BLOCKS.FEP.1    0      0(8)   @  06/16/16 18:46:55 [Disk defects] Benson
      DIAGNOSTIC.FEP.1   64  81920(8)   @  06/16/16 18:46:55 [Diagnostic area] Benson
      DISK-LABEL.FEP.1   64  81920(8)   @  06/16/16 18:46:55 [Disk label] Benson
      FREE-PAGES.FEP.1  759 971520(8)   @  06/16/16 18:46:55 [FEPFS free map] Benson
      SEQUENCE-NUMBER.FEP.1    1   1280(8)   @  06/16/16 18:46:55 [FEPFS sequence number] Benson

888 blocks in 5 files  

If we now want to make our new disk bootable, we can potentially do it as such:

Command: Copy Flod Files (keywords) :Disk Unit (number [default 7]) 8 :From Directory  
  (pathname [default SYS:IFEP;]) FEP7:> :Create hello File
Copying all standard I333-*.flod.newest to FEP8:>  
  Copying FEP7:>i333-kernel.fep.4 to FEP8:>I333-kernel.fep.4 ... Copied.
  Copying FEP7:>i333-info.flod.4 to FEP8:>I333-info.flod.4 ... Copied.
  Copying FEP7:>i333-lisp.flod.4 to FEP8:>I333-lisp.flod.4 ... Copied.
  Copying FEP7:>i333-loaders.flod.4 to FEP8:>I333-loaders.flod.4 ... Copied.
  Copying FEP7:>i333-debug.flod.4 to FEP8:>I333-debug.flod.4 ... Copied.
  Copying FEP7:>i333-disk.flod.4 to FEP8:>I333-disk.flod.4 ... Copied.
  Copying FEP7:>i333-tests.flod.4 to FEP8:>I333-tests.flod.4 ... Copied.
  Copying FEP7:>i333-FrameThrower.sync.11 to FEP8:>I333-FrameThrower.sync.11 ... Copied.
  Installing color startup file FEP8:>I333-FrameThrower.sync.11.
  Installing kernel FEP8:>I333-kernel.fep.4.

  You must COLD-BOOT the FEP to use the new Kernel and FLODs.


Create file FEP8:>Hello.boot? (Y or N) Yes.  
Writing FEP8:>I333.Boot  
Writing FEP8:>Local.Boot  
Writing FEP8:>Hello.Boot

Command:  

(Note that the "You must..." line is in bold!)

This seems to have copied all the .flod files. This doesn't copy all the .Boot files, though. In my case, there are still Autoboot.boot, boot.boot, and graphics.boot files on the FEP7:> device not copied to FEP8:>.

There are files with these extensions:

  • ilod
  • boot
  • FEP
  • cfg - color.cfg
  • fspt - fspt.fspt
  • sync - i333-FrameThrower.sync
  • file - lmfs.file
  • page - page.page

Now, to copy the ilod files:

Command: Copy File (pathnames of files [default FEP7:>*.ilod.newest]) FEP7:>*.ilod.newest  
  (to [default: FEP7:>*.ilod.*]) FEP8:>
Copying FEP7:>animation-xl-6-2.ilod.1 to FEP8:>animation-xl-6-2.ilod.1 (byte-size 8.)  
Copied FEP7:>animation-xl-6-2.ilod.1 to FEP8:>animation-xl-6-2.ilod.1 (byte-size 8.)  
{...}

This takes a long time. In the meantime, the status line will show a progress bar in the bottom right in a small font with an underscore indicating progress!

← FEP7:>animation-xl-6-2.ilod.1  89% 93123123

This command will show the files most succinctly:

Command: Show FEP Directory (keywords) :Highlight Files In Use (Yes or No [default Yes]) Yes  
Host TOWER:  
Unit 7:   3185519 free, 1795553/4981072 used (36%)  
Unit 8:   7487795 free, 283805/7771600 used (4%)  
Lines highlighted in bold represent files currently in use.

World Load Files:  
{...}

Paging files:  
{...}

Boot files:  
{...}

Lisp Machine File System Partitions:  
FEP7:>fspt.fspt.1       1  
FEP7:>lmfs.file.1 1000000

FEP-Specific files:  
{...}

Other files:  
FEP7:>color.cfg.1 2  

The headers are in italics actually.

Completing a Usable Disk

The new FEP8:> is not yet fully usable. You can boot it to the FEP, but if you try to load a world, it will complain about no paging file found. Let's create the paging file.

Command: Create FEP File (FEP file [default FEP7:>TEMPORARY.TEMP]) FEP8:>Page.page.newest (Size in blocks) 512000  

I'm also going to manually copy the other .boot files:

  • Autoboot.boot
  • boot.boot
  • graphics.boot

I'll copy a few other miscellaneous files:

  • color.cfg

Now we have copied almost all the files on the SCSI2SD:

  • World Load Files
  • Paging Files - we re-created these
  • Boot files
  • FEP-Specific files - some of these were automatically created; flod/sync files were copied

We now just need to copy/recreate Lisp Machine File System Partitions files:

An LMFS can consist of multiple LMFS "partitions." These are each listed in the fspt.fspt file, and together represent all the parts of an LMFS. On the MacIvory, for example, the LMFS is split between FEPs because each FEP on that hardware has to be smaller than 2G due to Mac OS 8 file size limitations.

It's possible to copy the fspt.fspt file normally. However, if you attempt to copy the lmfs.file then you get an error:

Could not copy FEP7:>lmfs.file.newest:  
 FEP File locked.
 For FEP7:>lmfs.file.1

You have to copy the LMFS file before it's mounted and being used. However, it shows up as 0 bytes long (but 1,000,000 blocks long) so this has proven challenging and I have yet to do it.

Attempt 1

  • SELECT F
  • Right click Local LMFS Operations
  • Right click LMFS Maintenance Operations
  • Right click Initialize
  • Partition FEP File: FEP8:>lmfs.file.newest
  • Operation: New File System
  • Click Do It

This gives an error:

The file system on this machine is now in use.  
You may not create an empty file system while the file system  
is in use. Warm boot, or cold boot, and try again.  

Attempt 2

  • Boot into Lisp using the Genera-8-3.ilod world
  • Login LISP-MACHINE
  • Copy File FEP7:>lmfs.file FEP8:>

This ran way too quickly, so I compared the directories. Top line is FEP7, bottom line is FEP8:

      lmfs.file.1   1000000      0(8)  05/14/14 22:29:23 []           LISPM
      lmfs.file.1      0      0(8)          05/14/14 22:29:23 []           LISPM

As you can see, the new one is completely empty.

However... Per LMFS Multiple Partitions of Site Operations (page 649) says:

Note: Since the Copy File (m-X) command copies files according to byte size, you may need to edit the byte count of the partition for the copy file command to work. To do this, multiply the number of blocks by si:disk-block-length-in-bytes, since partitions were previously created with a byte size of 0.

So, I'm going to edit the fspt.fspt to show one partition at FEP8: and then re-use the copy command to edit the byte count as specified above.

Issuing the command `Copy File FEP7:>lmfs.file.newest FEP8:>lmfs.file.1 :Byte Size

Attempt 3

Attempting to create an LMFS with the File System Editor doesn't work. It just keeps failing.

So, I'm booting into the new SCSI drive and loading the provided world. At this point I was able to do the Initialize in the File System Editor and it didn't fail. I am creating FEP8:>xyzzy.file.1 with 1,000,000 FEPFS blocks. It's taking quite some time to create it.

Since the LMFS file on the SCSI2SD looks empty, it won't copy it. So, I'm going to back up all the files in there using the Write TAR File command to a FEP-stored TAR file. Something like this: Write TAR File TOWER:>*.*.* FEP8:>tar-of-lmfs.tar.newest :Mode Binary. Then, I'll rename the xyzzy.file to lmfs.file, reboot, and restore the TAR files. I'm not sure this will work since the filenames when written into a TAR seem to change. I'll have to see if they change back. Also, this mode thing is odd. Another choice is Heuristicate.

boot.boot

Viewing files on LMFS

You can use SELECT F to get to the File System Editor and look around the LMFS. You can also use the Show Directory command. In this case, TOWER refers to the name of the computer set in the FEP boot sequence (I think). I'm not sure how it knows to use the LMFS files above.

Command: Show Directory (files [default FEP8:>*.*.newest]) TOWER:>*.*.newest

TOWER:>*.*.newest  
  145742 free, 104248/249990 used (41%) (LMFS records, 1 = 5056. 8-bit bytes)

      abekas-exabyte-support.directory.1    1   DIRECTORY !    #1 11/23/14 20:51:19 X=11/23/14 Lisp-Machine
      {...}

19 blocks in 19 files  
Notes

Douglas Fields

Writing LISP and Haskell since 1990