Dê uma olhada em /dev/disk/by-path/ , que essencialmente faz isso. A outra maneira é referenciá-lo pelo UUID ou Label, que é uma propriedade da partição e não do hardware. Se você fizer referência a discos pelo UUID, isso não será alterado, mesmo se você mover a unidade para um computador diferente.
$ ls /dev/disk/
by-id by-label by-path by-uuid
$ ls /dev/disk/by-path/
pci-0000:03:00.0-scsi-0:0:0:0 pci-0000:03:00.0-scsi-0:0:0:0-part2
pci-0000:03:00.0-scsi-0:0:0:0-part1 pci-0000:03:00.0-scsi-0:0:0:0-part5
Como você pode ver, isso identifica exclusivamente a unidade dependendo do caminho, incluindo a conexão de barramento. Esses arquivos são um link simbólico para o dispositivo real:
$ ls -la pci-0000\:03\:00.0-scsi-0\:0\:0\:0
lrwxrwxrwx 1 root root 9 Oct 18 09:08 pci-0000:03:00.0-scsi-0:0:0:0 -> ../../sda
Para identificar uma unidade, o utilitário lsblk é útil:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 8G 0 disk
├─sda1 8:1 0 7.6G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 383M 0 part [SWAP]
sr0 11:0 1 247M 0 rom
Para ver o UUID de um disco, você pode executar sudo lsblk -f . Isso mostrará o UUID, que você também encontrará em /dev/disk/by-uuid/ :
$ sudo lsblk -f
[...]
└─system-swap swap 73195006-1ae6-4d5f-87df-78cb52f48f15 [SWAP]
$ ls -la /dev/disk/by-uuid/73195006-1ae6-4d5f-87df-78cb52f48f15
lrwxrwxrwx 1 root root 10 Oct 20 17:33 /dev/disk/by-uuid/73195006-1ae6-4d5f-87df-78cb52f48f15 -> ../../dm-3
Isso também pode ser usado no fstab. Por exemplo:
UUID=f0a2eebe-1791-4c44-ab86-75ea81a82c43 /boot ext4 acl,user_xattr 1 2
montará a partição com esse UUID em / boot.