Os discos sda e sdb se invertem randomicamente após cada reboot do sistema

O problema é fácil de se descrever: a cada reboot da máquina (utilizo o S.O. Debian 11 Bullseye Testing), é possível que o disco, com suas devidas partições, seja reposicionado de sda para sdb de forma randômica.
É mais possível de acontecer quando restauro um snapshot pelo aplicativo TimeShift, mas em reboots normais também é comum.
Como posso resolver essas inversões periódicas de discos?

Note que utilize o meu sistema com /home separado no meu HD em sdb, enquanto a raíz e swap do sistema são deixados no SSD em sda.

Isso é algo que infelizmente pode acontecer quando dois dispositivos compartilham a mesma conexão (SATA, no caso) e tem pouco (se alguma coisa) a ser fazer a respeito que não envolva mudar o arranjo de componentes no PC.

Se o único problema for a /home e o / se trocando, é possível ver o UUID das partições (com lsblk -o name,uuid no terminal) e usar esses UUIDs em vez do /dev/sdXY no /etc/fstab.

4 curtidas

O ideal mesmo é não usar identificação de disco com sda/sdb/etc para montagem de partições no boot. Mesmo que elas pareçam estáveis, pode ser que ao adicionar um outro disco ou um pendrive durante a inicialização do sistema tudo mude.

Há várias alternativas para especificar discos nos seus scripts ou no fstab. No fstab o mais comum é usar a informação de UUID da partição. Alguns casos raros de especificação de partição via parâmetros do kernel precisam da especificação do PARTUUID pois a informação do sistema de arquivos pode não estar disponível na inicialização do kernel.

Outra opção é usar o ponto de montagem via /dev/disk/ onde se podem encontrar os atuais discos com seus nomes ou identificação de partição. Essas informações só mudarão se vc alterar o particionamento do disco.

Uma terceira opção super elegante é criar uma regra do udev para o seu disco, assim o kernel vai enxergá-lo sempre com um nome que vc escolher, exemplo: Criar uma regra pro disco de sistema sempre aparecer em /dev/root. Claro que essa também é a mais complicada.

2 curtidas

Na realidade, apenas distros a base do Debian acontece esse problema. Com o LMDE foi a mesma coisa.

Mesmo durante a instalação pela interface gráfica avançada do netinstall, já teve muitas vezes que, ao particionar os discos, ambos se encontraram invertidos da forma convencional (ou seja, minha forma: SSD de 120 GB no sda; HD de 500 GB no sdb.

Em distros a base Ubuntu (como meu famigerado Mint), nunca ocorreu de inverter os discos nem durante a instalação, nem na utilização do sistema.

Observação: utilizo /home no meu HD e / no meu SSD. Mas, como já mencionei, a inversão acontece, às vezes, mesmo antes do particionamento no netinstall.

E cara, isso me frustra demais. Eu queria deixar o Debian Stable como uma das distros instaladas no meu pc, pesquisando formas de deixar fixo o SSD em sda e fiquei por uma semana com ele como principal, tentando me acostumar inclusive com o Gnome. Bom, essa última parte eu desisti mesmo, mas não desisti do Debian (fora o fato de eu ter voltado pro Mint).

O fato é que o kernel Linux não dá garantia da ordem em que os dispositivos são reconhecidos. Pelo contrário, recomenda-se o uso de UUIDs ou PARTUUIDs, que estão realmente atrelados às partições e não vão mudar de modo imprevisível com mudanças de versão no kernel ou oscilações de hardware.

Não são informações difíceis de se obter, basta rodar, por exemplo:

$ blkid /dev/sda2
/dev/sda2: LABEL="Linux" UUID="d623cd59-3153-4435-afff-358ae6002e45" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="system" PARTUUID="ee9324dd-a423-4ee9-9c37-81962e9188a8"

E fazer a troca no fstab, de

/dev/sda2 / [...]

por

UUID=d623cd59-3153-4435-afff-358ae6002e45 / [...]

(só remover as aspas).

Se o instalador do Debian seguir o padrão de distros modernas, a sua escolha de /dev/sda ou /dev/sdb durante a instalação é convertida automaticamente para UUIDs para isso não te afetar durante a utilização (e se ele não fizer, é lamentável).