Nome do HDD no Linux?

5

O Linux tenta dar uma letra à unidade sempre da mesma forma?
Por exemplo, se foi para conectar duas unidades ao meu computador, em seguida, desconectá-los e reconectá-los na ordem inversa seria sdb e sdc correspondem às mesmas unidades físicas?

Isso é o que eu quero:

First:  
    Plug in HDD A, which becomes sdb.
    Plug in HDD B, which becomes sdc.


Then:
    Plug in HDD B, which becomes sdc.
    Plug in HDD A, which becomes sdb.

A questão é que o Linux faz isso automaticamente? Se não como eu faria algo assim? (Eu quero ter três unidades que podem ser inicializadas em qualquer ordem, mas ainda montadas no mesmo ponto).

    
por Billylegota 27.07.2015 / 21:37

1 resposta

12

Não, os nomes sd* são atribuídos sequencialmente, com base em qual disco foi detectado primeiro.

Se você precisar de um nome persistente, o udev já os fornece com base em várias propriedades, como rótulos de sistema de arquivos / UUIDs; rótulos / UUIDs de partições (somente GPT); caminhos de anexos de disco; WWNs SCSI; e assim por diante.

Dê uma olhada em /dev/disk :

┌ rain ~ 
┘ tree /dev/disk/
/dev/disk/
├── by-id (hardware-based ID)
│   ├── ata-SlimtypeDVD_A_DS8A5SH_012160166091 -> ../../sr0
│   ├── ata-ST9640320AS_5WX1ZH91 -> ../../sda
│   ├── ata-ST9640320AS_5WX1ZH91-part7 -> ../../sda7
│   ├── mmc-SD4GB_0x0054b5cf -> ../../mmcblk0
│   ├── mmc-SD4GB_0x0054b5cf-part1 -> ../../mmcblk0p1
│   ├── wwn-0x5000c5002f0e9ce1 -> ../../sda
│   ├── wwn-0x5000c5002f0e9ce1-part1 -> ../../sda1
│   └── …
├── by-label (name encoded in filesystem header)
│   ├── keycard -> ../../mmcblk0p1
│   ├── raindows -> ../../sda6
│   ├── rainhome -> ../../sda5
│   └── …
├── by-partlabel (name encoded in GPT partition table)
│   ├── Arch -> ../../sda4
│   ├── EFI -> ../../sda1
│   ├── home -> ../../sda5
│   ├── swap -> ../../sda8
│   └── …
├── by-partuuid (UUID encoded in GPT partition table)
│   ├── 14420948-2cea-4de7-b042-40f67c618660 -> ../../sda4
│   ├── 1c737f60-8667-4d1a-9c92-5f5caf69be60 -> ../../sda3
│   ├── 267bbb83-0bb5-48b8-aa4c-ffe328328f5b -> ../../sda5
│   └── …
└── by-uuid (UUID encoded in filesystem header)
    ├── 0C5C17E25C17C57C -> ../../sda7
    ├── 413b42fe-77f7-41d0-8d40-a7578f70995d -> ../../sda4
    ├── 4b30e8db-563e-4947-8d41-f242d94a6d3a -> ../../mmcblk0p1
    ├── 8594cc4c-9c42-436a-8723-9a0611b1f97d -> ../../sda5
    └── …

Você pode usá-los como tal:

/dev/disk/by-label/arch_boot  /boot  ext4  rw,auto  0  1

No fstab, uma sintaxe alternativa também funciona para os campos label e uuid :

LABEL=arch_boot               /boot  ext4  rw,auto  0  1

Nota: Em algumas distribuições Linux mais antigas, várias regras do udev tentam tornar os nomes sd* persistentes. Mas não pode funcionar de forma confiável; muitas vezes o "renomear" falha porque outro disco foi atribuído o nome desejado. Esta função foi removida em versões posteriores do udev. Não confie nos nomes sd* sendo persistentes, mesmo que pareçam ser.

    
por 27.07.2015 / 21:42