VMware ESXi and vSphere Cluster Management

Hard Disk Controllers in Oracle VirtualBox

Learn how IDE, SATA, SCSI, and SAS controllers work in VirtualBox, including device limits, compatibility, migration, and troubleshooting.

A hard disk controller is the hardware or virtual hardware component that manages communication between an operating system and storage devices. It coordinates input and output (I/O) operations for hard disks, optical drives, and related media.

In a physical computer, the operating system communicates with a real controller on the motherboard or an expansion card. In VirtualBox, the guest operating system instead sees an emulated controller: virtual hardware presented by VirtualBox. VirtualBox connects that controller to file-backed virtual disks and virtual optical media on the host.

How a Virtual Storage Controller Works

A controller provides attachment points for storage devices. Depending on the controller family, these points may be called ports, slots, channels, or device IDs.

The relationship is:

  • Guest operating system: loads a driver and communicates with the virtual controller.
  • Controller: exposes a storage interface such as IDE, SATA, SCSI, or SAS.
  • Port or slot: identifies where a device is attached to that controller.
  • Virtual disk or optical medium: represents the attached storage device. A virtual hard disk is usually a disk image file, while optical media may be represented by an ISO image.

The disk image and controller are different things. A VDI, VHD, or other virtual disk file is the storage medium; the controller is the virtual hardware that makes that medium visible to the guest. Changing the controller does not normally change the disk image format, but it can make the guest unable to boot or unable to find the disk.

VirtualBox Controller Families

VirtualBox can emulate several controller families:

  • IDE/ATA: an older and broadly compatible interface.
  • SATA/AHCI: a modern serial interface commonly used by newly created virtual machines.
  • SCSI: a controller family often selected for guests that require SCSI drivers or SCSI-style storage.
  • SAS: Serial Attached SCSI, useful when a guest specifically requires SAS or when a higher-end storage model is appropriate.

Controller selection matters for several reasons:

  • The guest must have a suitable controller driver.
  • The selected controller must expose the boot disk where the guest expects it.
  • The controller determines how many virtual storage devices can be attached.
  • Imported machines may depend on the controller type used by the source configuration.
  • Modernity or theoretical performance does not compensate for missing guest compatibility.
VirtualBox Hard Disk Controller Comparison

IDE/ATA — Emulation: PIIX3, PIIX4, or ICH6. Maximum: 4 devices. Compatibility: strong support in older guests. Use: legacy operating systems and compatibility-focused configurations. Note: devices occupy primary-master, primary-slave, secondary-master, and secondary-slave positions.

SATA/AHCI — Emulation: VirtualBox SATA controller using AHCI behavior. Maximum: up to 30 devices. Compatibility: generally strong in modern guests. Use: new virtual machines and machines requiring several disks. Note: older guests may lack an AHCI or SATA driver.

SCSI — Emulation: BusLogic or LSI Logic. Maximum: up to 15 devices in the traditional SCSI model. Compatibility: depends on the guest's BusLogic or LSI driver. Use: SCSI-dependent guests and selected server workloads. Note: devices require suitable SCSI identification.

SAS — Emulation: LSI Logic SAS. Maximum: up to 8 devices. Compatibility: depends on SAS driver support. Use: guests with SAS-controller requirements or higher-end storage needs. Note: SAS is serial and uses the SCSI command set.

IDE (ATA) Controller

IDE, also called ATA or Parallel ATA, is an older disk-controller interface. SATA has largely replaced it in physical computers, but IDE remains valuable in VirtualBox because many older guest operating systems support IDE without needing additional drivers.

IDE Attachment Positions

The VirtualBox IDE model provides four storage positions across two channels:

IDE Attachment Slots

Primary master — Commonly used for a boot disk, but any supported IDE device can use it. Plan around the four-position total.

Primary slave — An additional device on the primary IDE channel. It consumes one of the four available positions.

Secondary master — Commonly preconfigured for a virtual CD/DVD drive. If optical media remains attached here, this position is unavailable for a virtual hard disk.

Secondary slave — The remaining IDE position for another disk or optical device.

Because an IDE controller supports only four attached storage devices, a VM with one optical drive may have only three remaining IDE positions for virtual disks. This limit is reached quickly when a machine uses multiple disks.

IDE Chipset Emulation

VirtualBox provides three IDE chipset emulation choices:

  • PIIX3
  • PIIX4
  • ICH6

Choose the chipset that best matches the guest's expected hardware and driver support. For a very old guest, the most broadly compatible option may be preferable. The guest's documentation or an existing VM configuration can guide the choice.

