Filesystems & Disk Layout¶
Amix stores everything on a single SCSI hard disk — ID 6 by convention (the installer prompts for the disk target; ID 6 is simply what every manual and emulator assumes, and it gets baked into the device names once installed — see the note below) 🟡, partitioned with the Amiga Rigid Disk Block (RDB) scheme ✅ — the same on-disk partition table AmigaOS uses, which is what lets the Superkickstart ROM find and boot the disk. The installer carves out four partitions by default (root, swap, a 2 MB boot/bootstrap partition, and data) ✅. You choose a filesystem at install time: s5 (System V; the default but discouraged) or UFS (Berkeley Fast File System; recommended, and what the install scripts actually default to) ✅. Disk device names like /dev/dsk/c0d0s1 are not arbitrary — the minor number encodes the SCSI address, LUN, and partition, and the major number selects the driver (block major 18 for the SCSI disk, block major 16 for the floppy) ✅.
If you just want the major/minor cheat sheet, jump to Device name → SCSI address mapping or the device list reference. For how the disk gets booted in the first place, see the boot process.
The RDB partition scheme¶
Amix does not invent its own partition table — it reuses the Amiga Rigid Disk Block (RDB) ✅, the partition descriptor block written near the start of the drive that AmigaOS and its expansion ROMs understand. This is deliberate: power-on goes Superkickstart ROM → SCSI HD, and the ROM bootstrap can locate the boot partition through the RDB ✅. (See the boot process for the full chain.)
Practical consequences of the RDB choice:
- The drive that holds Amix is addressed as a "UNIX rdb" — the installer probes for "a suitable UNIX rdb" before partitioning ✅.
- Under emulation you present the disk as an RDB-type hardfile (e.g.
hard_drive_0_type = rdbin FS-UAE, an RDB hardfile in WinUAE) ✅. - The exact RDB partition type IDs are read from the installer script ✅: boot
0x554e4900(UNI\0), UNIX root0x554e4901(UNI\1), swap0x72657376(resv), stamped with/etc/rdb -F. Kickstart 2.04's boot-priority algorithm requires the bootable partition to be0x554e4900. See the root floppy anatomy.
Note: The disk's SCSI ID is baked into its device names at install time — at the conventional ID 6 every path is c6d0s… — so although the installer accepts other targets, the ID is then fixed in /etc/vfstab (the SVR4 mount table) and the boot partition, and can't be changed without editing those 🟡. The tape, by contrast, is genuinely hard-wired to SCSI ID 4 (/dev/rmt/4h) ✅. See hardware and Quirks.
Default partition layout¶
The installer either computes "obvious" partition sizes or asks you, then lays down four regions ✅:
| Partition | Purpose | Sizing rule | Tag |
|---|---|---|---|
Root (/) |
The system filesystem | Remainder / user choice | ✅ |
| Swap | Paging space | Larger when the disk exceeds BREAKPT=120 MB |
✅ |
| Boot / bootstrap | Holds the bootable kernel image; written by make bootpart |
BOOTSIZE=2 (MB) → BOOTLEN = BOOTSIZE * 2048 blocks |
✅ |
| Data | User / extra data | User choice | ✅ |
The boot-partition sizing is straight from the root-floppy install scripts: BOOTSIZE=2 megabytes, converted to BOOTLEN = BOOTSIZE*2048 disk blocks ✅. The swap-vs-disk-size threshold is the script's BREAKPT=120 MB cutoff ✅.
The same scripts compute the boot partition's device node from the SCSI ID and a boot-partition index:
That is, the boot partition is /dev/dsk/c<SCSI-id>d0s<partition> ✅ — exactly the c d s naming decoded below. With the disk at ID 6, ${SCSI} is 6.
🟡 Community guidance is to keep individual partitions at roughly 1 GB or smaller; larger partitions are reported to cause trouble. There is no primary source pinning down the precise limit, so treat the exact number as community lore.
UFS vs s5: which filesystem¶
You pick the filesystem type during installation ✅. Two choices ship:
| Type | What it is | Status at install | Use it? | Tag |
|---|---|---|---|---|
| UFS | Berkeley Fast File System (FFS) | Not the menu default, but the scripts default ANS="ufs" |
Recommended | ✅ |
| s5 | System V filesystem | The historical/menu default | Discouraged | ✅ |
The recommendation is unambiguous in practice: the install scripts on the root floppy set the answer variable ANS="ufs" as their effective default ✅, and community consensus is that everyone uses UFS.
Why does s5 linger as a nominal default at all? 🟡 The most plausible explanation is lineage: Amix was a direct port of AT&T's 3B2 (WE32x00) SVR4 codebase 🟡 (community-reported — amigaunix.com hedges "it appears that"), where the System V filesystem was the native default, and that default carried over even though UFS is the better choice on this hardware. The 3B2-lineage rationale is community-reported, not primary-verified 🟡 — see the quirks page.
Recommendation: choose UFS when the installer asks. UFS is also what the miniroot itself uses — the root floppy is a UFS filesystem (it carries lost+found and fsck strings) ✅, so the installer environment runs on UFS before your disk is even partitioned.
Filesystem mechanics¶
- UFS gives you the Berkeley FFS semantics SVR4 administrators expect (
fsck,mount, the usual block/fragment layout) ✅. - The standard SVR4 toolset is present:
fsck,dd, andcpioall appear as m68k ELF binaries inside the root miniroot ✅, used during install and available afterward. - s5 is the older System V filesystem with smaller block sizes and weaker crash recovery than FFS; it is functional but offers no advantage here.
Device name → SCSI address mapping¶
Under Unix a device is just a file in /dev with a major number (which driver) and a minor number (which sub-device); the kernel keys off the numbers, not the filename ✅. Amix follows the SVR4 controller/disk/slice naming for SCSI disks.
Disk nodes: /dev/dsk/cXdYsZ and /dev/rdsk/...¶
The block disk driver is major 18 — the SCSI hard-disk driver ✅. A name like /dev/dsk/c0d0s1 decodes as ✅:
| Field | Meaning | Encoded in |
|---|---|---|
c0 |
controller / SCSI address 0 | minor number |
d0 |
drive / LUN 0 | minor number |
s1 |
slice/partition 1 | minor number |
The Ditto driver paper's own ls -l /dev shows /dev/dsk/c0d0s1 as block major 18, minor 1, where minor 1 means "SCSI addr 0, LUN 0, partition 1" ✅. In other words the minor number packs the SCSI address, LUN, and partition number together ✅ — there is no separate field; the driver decodes the minor on each access.
Because the install disk is conventionally at SCSI ID 6, real install paths look like /dev/dsk/c6d0s<part> (the BPART=/dev/dsk/c${SCSI}d0s${BOOTPART} line above resolves to whatever target you pick — c6 at the conventional ID 6) ✅.
/dev/dsk/...is the block interface (buffered, used for filesystems viamount)./dev/rdsk/...is the matching character/raw interface (unbuffered, used byfsck,dd, partition tools) — standard SVR4 convention.
Floppy nodes: /dev/fd0¶
The floppy drive is the block driver at major 16 ✅ (/dev/fd0, from the paper's /dev listing). This is the AmigaDOS-format floppy device the install kernel reads; the boot/root/patch images you write to a real or emulated DF0: are read through it.
Tape nodes: /dev/rmt/4h¶
The distribution is streamed from a QIC tape at SCSI ID 4 ✅. The install scripts read /dev/rmt/4h (and the no-rewind /dev/rmt/4hn) ✅ — here the leading 4 in the path is the tape's SCSI ID, mirroring the hard-coded ID-4 tape requirement. Install pulls the archive with:
# distribution load from tape (amix_21_root.adf install scripts)
dd if=/dev/rmt/4hn bs=256k | cpio -imdcu
A ... | zcat | cpio variant handles compressed streams ✅. See the install walkthrough for the full flow, including tape-free alternatives.
Quick major/minor reference¶
| Node | Class | Major | Notes | Tag |
|---|---|---|---|---|
/dev/dsk/cXdYsZ |
block | 18 | SCSI hard disk; minor encodes addr/LUN/partition | ✅ |
/dev/rdsk/cXdYsZ |
char | (raw disk) | unbuffered peer of the above | ✅ |
/dev/fd0 |
block | 16 | floppy drive | ✅ |
/dev/rmt/4h |
char | (tape) | QIC tape; leading digit = SCSI ID 4 | ✅ |
/dev/console |
char | 0 (minor 0) | system console (for contrast) | ✅ |
For a fuller catalogue of device nodes and major numbers across the system, see the device list reference.
See also¶
- The boot process — how the Superkickstart ROM finds the RDB boot partition and decompresses the kernel.
- Device list — the full table of
/devnodes and major numbers. - Hardware & requirements — the SCSI target IDs and the 16 MB RAM ceiling.
- Install walkthrough — partitioning and filesystem choice in context.
- Quirks — the SCSI-ID constraints (tape hard-coded at ID 4, disk ID 6 by convention) and other gotchas.
Sources¶
sources/research-brief.md§3 (boot process & disk layout), §5 (device-driver model //devmajor-minor), §9 (installation flow), §10 (root.adf anatomy), §13 (open questions #5, #8).- Ditto, Writing Amix Device Drivers, 1990 European Amiga Developer's Conference —
ls -l /devexample (/dev/dsk/c0d0s1block major 18 minor 1;/dev/fd0block major 16;/dev/consolechar major 0). amix_21_root.adfanalysis viatools/inspect-adf.sh— install scripts:BOOTSIZE=2,BOOTLEN=BOOTSIZE*2048,BREAKPT=120,ANS="ufs",BPART=/dev/dsk/c${SCSI}d0s${BOOTPART},dd if=/dev/rmt/4hn bs=256k | cpio -imdcu; UFS miniroot (lost+found,fsckstrings).- amigaunix.com (installation / requirements pages) — UFS-recommended consensus, ~1 GB partition guidance, SCSI ID 6 disk / ID 4 tape.