Going through zip drive hell? Unfortunately these devices don't always work 'out-of-the-box' on some Linux systems, but it's nothing a little manual configuration can't fix. Here's a detailed (and substantially revised) how-to for mounting your zip disks in Ubuntu Warty (for Hoary there are a couple of different steps. If you are using Ubuntu Hoary visit the Hoary Tips & Tricks forum). First off, the basics -
1. Create a mountpoint. The default is /media/zip0. Open up a terminal and type sudo mkdir /media/zip0 . This is the directory which will eventually contain your drive's contents.
2. (optional) Create a symbolic link '/media/zip' - sudo ln -s /media/zip0 /media/zip . Not strictly necessary, but gives your drive a slightly shorter name to be referenced by.
3. Establish your drive's device name. This depends on where it is connected. In Linux, IDE devices are named according to the following pattern-
/dev/hda Primary IDE Controller Master (usually your hard drive)
/dev/hdb Primary IDE Controller Slave
/dev/hdc Secondary IDE Controller Master (usually your CD-ROM)
/dev/hdd Secondary IDE Controller Slave
Look in Computer>System Configuration>Device Manager. Scroll down to your zip drive and click the 'Advanced' tab. Next to 'block.device' should appear your drive's device name. This will most likely be '/dev/hd*4' (where '*' depends on where your drive is connected according to the above scheme). The '4' here is the partition number. For some reason, Iomega disks formatted with the stock FAT16 filesystem use partition number 4. You can reformat them if you wish (see below), although I don't recommend using any filesystem type other than FAT16 or FAT32. Always use partition 4 on the zip disk for any FAT filesystem, however.
5. Once you know the device name, edit /etc/fstab - sudo gedit /etc/fstab . This file controls how all your drives are mounted. You need to add a line which looks like this (my drive is the secondary slave, therefore 'hdd') -
/dev/hdd4 /media/zip0 auto rw,user,noauto,sync 0 0
(you will notice in Device Manager that the filesystem 'policy' for zip drives is 'auto'. Specifying the actual filesystem used usually produces an error on mounting).
6. Refresh /etc/fstab - sudo mount -a . A zip drive icon should now appear in Computer>Disks.
You now need to create a device node for your zip drive in the /dev directory. If you look here you will see a node for device block 'hd*' (your actual zip drive , but not for the partition 'hd*4' (unlike your hard drive(s)). This node is needed in order to mount your disk. It's normally the job of the module 'ide_floppy' (your zip drive's Linux device driver) to create it, but this will only get done if there is a zip disk inserted at boot-up, when the kernel loads all the modules (I don't know if this is a bug, but it's just the way it is). You can, of course, insert one each time before switching your computer on, but if you'd rather not there are a few simple steps you can do to get around this -
7. To ensure the 'ide_floppy' module is loaded at boot-up add a line 'ide-floppy' (without quotes) to /etc/modules (if you don't mind inserting a zip disk before booting up, skip to step 10 after rebooting at this point).
8. Tell Ubuntu to create a device node manually during each boot-up by hacking another file - sudo gedit /etc/udev/links.conf . You will need to add a line that looks similar to this -
# Manually create a zip device.
M hdd4 b 22 64
What this line stands for is ' M(ake) hdd4 (a) b(lock device with major number) 22 (and minor number) 64' (your device name, major and minor numbers may differ from mine, of course) . The major and minor numbers for hd*4 are listed under your zip drive's entry in Device Manager (Advanced tab). Once you have the details, insert your line in /etc/udev/links.conf using the syntax above.
9. Save, exit, and reboot (you will see a message in the 'Loading Modules...' section about a disk not being in a drive. Ignore it. It is of no consequence). Now if you look in /dev you will notice a device node 'hd*4' has magically appeared!
10. Now insert a zip disk and type mount /dev/hd*4 or mount <your mountpoint>. You will likely get an error message, but don't sweat it - Ubuntu is just 'getting used to' the device that you created manually. You may have to run the 'mount' command a couple of times before you succeed. It's messy, but it works.
This how-to will work for ATAPI/IDE zip 100 drives (and probably zip 250). The procedure is slightly different for parallel port, SCSI etc., but there are other threads around which cover those. You will also note that your disks won't automount and open a browser window, even if other removable media is set to do so. I don't know why this is so but solutions to this are more than welcome!
REFORMATTING ZIP DISKS -
The following is an excellent guide on how to do this using fdisk -
Follow it to the point where you write the new partition table to the disk (option 'w') then quit fdisk (and the above guide). Format it to FAT32 by running sudo mkfs -t vfat /dev/hdd4 , or, if possible, use Windows to do this. Using Linux tools to format disk partitions with Windows filesystems can be a bit buggy sometimes. It should work fine, but Windows will often read the filesystem as FAT rather than FAT32 - your call as to whether this is a problem for you.
You can use Linux filesystems if you want but you are likely to run into problems with the file permissions and be unable to write to your zip disk. Of course, you can try changing them with chmod, but they have a curious habit of returning to their original root user state. It also chops 10MB off the disk's capacity. To avoid these headaches, just use FAT32.
If you do choose Linux formatting, use ext2, and remember to use partition 1, otherwise your disk won't moun99t. Adjust accordingly for all the above instructions.
Hope this helps!
UNMOUNTING YOUR DISK -
If you have problems ejecting your zip disk make sure you are following the correct procedure for doing so. First off, you need to unmount it -
umount <YOUR DEVICE NAME> or <MOUNTPOINT>
Properly unmounting removable media in Linux is necessary to avoid the risk of data loss.
If you find the above still doesn't work, do what's known as a 'lazy' unmount -
umount -l <YOUR DEVICE NAME> or <MOUNTPOINT>
You should now be able to use the 'eject <YOUR DEVICE NAME> or <MOUNTPOINT>' command (or just press the button on your zip drive) and have it do exactly that.