Aproveite o udev para usar o mesmo nome de dispositivo
Em vez de listar UUIDs em /etc/fstab
, você poderia listar um nome de dispositivo e configurar o udev para usar o mesmo nome de dispositivo para todos esses dispositivos. Coloque uma linha como essa em um arquivo em /etc/udev/rules.d
:
KERNEL=="sd*", ATTRS{serial}=="123456798", NAME="one_of_my_disks%n"
ou
KERNEL=="sd*", ATTRS{serial}=="123456798", SYMLINK+="one_of_my_disks%n"
Execute udevadm info -a -n sdb
para ver quais atributos do disco (como ATTRS{serial}=="123456798"
no exemplo acima) você pode comparar. Observe que você só pode usar vários atributos, mas todos eles precisam ser da mesma seção.
Em seguida, em /etc/fstab
, use /dev/one_of_my_disks
como o dispositivo de bloco.
Se seus discos tiverem layouts diferentes, isso é mais complicado. Você pode usar auto
para o tipo de sistema de arquivos; isso deve funcionar mais do tipo. Se você precisar de diferentes números de partição ou opções de montagem, no entanto, você precisará de diferentes entradas fstab. Você pode contornar isso editando fstab
rapidamente através de um script chamado pela entrada do udev, que será executada quando o disco for detectado pelo sistema. Por exemplo, use a seguinte regra do udev:
KERNEL=="sd*", ATTRS{serial}=="123456798", ENV{FSTAB4}="compress=lzo", NAME="one_of_my_disks%n", RUN+="/usr/local/sbin/fstab_update_my_disk"
e o seguinte script fstab_update_my_disk
(não testado):
#!/bin/sh
/usr/bin/sed -i -e '/^\/dev\/one_of_my_disks1/ s/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*[ \t][ \t]*\)[^ \t][^ \t]*/'"$FSTAB4"'/'
Aproveite o udev para não se importar com o ponto de montagem
Outra abordagem seria manter entradas fstab separadas, com nomes de dispositivos distintos e pontos de montagem distintos. Mas use um gancho udev RUN
para atualizar um link simbólico que aponta para o ponto de montagem.
KERNEL=="sd*", ATTRS{serial}=="123456798", RUN+="/bin/ln -snf /media/disk1 /media/one_of_my_disks"