When a compatibility-oriented setup needs more IDE-style disk capacity, use a SATA controller in SATA IDE-compatibility mode where appropriate. This can provide additional attachment capacity while preserving a compatibility-oriented interface for the guest. Always verify that the guest supports the selected arrangement before moving the boot disk.

SATA and AHCI Controller

SATA, or Serial ATA, is the newer mainstream successor to IDE. AHCI, the Advanced Host Controller Interface, is the standard programming interface commonly associated with SATA controllers.

VirtualBox can attach up to 30 virtual storage devices to its SATA controller. This is substantially more than the four positions on an IDE controller, so SATA avoids consuming scarce IDE slots when a VM needs several disks.

SATA is generally a practical default for modern guest operating systems because they commonly include SATA or AHCI drivers and are designed for newer storage interfaces. It also provides an efficient model for managing multiple virtual disks. These advantages do not guarantee better results for an old guest that cannot load the required driver.

Physical SATA hardware supports adding or removing devices while a system is running when the hardware, operating system, and configuration support hot-plug operation. This physical behavior should not be confused with changing VirtualBox hardware configuration while a VM is running. In VirtualBox, controller and attachment changes should be made through the VM's storage configuration and according to the guest's hot-plug support.

For newly created VMs, VirtualBox normally creates a SATA controller and attaches the default virtual hard disk to it. This makes SATA a sensible starting point for a new modern guest.

SCSI Controller

SCSI, or Small Computer System Interface, is a storage connection standard historically used for hard disks, tape devices, and systems beyond commodity desktop hardware.

Traditional SCSI uses a shared bus. Devices can be daisy-chained along the bus, and each device must have a unique SCSI identifier so the controller can distinguish it from the others. In the VirtualBox model described here, a SCSI controller supports up to 15 storage devices.

VirtualBox provides two SCSI controller emulations:

  • BusLogic: suitable when the guest provides a BusLogic driver.
  • LSI Logic: suitable when the guest provides an LSI Logic driver.

Do not select between BusLogic and LSI Logic based only on the name or assumed performance. Guest-driver availability is the primary compatibility test. A guest that expects one emulation may not detect disks attached through the other.

SAS Controller

SAS means Serial Attached SCSI. It uses the SCSI command set while sending data over serial connections rather than the parallel connections associated with traditional SCSI.

A useful conceptual comparison is SAS-to-SCSI as SATA-to-IDE: each is a serial evolution of an older storage connection model intended to improve connection characteristics. The comparison is conceptual rather than an indication that the interfaces are interchangeable.

VirtualBox emulates SAS through the LSI Logic SAS controller. Up to eight devices can be attached to this emulated controller. SAS is most appropriate when a guest has a SAS-controller requirement or when a workload specifically needs that storage model. The guest must contain a compatible SAS driver.

Configuring Controllers in VirtualBox

Use the virtual machine's Settings window and open the Storage section. There you can add or remove controllers, choose a controller type, and attach virtual hard disks or optical media.

  1. Power off the VM before changing controller hardware unless the guest and the specific operation explicitly support hot-plug behavior.
  2. Open the VM's Storage settings.
  3. Review the existing controller family and its attached devices.
  4. Add or select the required controller.
  5. Choose an available port, slot, or device position.
  6. Attach the virtual disk image or optical medium.
  7. Confirm that the intended boot disk is attached to the expected controller.

For IDE, select PIIX3, PIIX4, or ICH6 and assign devices to the primary-master, primary-slave, secondary-master, or secondary-slave positions. For SATA, use the SATA controller and account for its 30-device capacity. For SCSI, select BusLogic or LSI Logic and stay within 15 devices. For SAS, use LSI Logic SAS and stay within eight devices.

Choosing a Controller

Controller Selection by Scenario

New modern VM — Recommended: SATA. Reason: modern guest support, the normal VirtualBox default, and room for multiple disks. Check: confirm the guest has SATA/AHCI support.

Legacy guest OS — Recommended: IDE/ATA. Reason: older guests often support IDE when they lack SATA or SCSI drivers. Check: select an appropriate IDE chipset and plan around the four slots.

VM migration or import — Recommended: match the source controller. Reason: the installed guest drivers and boot configuration may depend on it. Check: identify the source controller and reproduce the disk's controller and attachment position.

Many virtual disks — Recommended: SATA. Reason: it supports up to 30 devices and avoids exhausting IDE positions. Check: ensure the guest supports SATA/AHCI; use SATA IDE-compatibility mode when a compatibility-oriented setup requires it.

