/dev/sda和/dev/sdb是如何选择的?

我正在尝试在/dev/sda上安装Windows 7,但无论我在哪个驱动器上安装Windows 7,它都变成了/dev/sdb。我没有在BIOS中更改任何启动优先级。
请问有人可以帮助我理解Ubuntu 12.04是如何选择/dev/sda和/dev/sdb的吗?
2个回答

/dev/sda和/dev/sdb的指定可以是任意的,正如你所看到的。
来自于https://wiki.archlinux.org/index.php/Persistent_block_device_naming 如果你的计算机有多个SATA、SCSI或IDE磁盘控制器,它们对应的设备节点添加的顺序是随机的。这可能导致每次启动时/dev/sda和/dev/sdb等设备名称互换,最终导致无法启动的系统、内核恐慌或块设备消失。持久命名解决了这些问题。
以及Debianhttps://wiki.debian.org/Part-UUID 如果你有多个磁盘控制器(IDE或特别是SCSI/SATA),甚至只是每天连接不同数量的可移动USB/firewire存储设备,它们被检测到的顺序可能是不确定的。结果是每次启动时/dev/sda1和/dev/sdb1等设备名称可能会随机切换。持久命名使你完全不必担心这个问题。
对于文件系统,最好使用UUID(/dev/disk/by-uuid/)或标签(/dev/disk/by-label/)。对于原始驱动器或未格式化的分区,可以使用ID(/dev/disk/by-id/)。
要识别您的磁盘/分区,请使用blkid命令。
sudo blkid

Ubuntu的相关信息在这里:https://help.ubuntu.com/community/UsingUUID 在安装Ubuntu时,最好暂时移除Windows硬盘,然后在安装后配置Windows分区以进行挂载。然后您可以在BIOS中选择要启动的操作系统。

抱歉,很多东西我都不太懂 :) 我正在尝试在sda上安装Windows,在sdb上安装Ubuntu,因为如果Windows安装在sdb上,它将无法正确休眠(Windows 7必须是第一个磁盘):http://www.linuxbsdos.com/2012/07/23/dual-boot-ubuntu-12-04-and-windows-7-on-a-computer-with-2-hard-drives/ - user997112
如果你在使用Windows时遇到问题,最好在Stack Exchange上提问一下 ;) - Panther
1在我的系统上,blkid 没有返回任何结果,但是使用 sudo blkid 命令可以得到所需的磁盘列表,包括 UUID 和标签值。 - Jim DeLaHunt

我根据我的研究相信,驱动器的指定来自于BIOS。如果您可以在BIOS中修改驱动器设置,将驱动器从主要更改为次要,那么您可以将sda(主要)更改为sdb(次要)。拥有具备此功能的Award BIOS的人可以确认这一点。我的安装是在Satellite U845t上进行的,无法在BIOS中修改该设置。最终,除非读写速度差异显著,否则您的安装是在主要驱动器还是次要驱动器上并不重要。我在/sdb上进行了干净安装,使用我的SSD驱动器,并将我的盘片驱动器用于/sda上的存储。
我目前在/dev/sdb(SSD)上运行Ubuntu 20.04,/home挂载在/dev/sda(HDD)上。您可以使用终端修改/home挂载点,但如果您进行干净安装,请选择“其他选项”,然后选择所需分区上的安装挂载点。