Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
ATACONTROL(8)           FreeBSD System Manager's Manual          ATACONTROL(8)

     atacontrol - ATA device driver control program

     atacontrol <command> args

     atacontrol attach channel
     atacontrol detach channel
     atacontrol reinit channel
     atacontrol create type [interleave] disk0 ... diskN
     atacontrol delete raid
     atacontrol addspare raid disk
     atacontrol rebuild raid
     atacontrol status raid
     atacontrol mode device
     atacontrol info channel
     atacontrol cap device
     atacontrol list

     The atacontrol utility is a control program that provides the user access
     and control to the FreeBSD ata(4) subsystem.

     The atacontrol utility can cause severe system crashes and loss of data
     if used improperly.  Please exercise caution when using this command!

     The channel argument is the ATA channel device (e.g., ata0) on which to
     operate.  The following commands are supported:

     attach   Attach an ATA channel.  Devices on the channel are probed and
              attached as is done on boot.

     detach   Detach an ATA channel.  Devices on the channel are removed from
              the kernel, and all outstanding transfers etc. are returned back
              to the system marked as failed.

     reinit   Reinitialize an ATA channel.  Both devices on the channel are
              reset and initialized to the parameters the ATA driver has
              stored internally.  Devices that have gone bad and no longer
              respond to the probe, or devices that have physically been
              removed, are removed from the kernel.  Likewise are devices that
              show up during a reset, probed and attached.

     create   Create a type ATA RAID.  The type can be RAID0 (stripe), RAID1
              (mirror), RAID0+1, SPAN or JBOD.  In case the RAID has a RAID0
              component, the interleave must be specified in number of
              sectors.  The RAID will be created of the individual disks named
              disk0 ... diskN.

              Although the ATA driver allows for creating an ATA RAID on disks
              with any controller, there are restrictions.  It is only
              possible to boot on an array if it is either located on a
              ``real'' ATA RAID controller like the Promise or Highpoint
              controllers, or if the RAID declared is of RAID1 or SPAN type;
              in case of a SPAN, the partition to boot must reside on the
              first disk in the SPAN.

     delete   Delete a RAID array on a RAID capable ATA controller.

              Add a spare disk to an existing RAID.

     rebuild  Rebuild a RAID1 array on a RAID capable ATA controller.

     status   Get the status of an ATA RAID.

     mode     Without the mode argument, the current transfer modes of the
              device are printed.  If the mode argument is given, the ATA
              driver is asked to change the transfer mode to the one given.
              The ATA driver will reject modes that are not supported by the
              hardware.  Modes are given like ``PIO3'', ``udma2'',
              ``udma100'', case does not matter.

              Currently supported modes are: PIO0, PIO1, PIO2, PIO3, PIO4,
              WDMA2, UDMA2 (alias UDMA33), UDMA4 (alias UDMA66), UDMA5 (alias
              UDMA100) and UDMA6 (alias UDMA133).  The device name and
              manufacture/version strings are shown.

     cap      Show detailed info about the device on device.

     info     Show info about the attached devices on the channel.

     list     Show info about all attached devices on all active controllers.

     To get information on devices attached to a channel, use the command

           atacontrol info ata0

     To see the devices' current access modes, use the command line:

           atacontrol mode ad0

     which results in the modes of the devices being displayed as a string
     like this:

           current mode = UDMA100

     You can set the mode with atacontrol and a string like the above, for

           atacontrol mode ad0 PIO4

     The new modes are set as soon as the atacontrol command returns.

     The atacontrol command can also be used to create purely software RAID
     arrays in systems that do NOT have a "real" hardware RAID card such as a
     Highpoint or Promise card.  A common scenario is a 1U server such as the
     HP DL320 G4 or G5.  These servers contain a SATA controller that has 2
     channels that can contain 2 disks per channel, but the servers are wired
     to only place a single SATA drive on each channel.  These servers do have
     a "pseudo" RAID BIOS but it uses a proprietary format that is not
     compatible with the ata driver, and thus their RAID bios must be switched
     off.  Another common scenario would be a Promise UDMA100 controller card
     that did not contain the Fasttrack RAID BIOS, but did contain 2 UDMA
     channels.  1 disk would be attached to one channel and the other disk
     would be attached to the other channel.  It is NOT recommended to create
     such arrays on a primary/secondary pair on a SINGLE channel since the
     throughput of the mirror would be severely compromised, the ability to
     rebuild the array in the event of a disk failure would be greatly
     complicated, and if a disk controller electronics failed it could wedge
     the channel and take both disks in the mirror offline.  (which would
     defeat the purpose of having a mirror in the first place)

     A quick and dirty way to create such a mirrored array on a new system is
     to boot off the FreeBSD install CD, do a minimal scratch install, abort
     out of the post install questions, and at the command line issue the

           atacontrol create RAID1 ad4 ad6

     then immediately issue a reboot and boot from the installation CD again,
     and during the installation, you will now see "ar0" listed as a disk to
     install on, and install on that instead of ad4, ad6, etc.

     To get information about the status of a RAID array in the system use the
     command line:

           atacontrol status ar0

     A typical output showing good health on a RAID array might be as follows:

           ar0: ATA RAID1 subdisks: ad4 ad6 status: READY

     If a disk drive in a RAID1 array dies the system will mark the disk in a
     DOWN state and change the array status to DEGRADED.  This can ALSO happen
     in rare instances due to a power fluctuation or other event causing the
     system to not shutdown properly.  In that case the output will look like
     the following:

           ar0: ATA RAID1 subdisks: ad4 DOWN status: DEGRADED

     For a mirrored RAID1 system the server WILL ALLOW you to remove a dead
     SATA disk drive (if the drive is in a hot-swap tray) without freezing up
     the system, so you can remove the disk and while you are obtaining a
     replacement the server can run from the active disk.  The only caveat is
     that if the active disk is ad6, the system most likely will NOT be able
     to be rebooted since most systems only support booting from the first
     disk drive.

     To deactivate the DOWN disk ad6 to allow for it to be ejected, use the

           atacontrol detach ata3

     then eject or remove the disk.  Note that this only works if the 2 disks
     in the mirror are on separate channels (which is the standard setup for
     1-U servers like the HP DL320).  When the new disk drive is obtained,
     make sure it is blank, then shut the system down.  At this point, if the
     system has a RAID array card like a Highpoint or Promise controller, you
     may then boot it into the BIOS of the card and use the manufacturers RAID
     array rebuild utilities to rebuild the array.

     If the system has a pure software array and is not using a "real" ATA
     RAID controller, then shut the system down, make sure that the disk that
     was still working is moved to the bootable position (channel 0 or
     whatever the BIOS allows the system to boot from) and the blank disk is
     placed in the secondary position, then boot the system into single-user
     mode and issue the command:

           atacontrol addspare ar0 ad6
           atacontrol rebuild ar0

     If the disk drive did NOT fail and the RAID array became unmirrored due
     to a software glitch or improper shutdown, then a slightly different
     process must be followed.  Begin by issuing the detach command (this
     shows the detach for disk ad6, the primary master on channel 3):

           atacontrol detach ata3

     then reboot the system into single-user mode.  (don't just init the
     system, reboot it so that both disks get probed) You will probably see
     TWO mirrored RAID arrays appear during the boot messages, ar0 and ar1.
     Issue the command:

           atacontrol delete ar1
           atacontrol addspare ar0 ad6

     Now a status command will show the array rebuilding.


     The atacontrol utility first appeared in FreeBSD 4.6.

     The atacontrol utility was written by Soren Schmidt <>.

     This manual page was written by Soren Schmidt <>.

FreeBSD 11.0-PRERELEASE        November 28, 2007       FreeBSD 11.0-PRERELEASE


Want to link to this manual page? Use this URL:

home | help