Nomeação de HDD no Linux?


5

O Linux tenta dar uma unidade a mesma letra a cada vez?
Por exemplo, se era 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 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).

Respostas:


12

Não, o sd* os nomes 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 / UUIDs do sistema de arquivos; rótulos / UUIDs de partições (somente GPT); caminhos de anexos de disco; WWNs SCSI; e assim por diante.

Dê uma olhada /dev/disk:

┌ rain ~ 
┘ tree /dev/disk/
/dev/disk/
├── by-id  (ID baseada em hardware)  Ata ├── ata-SlimtypeDVD_A_DS8A5SH_012160166091 - & gt; ../../sr0
Ata ├── ata-ST9640320AS_5WX1ZH91 - & gt; ../../sda
Ata ├── ata-ST9640320AS_5WX1ZH91-part7 - & gt; ../../sda7
Mm ├── mmc-SD4GB_0x0054b5cf - & gt; ../../mmcblk0
Mm ├── mmc-SD4GB_0x0054b5cf-part1 - & gt; ../../mmcblk0p1
W ├── wwn-0x5000c5002f0e9ce1 - & gt; ../../sda
W ├── wwn-0x5000c5002f0e9ce1-part1 - & gt; ../../sda1
│ └──…
By── por rótulo  (nome codificado no cabeçalho do sistema de arquivos)  Key ├── keycard - & gt; ../../mmcblk0p1
Rain ├── raindows - & gt; ../../sda6
Rain ├── rainhome - & gt; ../../sda5
│ └──…
By── por-partlabel  (nome codificado na tabela de partições GPT)  Arch ├── Arch - & gt; ../../sda4
E ├── EFI - & gt; ../../sda1
Home ├── casa - & gt; ../../sda5
Swap ├── swap - & gt; ../../sda8
│ └──…
By── por-partuuid  (Codificado por UUID na tabela de partições GPT)  14420948-2cea-4de7-b042-40f67c618660 - & gt; ../../sda4
? 1c737f60-8667-4d1a-9c92-5f5caf69be60 - & gt; ../../sda3
267bbb83-0bb5-48b8-aa4c-ffe328328f5b - & gt; ../../sda5
│ └──…
By── por-uuid  (UUID codificado no cabeçalho do sistema de arquivos)  0── 0C5C17E25C17C57C - & gt; ../../sda7
    4── 413b42fe-77f7-41d0-8d40-a7578f70995d - & gt; ../../sda4
    4── 4b30e8db-563e-4947-8d41-f242d94a6d3a - & gt; ../../mmcblk0p1
    8594cc4c-9c42-436a-8723-9a0611b1f97d - & gt; ../../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 label e uuid Campos:

LABEL=arch_boot               /boot  ext4  rw,auto  0  1

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


Todos os meus discos permanentes são montados pelo UUID, ou via LVM (que usa o UUID do PV abaixo). Isso inclui / boot. Afinal, o que acontece se você conecta outro disco rígido de outro sistema Linux (o que você pode fazer em algum momento)? Em qualquer caso, você nunca deve contar com sd* nomes sendo consistentes.
Michael Hampton

Então eu poderia apenas usar um script de shell para olhar o UUID de um HDD e montá-lo em um certo ponto baseado em seu UUID, certo? EX: se uuid == xxxxxxxxxx então monte / dev / sdb / whatever / meu / mount / point / é
Billylegota

@Billylegota: Hã? Não. Você pode usar UUIDs diretamente em / etc / fstab. Eu até dei dois exemplos exatamente para isso. O que você precisa de um script de shell?
grawity

@grawity: Desculpe, não vi essa parte. Apenas vi a árvore de / dev / disk e disse: "parece um trabalho para bash"; D
Billylegota

Existe uma maneira de obter o disco de forma consistente em vez da partição? / dev / sda em vez de / dev / sda1?
sep332
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.