Como evitar que o / sda / sdb mude entre as botas?

3

Vou instalar o Gentoo Linux em um hardware antigo, que tem discos rígidos IDE e SATA. Eu tenho dois discos rígidos IDE e um SATA conectados e planejo fazer RAID neles.

No entanto, noto um problema: o disco rígido mapeado para / dev / sda muda a cada inicialização!

Eu estava procurando por respostas da Internet. E eu achei Nomes de dispositivos persistentes poderia ser uma solução. No entanto, estou preocupado com problemas de compatibilidade em todo o sistema? Além disso, é bastante inconveniente (porque os nomes são bem longos) a menos que eu possa usar /dev/disk/by-label . Mas parece que by-label não pode se referir a /dev/sda e /dev/sdb - somente /dev/sda1 é possível. Além disso, para meu hardware antigo que usa BIOS, eu acho eu só posso usar MBR, mas não GPT . Como alterar os rótulos de disco no ambiente MBR?

Por outro lado, a solução ideal em minha mente seria, o /dev/sda é mapeado para o mesmo disco rígido em cada inicialização. Imaginário, isso pode ser conseguido salvando um arquivo chamado "bootmap" no disco rígido. E "/ sda" é escrito no arquivo "bootmap". Durante a inicialização do sistema, se encontrar "/ sda" dentro de "bootmap", a unidade será mapeada para /dev/sda . Se encontrar "/ sdb", mapeia para /dev/sdb . E assim por diante. (Mas eu sei que provavelmente não é tão ideal.)

Então, como evitar o mapeamento de /dev/sda de alterações de inicialização para inicialização?

Como alternativa, a maneira de editar o rótulo também seria interessante. - dado que não terá problemas de compatibilidade em qualquer lugar.

(PS - de qualquer forma, ainda não existe uma solução na Internet).

    
por midnite 05.05.2016 / 16:34

1 resposta

4

A maioria dos sistemas de arquivos tem UUIDs exclusivos e possui rótulos que você pode definir com valores distintos. Estes permitem que você se refira ao volume que contém o sistema de arquivos através de /dev/disk/by-uuid ou /dev/disk/by-label . Outros tipos de volumes (RAID, LVM, etc.) geralmente têm um nome também. Os volumes RAID e LVM são montados com base em identificadores exclusivos nos volumes físicos, independentemente de como o volume está conectado. Portanto, é incomum precisar se referir a um disco como tal.

Se você realmente precisa acessar um disco com base na maneira como está conectado, use /dev/disk/by-id . As entradas estão no formato BUS-SERIAL ou BUS-NAME-SERIAL . Todos os subdiretórios /dev/disk/ são mantidos por udev , a propósito, especificamente o regras de armazenamento persistentes .

Outra solução é criar seus próprios links simbólicos em /dev . Você pode escrever regras do udev para fazer isso. Adicione um arquivo /etc/udev/rules.d/50-local-persistent-disks.rules contendo regras como

SUBSYSTEM=="block", ATTRS{model}=="Yoyodine HD9001", \
  ATTRS{serial}=="123-456-789", \
  SYMLINK+="myfancyname"

Execute udevadm info -a /dev/sda para ver quais …==… padrões você pode usar. Se você usa vários padrões, eles precisam ser do mesmo bloco de saída, você não pode misturar padrões de diferentes dispositivos pai.

    
por 06.05.2016 / 03:20