Zip drives for FreeBSD

WARNING:

You can seriously damage the file system of the machine you are working with if you aren't careful with the steps below. Be SURE you are referring to the proper device, especially when you do the newfs commands below.

Setting up a machine for zip-drives

We can access Zip drives from FreeBSD. The disk can either have an MS-DOS filesystem or a UFS (FreeBSD) filesystem on it.

The zip is a scsi disk; look at the messages at boot time to find the device name. Note: You must have a zip disk in the drive at boot time so that the kernel can discover the disk's geometry properly. The messages should look something like this:

(ahc0:5:0): "IOMEGA ZIP 100 H.14" type 0 removable SCSI 2
sd1(ahc0:5:0): Direct-Access 
sd1(ahc0:5:0): UNIT ATTENTION asc:28,0
sd1(ahc0:5:0):  Not ready to ready transition, medium may have changed
96MB (196608 512 byte sectors)

The key part here is the sd1. That's the device name for your zip drive. Once you know this, you can make a mount point entry in /etc/fstab like:

/dev/sd1c               /zip            ufs     rw,noauto       0       0
/dev/sd1s4              /zipdos         msdos   rw,noauto       0       0

You must also create the mount point (mkdir /zip /zipdos) and mount the drive. The first line is the entry for a BSD filesystem, while the second is for a dos filesystem.

Mounting a zip disk

Assuming you have a machine configured as above and a Zip disk with the appropriate file-system (click here for how to make a BSD disk) on it, you can then mount a BSD disk with:

mount /zip
or a DOS disk with
mount /zipdos

You will need to use the corresponding umount command before ejecting the disk. (Remember, you can't be in a directory on the zip disk or have files open when you go to umount.)

Trouble shooting

Sometimes you will get a message about operation not permitted when you try to mount a BSD zip disk. This is usually because the file-system isn't clean. Probably it was still mounted when a machine was rebooted. This will also print a message on the console suggesting you fsck, but you may not see this if you're working remotely or running X on the machine. You need to do fsck /zip to "repair" the file-system.

How to make a BSD zip-disk

WARNING:

(Worth repeating) You can seriously damage the file system of the machine you are working with if you aren't careful with the steps below. Be SURE you are referring to the proper device, especially when you do the newfs commands below.

If you have a zip disk you're going to use exclusively for BSD (i.e. not to transfer things to Windows) you will get better performance and stability, plus long file names if you put a BSD (UFS) filesytem on it. You can wipe the disk clean with the following commands. Note that the sd1 in both commands is just the name of the drive on my machine. Substitute that part of your device name as appropriate (probably sd0, sd1, or sd2):

dd if=/dev/zero of=/dev/rsd1 count=2
disklabel -Brw sd1 auto

You should then use /stand/sysinstall to create a BSD partition. The menu sequence is "Configure", "The Disk Partition Editor", select the appropriate disk (sd1 for me), "Use Entire Disk", "Yes" (use a compatible entry), "Write Changes", "None" (no boot manager), and then cancel your way out of /stand/sysinstall.

Once you have a FreeBSD partition, you need to make a file-system, with a command like:

newfs /dev/rsd1c 

(Substitute the appropriate device for sd1.) Then you're ready to mount the disk following the directions above.

Useful links

These pages talk more about Zip disks with FreeBSD:


Other DiRT documents
Author: Mark Parris
Last updated: February 18, 1998