Please consider a donation to the Higher Intellect project. See or the Donate to Higher Intellect page for more info.

Jaz-drive HOWTO Linux

From Higher Intellect Vintage Wiki
Jump to navigation Jump to search
  Jaz-drive HOWTO
  Herbert S. DaSilva
  v1.8, 12 January 2000

  This HOWTO covers the configuration and use of the 1Gb and 2Gb Iomega
  Jaz drives under Linux.

  Table of Contents

  1. Introduction

     1.1 History
     1.2 Latest Version
        1.2.1 Version History
     1.3 Copyrights and Trademarks
     1.4 Acknowledgements and Thanks

  2. Jaz Hardware

     2.1 The Jaz Drives
     2.2 The Jaz "Disks"
     2.3 The Jaz Jet Host Adapter
     2.4 Other SCSI Host Adapters
     2.5 Kernel Driver Issues

  3. Identifying the Jaz Drive

     3.1 During Power-On Test
     3.2 During Boot
     3.3 Device Name

  4. Using a Jaz Disk

     4.1 DOS Formatted Disks
     4.2 Repartitioned DOS Jaz Disks
     4.3 Linux-Native Jaz Disks
     4.4 Checking Linux-Native Jaz Disks
     4.5 Using the fstab to Make Things Easier
        4.5.1 DOS Format Disks
        4.5.2 Linux Format Disks
        4.5.3 Automatic Mount at Boot Time
     4.6 The Jaz "tools" Disk

  5. Linux Utilities for Jaz Drives

     5.1 jaztool
        5.1.1 Ejecting a Cartridge
        5.1.2 Password Protection
     5.2 jaZip

  6. Booting from a Jaz Cartridge

     6.1 BIOS Issues
     6.2 Installing Linux on a Jaz Cartridge


  1.  Introduction

  The Iomega Jaz drive is a removable-media disk drive whose disks have
  a capacity of 1 or 2 Gigabytes. Unlike the Zip drive, the Jaz is only
  available as a SCSI device (internal or external), so a SCSI interface
  card and driver are required to use these drives.
  1.1.  History

  Much of this HOWTO evolved from what was created by the previous
  author, Bob Willmot, (who can now be reached at [email protected]
  <mailto:[email protected]>), who maintained the HOWTO through version
  1.6, with contributions and information from the following people:

  o  Grant Gunther, [email protected]

  o  Tom Poindexter, [email protected]

  o  Todd Woods, [email protected]

  o  Richard B. Melrose, [email protected]

  o  Phil Howard, [email protected]

  o  Rick Niess, [email protected]

  1.2.  Latest Version

  The latest version of this document can be found on my homepage
  <> where you will find the HTML
  version, suitable for browsing, a PostScript version, suitable for
  printing, and the SGML source.  Other versions may be found in
  different formats at the LDP homepage

  1.2.1.  Version History

  v1.8, 12 January 2000

  o  Fixed an incorrect HTTP link

  o  Added clarification to jaztool code for 2Gb drives

  v1.7, 18 November 1999

  o  Converted to SGML

  o  Added info for 2Gb drives

  o  Added fstab entry examples

  o  General freshening up

  If you have any comments/suggestions/corrections please send them to:
  Herb DaSilva at Home <mailto:[email protected]> or (if you must have
  fast response) at Work <mailto:[email protected]>.

  1.3.  Copyrights and Trademarks

  Copyright (C) 2000,1999 Herbert S. DaSilva

  This manual may be reproduced in whole or in part, without fee,
  subject to the following restrictions:

  o  The copyright notice above and this permission notice must be
     preserved complete on all complete or partial copies

  o  Any translation or derived work must be approved by the author in
     writing before distribution.

  o  If you distribute this work in part, instructions for obtaining the
     complete version of this manual must be included, and a means for
     obtaining a complete version provided.

  o  Small portions may be reproduced as illustrations for reviews or
     quotes in other works without this permission notice if proper
     citation is given.

  Exceptions to these rules may be granted for academic purposes: Write
  to the author and ask. These restrictions are here to protect us as
  authors, not to restrict you as learners and educators. All source
  code in this document is placed under the GNU General Public License,
  available via anonymous FTP from the GNU archive site

  1.4.  Acknowledgements and Thanks

  Thanks to Stephan Burlot, [email protected], for pointing out
  the error (or lack of clarity) in the 2Gb patch to jaztool that was
  fixed in version 1.8.

  My thanks go out to Mark F. Komarinski for his "HOWTO-HOWTO" - This
  LDP author was helped Mark, you did your job.  ;-)

  2.  Jaz Hardware

  2.1.  The Jaz Drives

  Jaz drives are SCSI devices and are available as an external drive
  with a 50-pin SCSI-2 self-terminating interface or an internal 3-1/2
  format drive with a 50-pin header interface.

  Both the internal and external devices are available in either 1 or 2
  Gigabyte capacity, so there are four different Jaz drives available.

  2.2.  The Jaz "Disks"

  Jaz disks are a cartridge-style removable media containing a stack of
  three 3.5" platters.  From here out, I'll be using the terms
  "cartridge" and "disk" interchangeably to mean the Jaz media.

  The 1Gb and 2Gb cartridges appear similar, but there is actually a
  subtle difference in their shape which prevents a 2Gb cartridge from
  being fully inserted into a 1Gb drive.  Obviously, this means that you
  can't use a 2Gb cartridge in a 1Gb drive.

  The 2-Gb capacity Jaz drives can read, write, and format both 2-Gb and
  1-Gb Jaz cartridges.

  2.3.  The Jaz Jet Host Adapter

  Iomega markets a SCSI host adapter under the name Jaz Jet.  However,
  there are at least two different SCSI chipsets that are used.  For
  this reason, the Jaz Jet isn't necessarily the best SCSI adapter to
  buy if you need one for your Jaz drive.  You're better off getting a
  card that you know your Linux distribution will support (see the next

  One of the Jaz Jet cards is based on the Adaptec 7800 family of
  adapters.  Linux 2.0 supports this adapter with the aic7xxx driver.
  This driver is built into most of the standard 2.x SCSI-capable
  kernels supplied with most Linux distributions.

  The other adapter is based on the Advanced Systems chipset.  At boot
  time the board gives a message like:
  Jaz Jet PCI SCSI adapter Copyright Advanced Systems 1996

  Depending on your Linux distribution, you may need to build a custom
  kernel (with the CONFIG_SCSI_ADVANSYS variable set) to use this

  Personally, I don't like surprises, so if I were going to buy an
  adapter card, I would get a name-brand card with a 50-pin connector,
  so that I knew that what I was getting was supported.

  2.4.  Other SCSI Host Adapters

  If you're using an Ultra-Wide SCSI card with a 68-pin connector,
  you'll need to get an adapter or another cable. The adapters do indeed
  work just fine with the Jaz drive, but can be rather pricey, so if
  you're buying a SCSI card primarily for the purpose of connecting the
  Jaz drive, you're better off picking up a card with a 50pin connector
  on it.

  If you're looking for a suggestion, I like the Adaptec AHA-2930U -
  it's cheap, it's fast, and the Jaz drive just plugs right in using the
  supplied cable with no adapter hassles.  Unfortunately, support for
  this card is fairly new, so unless you have a fairly new Linux
  distribution (2.2.x kernel), it probably isn't supported.  There are
  patches to the aic7xxx driver for 2.0.36 kernels that support this
  card, however.  The AHA-2940U is an excellent choice as well, and it
  has been supported for a lot longer, it's just more expensive.

  2.5.  Kernel Driver Issues

  As always, be sure that your Linux distribution supports a particular
  card EXPLICITLY before making a purchase.  Many manufacturers, like
  Adaptec, have cards with numbers and letters similar to each other
  that are actually completely different chipsets, and therefore use
  completely different drivers.

  Configuring the Linux kernel for a SCSI card is the subject of a
  complete document in itself, so I won't go into that here.

  Info on rebuilding the kernel should be found in
  /usr/src/linux/README, or in /usr/src/linux/Documentation/ directory
  for the 2.x kernels.  If these files don't exist, make sure that you
  have installed the kernel package source for your distribution.

  You can also check out Brian Ward's Kernel-HOWTO

  3.  Identifying the Jaz Drive

  3.1.  During Power-On Test

  With a SCSI controller installed, when the machine is powered up or
  reset the SCSI controller will scan the SCSI bus looking for attached
  devices before booting the operating system.

  If your SCSI card is correctly installed, and your Jaz drive is
  attached and powered on, you should see the drive listed as something
  like "Iomega Jaz 1GB" or "Iomega Jaz 2GB" during this time.

  If the drive doesn't show up, there's no sense booting Linux.  Power
  down the PC and Jaz drive, and check everything again.  In particular,
  unplug the cables and make sure none of the the pins are bent, then
  replug them and ensure they are completely seated against the
  connector.  If you have multiple SCSI devices, make sure they all have
  different ID numbers, and that the last device in the SCSI chain is
  When the drive shows up in the power-on test, you're half way home.

  3.2.  During Boot

  When Linux boots the SCSI driver should display information about your
  SCSI adapter and what devices are attached to the SCSI bus.

  Boot messages will vary depending on your driver and adapter, and are
  logged to the /var/log/messages (or /var/adm/messages) file as well as
  appearing on the screen during boot.  You can also 'replay' the
  messages since your last boot from the command prompt with the dmesg

  Here's the kernel booting output from a 2.0.36 kernel with an Adaptec
  2940 controller (using the aic7xxx driver):

      (scsi0) <Adaptec AHA-2940A Ultra SCSI host adapter> found at PCI 14/0
      (scsi0) Narrow Channel, SCSI ID=7, 3/255 SCBs
      (scsi0) Warning - detected auto-termination
      (scsi0) Please verify driver detected settings are correct.
      (scsi0) If not, then please properly set the device termination
      (scsi0) in the Adaptec SCSI BIOS by hitting CTRL-A when prompted
      (scsi0) during machine bootup.
      (scsi0) Cables present (Int-50 NO, Ext-50 YES)
      (scsi0) Downloading sequencer code... 419 instructions downloaded
      scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.2/3.2.4
             <Adaptec AHA-2940A Ultra SCSI host adapter>
      scsi : 1 host.
        Vendor: iomega    Model: jaz 2GB           Rev: E.17
        Type:   Direct-Access                      ANSI SCSI revision: 02
      Detected scsi removable disk sda at scsi0, channel 0, id 4, lun 0
      scsi : detected 1 SCSI disks total.
      (scsi0:0:4:0) Synchronous at 10.0 Mbyte/sec, offset 15.
      sda : READ CAPACITY failed.
      sda : status = 1, message = 00, host = 0, driver = 28
      sda : extended sense code = 2
      sda : block size assumed to be 512 bytes, disk size 1GB.

  If something resembling these lines doesn't appear, then your kernel
  is probably not configured correctly (or you picked the wrong pre-
  built kernel).

  If the "scsi0 :" line does not appear, then you have not configured
  your driver correctly.  Some drivers will give you a hint about what
  is wrong.  If a drive name is not assigned, you probably forgot to
  include SCSI disk support when you built the kernel.

  Note the READ CAPACITY failed.  Most SCSI drivers (like this one) will
  detect that the drive is a removable media type, and not get all
  flustered when it can't read the partition table.  However, some SCSI
  cards aren't as graceful.  If your PC hangs during boot, try booting
  with a cartridge in the drive.

  Check the README files in /usr/src/linux/drivers/scsi and the Kernel
  HOWTO for other debugging hints.

  3.3.  Device Name

  In the log output in the previous section note the raw SCSI device
  name, which in this case is "sda", the full name being /dev/sda.  If
  the Jaz drive is the only SCSI disk on your system, it will typically
  be /dev/sda.  If your primary hard drive is SCSI, or you have a SCSI
  CD-ROM drive, it could be sdb, sdc, etc.
  Whatever the drive name is, you will need this name to access the
  drive, as explained in later sections.

  4.  Using a Jaz Disk

  4.1.  DOS Formatted Disks

  Jaz disks come pre-formatted from Iomega with a single partition using
  the DOS FAT16 file system.  The single partition is usually the 4th
  disk partition (for Mac compatibility - the Mac requires data to be on
  the 4th partition, but the PC doesn't care which partition data is

  Linux is perfectly happy reading and writing a FAT16 file system, so
  you can use the disk as is.  In order to use the disk, you need to
  mount it, so the first thing you need to do is create a mount point.
  For this document, we'll mount all our DOS Jaz drives under /dos_jaz,
  so let's create that mount point (you'll need to be root for most of
  this stuff).  You'll only need to do this once:

  mkdir /dos_jaz

  In a previous section, I mentioned you'd need to remember the Jaz
  drive's raw SCSI device name.  You need that now.  If your drive is
  /dev/sda then all these examples will work for you.  If not, you'll
  need to replace "sda" with the device ID of your Jaz drive.  Since you
  need to issue these commands as root, you'll want to be sure you have
  the correct names.

  If you have a 2.0 kernel, or have added VFAT support, you can mount
  the Jaz disk this way, and have long filenames under FAT16:

  mount -t vfat /dev/sda4 /dos_jaz

  Note that although VFAT allows you to use long filenames, those
  filenames are still case in-sensitive, and although 'ls' lists
  permissions, you can't actually change permissions on any of the

  If the "vfat" format is not recognized by the mount command, then
  you'll use this command to mount the Jaz disk:

  mount -t msdos /dev/sda4 /dos_jaz

  Once you have issued either of the mount commands, files from the disk
  will appear under the /dos_jaz directory.  While the disk is mounted,
  you will not be able to eject it.

  When you are done with the disk, you can unmount it with the command:

  umount /dos_jaz

  Once unmounted, you can press the button on the front of the drive to
  eject the cartridge.

  4.2.  Repartitioned DOS Jaz Disks

  Since a Jaz disk is simply a disk, it can be repartitioned and
  reformatted like a fixed disk.  If this is done, you need to know
  which partition numbers were used during repartitioning to be able to
  mount the disk.

  For instance, if the partition table was wiped, and a single new
  partition was created as the first partition, the two mount commands
  from the previous section would be:
  mount -t vfat /dev/sda1 /dos_jaz


  mount -t msdos /dev/sda1 /dos_jaz

  4.3.  Linux-Native Jaz Disks

  Linux-Native Jaz disks allow files to be stored with standard Unix
  permissions and case-sensitive filenames.  The only drawback to Linux-
  Native disks is that they can no longer be used on DOS/Windows

  A Jaz disk looks the same as a hard drive to Linux, so for those of
  you familiar with the Linux disk management tools, none of the
  following will be a surprise.

  If you want to erase a Jaz disk and make a Linux native file system on
  it, you use fdisk on the entire disk.  Please be very careful using
  fdisk, especially if you have a SCSI hard drive - we wouldn't want to
  have any "accidents".  :-)  In particular, make sure you are operating
  on the correct device before making changes.  In most cases, you'll

  fdisk /dev/sda

  and delete the existing partitions (with the d command).  Then create
  a new partition with the n command, make it primary partition number 1
  (using all the cylinders), use w to write the partition table to disk,
  and quit with q.

  Once the partition has been created, format it with:

  mke2fs /dev/sda1

  (The 1 is the number that you gave this partition in fdisk).  I prefer
  to create a separate mount point for Linux native Jaz disks, and
  you'll see why a little later when we talk about the fstab. So let's
  create that mount point now, and then mount the disk:

  mkdir /jaz

  mount -t ext2 /dev/sda1 /jaz

  As usual, when the Jaz disk is mounted, it cannot be ejected.  When
  you're done using the Jaz disk, you unmount it with:

  umount /jaz

  Once unmounted, you can press the button on the front of the drive to
  eject the cartridge.

  4.4.  Checking Linux-Native Jaz Disks

  Like your other disk drives, once a Linux Jaz disk has been mounted
  and unmounted a certain number of times, the system will mark the disk
  as "dirty".  When this happens, you'll get a message like:

  Mounting unchecked filesystem, /dev/sda1.  Recommend running e2fsck.

  Once you see this message, it's a good idea to go ahead and check the
  disk.  The disk must be unmounted in order to check it.
  Unfortunately, you only get the "dirty" message when you mount it, so
  you can either check the disk when you're done using it, or unmount
  it, check it, then re-mount it.  Use the following command to check
  the disk (assuming the partition to be checked is the first one):

  e2fsck /dev/sda1

  4.5.  Using the fstab to Make Things Easier

  Up to now, we've had to be root to mount and unmount the Jaz disks,
  and we've had to type quite a bit to mount the Jaz disks.  By adding a
  couple of entries to the file /etc/fstab, we can make using the Jaz
  drive much easier.

  4.5.1.  DOS Format Disks

  If you've got preformatted DOS disks, and you've created the /dos_jaz
  mount point, you can add this line to the file /etc/fstab:

  /dev/sda4 /dos_jaz vfat defaults,user,nosuid,noauto 0 0

  With this line in the fstab, any user can mount and unmount a DOS-
  format Jaz cartridge with the following commands:

  mount /dos_jaz

  umount /dos_jaz

  This is because we have told Linux what the Jaz device ID and media
  type are in the fstab, plus we have given the user option to allow any
  user to mount and unmount the disk.  Naturally, if your Jaz drive is
  other than sda, you'll need to change that, and this won't work for
  DOS cartridges that have been repartitioned without another entry in
  the fstab that uses a separate mount point (e.g. /dos_jaz2).

  4.5.2.  Linux Format Disks

  If you've got Linux formatted disks, and you've created the /jaz mount
  point, you can add this line to the fstab:

  /dev/sda1 /jaz ext2 defaults,user,exec,nosuid,noauto 0 0

  With this line in the fstab, any user can mount and unmount a Linux-
  format Jaz cartridge with the following commands:

  mount /jaz

  umount /jaz

  Once again, we have told Linux what the Jaz device ID and media type
  are in the fstab, plus we have given the user option to allow any user
  to mount and unmount the disk.  Some system administrators may not
  wish to have the exec option present, as there are some security risks
  with letting any user run an executable of unknown origin from the
  drive, but with the nosuid option present, these risks are minimal.

  4.5.3.  Automatic Mount at Boot Time

  Both of the fstab examples above have the option noauto in them to
  prevent the disk from being automatically mounted at boot time.  In
  general, this is a good idea because if there is no disk in the drive
  when the computer boots, or the drive is powered off, it can cause
  varying amounts of trouble, depending on which SCSI driver you are

  If you're sure you want to mount the jaz drive at boot time, simply
  remove the noauto option, and make sure the drive is on, and a
  cartridge is inserted before booting.  Note that you can only have one
  fstab entry for jaz drive that will auto-mount, or you may encounter
  the same problems as if there was no cartridge in the drive.

  4.6.  The Jaz "tools" Disk

  With some Jaz drives, the software to run the drive is supplied on a
  Jaz cartridge instead of on CD-ROM.  The "problem" with these disks is
  that software-controlled write protection is enabled on the disk, so
  that the user can't wipe the disk until after the tools are installed
  at least once.

  There are several ways you can reclaim the Jaz tools disk:

  o  Install the tools on a DOS/Windows computer.

  o  Use a DOS/Windows computer with the Jaz tools already installed to
     remove the password protection.

  o  Use one of the Linux Utilities mentioned in a later section to
     remove the password protection.

  If you have access to one of the password protection removal programs,
  all you need is the password that Iomega uses, and it is:


  Note that capitalization is important.

  5.  Linux Utilities for Jaz Drives

  5.1.  jaztool

  jaztool is a Linux utility written by Bob Willmot to support some of
  the Jaz drive's features (including software controlled ejection and
  write protection).  I like jaztool because its commands can be
  embedded in alias commands and scripts.  It's also easy to compile and

  The original source code for jaztool can be found at <> and
  is also mirrored at my site at

  Note that to use jaztool with a 2Gb Jaz drive, you must change ONE
  line of code.  Change line 188 from this:

  return(!strncasecmp(id,"IOMEGA  JAZ 1GB",15));

  to this:

  return(!strncasecmp(id,"IOMEGA  JAZ",11));

  NOTE: There are two spaces between IOMEGA and JAZ in the previous two
  lines of code.  SGML (or maybe just HTML) apparently removes the extra

  After building jaztool and installing it, it must be suid root, or run
  as root, or it won't work.

  I use jaztool regularly, so if you have a question about it, I would
  be happy to try and answer it.

  5.1.1.  Ejecting a Cartridge

  Use the following command to eject a cartridge:

  jaztool /dev/sda eject

  This might seem like a lot to type, but it's easy to make a slick
  alias like this:

  alias jazej 'umount /jaz; jaztool /dev/sda eject'

  5.1.2.  Password Protection

  There are two password protection modes on a Jaz, and both are
  controlled through software.  One is Write Protected and the other is
  Read/Write Protected.  jaztool will allow you to unlock a Write
  Protected disk, but under Linux, a device that cannot be read cannot
  be mounted, so Read/Write Protected is not supported.

  If the cartridge is Write Protected (such as a Jaz Tools disk), use
  the following command to unlock it (the disk must not be mounted):

  jaztool /dev/sda rw

  jaztool prompts for a password, and if the password is correct, the
  disk is unlocked and ejected.  This must be done to cause the SCSI
  driver to pick up the new mode when the cartridge is re-inserted.

  To make the disk Write Protected again, use the following command:

  jaztool /dev/sda ro

  jaztool again prompts for a password, and the disk is locked and

  Note that jaztool doesn't support the "Unprotect until Eject" feature
  found in the Windows world.  If you remove the password protection, it
  is removed until you put it back on.

  5.2.  jaZip

  If you'd prefer a nice, slick, graphical user interface to control
  your Jaz (and Zip!) drive, there's the jaZip tool.  Check it out at:

  I haven't used jaZip myself, so please contact the author directly
  with questions on jaZip.  Contact information is on the website listed

  6.  Booting from a Jaz Cartridge

  6.1.  BIOS Issues

  If the Jaz drive co-exists with other SCSI harddrives, most BIOSes
  will want to boot the disk that has the lowest SCSI Id.  The Jaz drive
  can be set to SCSI Ids 0-6, and typically come out of the box set to
  SCSI Id 5.  Some BIOSes detect and skip removable devices like the
  Jaz.  If your BIOS will boot from a Jaz, you can set your main SCSI
  harddrive to SCSI Id 1, then you can change the Jaz from SCSI Id 5 to
  0 when you want to boot from the Jaz.

  More typically, the Jaz drive co-exists with an IDE harddrive.  Nearly
  every BIOS will want to boot the first IDE harddrive.  Some BIOSes
  will allow you change a setting in the BIOS setup to boot from a SCSI
  device first.  Others may require you to disable the IDE drives in the
  BIOS setup.  Still others may require detaching the IDE drives
  physically or disabling the IDE interface.

  6.2.  Installing Linux on a Jaz Cartridge

  Although running Linux from a Jaz cartridge is much slower than
  running from a harddrive, the Jaz drive makes an excellent ERD
  (Emergency Repair Disk).  It's also fun to be able to just pop in some
  new Linux system or to try Linux on someone else's Jaz-equipped

  By far the easiest way to install Linux on the Jaz cartridge is simply
  to follow the install procedure for your favorite distribution with
  the Jaz drive being the only drive on the system.  I've done this with
  RedHat 5.2, and it works perfectly.  If you're not completely
  comfortable with doing weird, wild stuff with LILO, it's the only way
  to go.

  If you want to do an "install" from your running system, you can often
  succeed in "building" a bootable system on a Jaz cartridge.

  o  Partition the drive and make the filesystems.  You probably need to
     have a swap partition, too, but if you have lots of RAM then maybe
     not.  Mount the new root as /jaz and any additional partitions
     within that directory as appropriate.

  o  Copy all the files into place.  Be sure all the /dev files are
     copied.  Be sure all permissions, ownership and group ids are

  o  Modify the files on the Jaz cartridge to suit the circumstances of
     booting from it.  In particular be sure to change /jaz/etc/fstab to
     mount the Jaz cartridge partition(s) as appropriate.  Also change
     /jaz/etc/lilo.conf to match as well.

  o  There are two alternatives for installing the LILO boot loader:

  o  Make a kernel image floppy and use rdev to make it mount the Jaz
     cartridge as root.  Boot from the floppy when ready the first time
     then run LILO to make the Jaz MBR bootable.

  o  You can run LILO from your non-Jaz root running system to install
     the bootable MBR on the Jaz cartridge.  For more information on
     this option, check out Alessandro Rubini's LILO mini-HOWTO