Ubuntu – How are /dev/sda and /dev/sdb chosen

bootdual-bootgrub2system-installationwindows

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.

    From https://wiki.archlinux.org/index.php/Persistent_block_device_naming

    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 https://wiki.debian.org/Part-UUID

    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: https://help.ubuntu.com/community/UsingUUID

    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