一些背景…
我认为这应该是一个通用的Linux内核(或内核模块)相关的问题,但我面临的问题,同时预安装debian的自动安装。
每次从usb磁盘启动安装程序,usb磁盘变成/ dev / sda,但是我使用的预置文件假定第一个硬盘(在这种情况下是sata)应该是/ dev / sda。 我使用相同的系统进行pxenetworking安装,我宁愿保持一致。 我也担心,如果我写了一个preseedconfiguration,假设第一个磁盘是sdb,而不是由于某种原因,它可能不是在某个时刻。
我已经尝试写udev规则,将usb磁盘的设备名称更改为“INSTALLOMEDIA”似乎工作,但它不会导致SATA磁盘启动在sda,他们仍然在sdb启动。
我的问题
什么决定了磁盘被发现和命名的顺序?
什么,如果有的话,我可以做什么来控制这个?
如果我不能做任何事情来控制它,那么从USB引导时可以安全地假设USB磁盘可以或多或less地保证是sda,并且第一个SATA磁盘将总是sdb?
这个问题的最可靠的答案,我知道,是使用udev可以为您创build的更新的符号链接。 Udev列举了磁盘驱动器,并用设备创build了几棵树 – 为你解释它们是什么types的设备。
这位于/ dev / disk。
你有,通过path:
/dev/disk/by-path/pci-0000:00:1a.0-usb-0:1.5:1.0-scsi-0:0:0:0-part1 /dev/disk/by-path/pci-0000:00:1a.0-usb-0:1.5:1.0-scsi-0:0:0:0 /dev/disk/by-path/pci-0000:06:00.0-scsi-0:0:0:0 /dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0-part2 /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part2 /dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0-part1 /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part1 /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 /dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0
这清楚地告诉你,如果该设备是一个USB设备,例如。
另一种select是创build自己的符号链接(甚至是设备文件),如果在实际需要访问设备之前可以运行某种脚本的话。 就像是
#!/bin/sh for i in /dev/sd? ; do if detect installation drive somehow ; then ln -s $i /dev/install ; fi ; done ;
作为最后的解决scheme,您可以在/ dev中“交换”sda,sdb,…设备文件,但是我会尽力避免使用这个解决scheme,因为这可能会带来很多新问题。