Boot – How /dev/sda and /dev/sdb Are Chosen


I am trying to install Windows 7 on /dev/sda but whatever drive I install Windows 7 on becomes /deb/sdb. I havent changed any boot priorties in the BIOS.

Could someone please help me understand how Ubuntu 12.04 chooses /dev/sda and /dev/sdb?

Best Answer

The designation /dev/sda and /dev/sdb can be arbitrary as you can see.


If your machine has more than one SATA, SCSI or IDE disk controller, the order in which their corresponding device nodes are added is arbitrary. This may result in device names like /dev/sda and /dev/sdb switching around on each boot, culminating in an unbootable system, kernel panic, or a block device disappearing. Persistent naming solves these issues.

and Debian

If you have more than one disk controller (IDE or especially SCSI/SATA), or even if you just have variable numbers of removable USB/firewire storage devices attached from day to day, the order in which they are detected may not be deterministic. The result is that device names like /dev/sda1 and /dev/sdb1 may switch around randomly on each boot. Persistent naming allows you not to worry about this at all.

For file systems it's best to use UUID (/dev/disk/by-uuid/) or labels (/dev/disk/by-label/). For raw drives or unformatted partitions you can use IDs (/dev/disk/by-id/).

To identify your disk/partition, use blkid

sudo blkid

The Ubuntu information is here:

It may be best to temporarily remove your windows hard drive while you install Ubuntu, then configure your windows partition(s) to mount post install. You can then select which OS to boot in your BIOS.

Related Question