Cloning a RISC iX disc

I've never known anyone with an install set for RISC iX (I believe they did exist - on floppy!) This document is aimed at those who have an Acorn R series machine (which had a license for RISC iX) which has lost its copy or those wishing to make a backup of their RISC iX system. A certain amount of knowledge about both RISC OS and UNIX is assumed.

The new disc doesn't have to be the same size as the original, but it should be at least 100 MB and smaller than 2 GB. You will also need to know the geometry of your new disc.

WARNING: This document is used at the reader's own risk. This sort of operation can easily destroy your operating system if extreme care is not taken. I cannot guarantee the accuracy of this document - most of it is from memory.

Installing the clone disc

Due to Acorn's rather strange implementation of the SCSI drivers, you must choose the next available SCSI ID. This will normally be ID 1. If you're installing the drive internally, you'll need a second power supply or power splitter. Leave the original (master) drive on the end of the chain and remove any terminators from the clone drive.

Configure RISC OS to recognise the clone disc with *CONFIGURE SCSIFSdiscs 2, and restart the machine.

Partitioning the disc

Obtain a copy of Acorn's SCSIDM utility. Run it in a task window and you are presented with a prompt. Enter probe at the prompt and you will be presented with a list of SCSI devices connected to your machine. Your master disc will have an ID of 0 and your new clone disc 1.

Select your clone disc by entering device 1. Then execute the section command to divide your disc into in RISC OS and RISC iX sections. You must then partition the RISC iX section using the partition command.

RISC iX requires (at least) two partitions, the first being the root partition and the second a swap area. You should allow about twice the physical memory in the machine for swap. You must specify both partitions at once when partitioning. When asked for the partition enter 0,1. You will then be asked for the start block and length of each partition in turn. Before you continue, make a note of the length of your root partition.

You must now use the namepart command to name your partitions "Root" and "Swap" respectively.

Now enter prptable to check everything. It should look something like this:

scsidm> prptable

  Table was written on Sun Mar  1 00:36:16 1992

    Partition Table
    ---------------
 +------+--------------+--------------+-----------------+------------+
 |  No  |     Start    |    Length    |     Text        |  Comments  |
 +------+--------------+--------------+-----------------+------------+
 |   0  |      205001  |      291000  | Root            |            |
 |   1  |      496002  |       32804  | Swap            |            |
 +------+--------------+--------------+-----------------+------------+

Press <enter> to continue...

    Partition Map
    -------------
 +------------------------------------------------------------+
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000000000000000000000000000000000000|
 |000000000000000000000000000001111111111111111111111111111111|
 |111111111111111111111111111111111111111111111111111111111111|
 +------------------------------------------------------------+
      ^: overlapping partitions    *: submerged partitions

You can now quit SCSIDM using the quit command. It may be best to reboot at this point.

Copying RISC OS

You may not wish to copy RISC OS as well as RISC iX, but do remember that you are going to need a copy of the !RISCiX application in order to boot RISC iX. RISC OS files can be copied with a simple drag and drop.

Preparing the RISC iX partition

The first thing to do it boot RISC iX from the master disc (using the copy of !RISCiX on that disc). Log in as root.

Next, you need to build a filesystem on the clone disc. to do this you must add an entry in /etc/disktab for your disc. Load /etc/disktab into your favourite editor (vi may be the only choice) and make a copy of an existing entry as a template. Change the name of the entry to something sensible and then set ty to winchester and nc, nt and ns to the number of cylinders, heads and sectors respectively for your clone disc. Then set pa to the number of sectors in your root partition (the length you noted when partitioning the disc).

You should end up with an entry looking something like this:

disc_name:\
	:ty=winchester:ns#sectors:nt#heads:nc#2cylinders:se#512:rm#1:\
	:pa#sectors_in_root_partition:ba#4096:fa#1024

Once you have a satisfactory disktab entry you can run newfs to create the new file system: /usr/sbin/newfs /dev/sd1a disc_name

Copying RISC iX

The following sequence of commands should be executed to copy RISC iX from the master to the clone disc.

/sbin/mount -t 4.3 /dev/sd1a /mnt
Mount the newly created filesystem on /mnt.
cd /
tar cf - `ls -A1 | grep -v dev | grep -v mnt` | ( cd /mnt ; tar xvf - )
Copy all the regular files onto the clone disc. This is done with two tars (one to archive and one to unpack) in a pipe. Tar is used because it maintains all the correct file attributes. /dev is excluded because it contains special files that tar cannot copy. /mnt is excluded to avoid an infinite loop.
mkdir /mnt/mnt
mkdir /mnt/dev
Create the two directories that the tar missed.
cd /dev
ls -A1 | cpio -pdvm /mnt/dev
Copy the special device files using cpio. A spurious error message may be generated.
umount /mnt
/usr/sbin/shutdown -h now
Finally, unmount the cloned filesystem and halt RISC iX.

Testing

In RISC OS, and reconfigure the machine for single-disc operation with *CONFIGURE SCSIFSdiscs 1. Shut the machine down and remove the master disc. Remember to set the SCSI ID of the clone disc to 0 and fit terminators, if required.

Restart the machine and load !RISCiX. You should now be able to boot your new copy of RISC iX.