SCSI-dependent guest — Recommended: BusLogic or LSI Logic. Reason: the guest expects SCSI hardware. Check: select the emulation for which the guest has a driver and stay within 15 devices.

SAS-dependent guest — Recommended: LSI Logic SAS. Reason: the guest expects a SAS controller. Check: confirm SAS driver support and stay within eight devices.

Use this order of priorities: first match the guest's driver support, then preserve the existing configuration for migrated machines, then consider device count and workload requirements. For a new modern VM, SATA is generally appropriate. For an older guest, IDE may be required as a fallback.

Migration and Imported Virtual Machines

An imported VM should retain the controller type expected by its installed operating system. Before booting it, determine whether the source machine used IDE, SATA, SCSI, or SAS and which emulation was selected.

Then configure the equivalent VirtualBox controller and attach the imported disk at the expected controller and port. A disk image can be valid and undamaged yet still fail to boot if the guest has no driver for the new controller. The same is true if the disk is attached to a different controller or location than the guest expects.

Practical Examples

Creating a New Modern VM

Keep the default SATA controller, attach the primary virtual hard disk to it, and install the guest. SATA is a practical default because modern operating systems commonly support AHCI and because the controller leaves room for additional virtual disks.

Installing a Legacy Guest

Choose an IDE controller when the guest lacks SATA or SCSI support. Put the boot disk in a suitable IDE position. If a virtual CD/DVD drive is attached to the commonly preconfigured secondary-master position, remember that only the other three IDE positions remain available.

Adding Several Virtual Disks

Review the four IDE positions before adding disks. If the optical drive and existing disks consume all positions, add a SATA controller instead. If the guest requires an IDE-oriented compatibility arrangement, evaluate SATA IDE-compatibility mode and confirm driver support first.

Configuring SCSI or SAS Storage

For a SCSI-dependent guest, add a SCSI controller and select BusLogic or LSI Logic according to its installed driver. For a SAS-dependent guest, add LSI Logic SAS. Attach devices without exceeding the relevant 15-device SCSI or eight-device SAS limit.

Troubleshooting Controller Problems

The Guest Does Not Boot After a Controller Change

Likely causes include a missing driver for the new controller or a boot disk attached to a different controller or port.

  • Confirm the original controller family.
  • Restore the original controller when possible.
  • Verify the boot disk's controller and attachment location.
  • Use IDE for an older guest when SATA or SCSI support is unavailable.

The VM Cannot Accept Another IDE Disk

All four IDE positions may be occupied, or the optical drive may be using the commonly preconfigured secondary-master position. Review every IDE slot and attached device. Add a SATA controller when more capacity is needed, or evaluate SATA IDE-compatibility mode for a compatibility-oriented setup.

An Imported VM Sees No Disk

The imported disk may be attached to a different controller from the one used by the source VM, or the selected emulation may not match the guest's drivers. Identify the source controller, select the corresponding VirtualBox emulation, and attach the disk to the expected controller and port.

A SCSI or SAS Guest Cannot Detect Storage

Check whether the emulation matches the available driver. Use BusLogic or LSI Logic for SCSI as required by the guest, or LSI Logic SAS for a SAS requirement. Also check that the device count has not exceeded 15 for SCSI or eight for SAS.

Exam-Relevant Notes

  • VirtualBox presents emulated controllers to the guest; it does not expose the host's physical storage controller directly.
  • IDE has four attachment positions: primary master, primary slave, secondary master, and secondary slave.
  • PIIX3, PIIX4, and ICH6 are IDE chipset emulation choices.
  • The VirtualBox SATA controller supports up to 30 attached virtual storage devices.
  • SCSI uses unique device identifiers in its traditional shared-bus model and supports up to 15 devices here.
  • VirtualBox SCSI emulations are BusLogic and LSI Logic.
  • SAS means Serial Attached SCSI, uses the SCSI command set, is emulated as LSI Logic SAS, and supports up to eight devices.
  • A disk image format does not guarantee bootability after a controller change; guest-driver support and attachment location also matter.

Summary

In VirtualBox, a virtual disk is exposed to the guest through an emulated storage controller. IDE offers legacy compatibility but only four positions. SATA/AHCI is the usual choice for modern guests and supports up to 30 devices. SCSI supports BusLogic and LSI Logic emulations with up to 15 devices, while SAS uses LSI Logic SAS and supports up to eight. When creating or migrating a VM, match the controller to the guest's drivers and preserve the boot disk's expected attachment arrangement.

For related configuration guidance, see Hard Disk Controller.