Como montar a unidade correta toda vez que o Raspberry Pi é reinicializado?

13

Eu geralmente sei como montar discos rígidos em um sistema UNIX. Mas estou confuso com uma coisa. Diga que eu tenho disk #1e disk #2. Eu monto disk #1com sudo mount /dev/sda1 /mnt/drive. Como saberei que sda1isso será atribuído disk #1e não disk #2, especialmente depois que o Raspberry Pi for reiniciado? Em outras palavras, como posso ter sda1e sdb1atribuir ao disco nº 1 e nº 2, respectivamente, e impedir que eles sejam trocados entre si após a reinicialização?

StarShire
fonte
1
Essa é uma boa pergunta, porque em um sistema multidisco / dev / sda nem sempre é / dev / sda após uma reinicialização.
Octopus

Respostas:

16

As unidades de disco são diferenciadas por seu UUID (identificador universalmente exclusivo). Você pode encontrar o UUID de seus HDs com o comando ls -l /dev/disk/by-uuid/ Em seguida, você deve criar os pontos de montagem sudo mkdir /MOUNT/POINT1 e alterar as permissões deles. sudo chmod 775 /MOUNT/POINT1 Em seguida, adicione uma linha ao seu arquivo fstab (localizado em / etc / fstab) que se parece com:

UUID=BLAHBLAH12341234 /MOUNT/POINT1 ntfs-3g rw,defaults 0 0
UUID=12341234BLAHBLAH /MOUNT/POINT2 ext rw,defaults 0 0

É claro que você precisa alterá-lo de acordo com o seu sistema de arquivos, etc. Em seguida, salve o arquivo e reinicie e seus HDs serão montados automaticamente nos pontos de montagem especificados.

ios.id0
fonte
1
Como apontei na minha resposta, não são as unidades, mas as partições nas unidades que são identificadas por um UUID. (Uma diferença sutil.) Se você reformatar uma unidade, isso cria uma nova partição que recebe um novo UUID.
22414 Fred
O que você quer dizer com " / MOUNT / POINT1 "? Essa é a definição literal do ponto de montagem?
IgorGanapolsky
1
@IgorGanapolsky é apenas o nome da pasta que você deseja montar nas partições. Escolha como quiser.
precisa saber é o seguinte
Melhor do que apenas reiniciar é executar sudo mount -ae ver se há algum erro. Se houver, pode levar a um sistema que não inicializa.
Jan
7

Esta é estritamente uma pergunta genérica do Linux, mas a resposta é, de qualquer maneira, a partição de UUIDs (Universally Unique Identifiers). Como o nome diz na lata, quando uma partição é formatada, é gerado um ID exclusivo aleatório que a descreve. Você pode usar isso para montar para garantir que você sempre obtenha a partição correta. O blkidcomando fornece uma lista de UUIDs para dispositivos conectados atualmente, por exemplo:

/dev/sda4: UUID="2d02d277-a79c-4818-adc7-c37484e17c6a" TYPE="ext3" 

Isso corresponderá a um dispositivo / dev, neste caso /dev/disk/by-uuid/2d02d277-a79c-4818-adc7-c37484e17c6a. Você pode usar isso para montar. Você pode usar uma notação um pouco menor com in /etc/fstabpara especificar que uma unidade deve ser montada:

UUID=2d02d277-a79c-4818-adc7-c37484e17c6a /mnt/backup ext3 defaults 0 0

Veja aqui para mais detalhes ou veja os resultados da pesquisa UUID aqui .

Fred
fonte
1
Quando digito blkid , não recebo nada!
IgorGanapolsky
@IgorGanapolsky Try sudo blkid. Aparentemente, blkidrequer privilégios de root, mas em um Raspberry Pi, por padrão, você efetuará login como usuário não privilegiado pi.
herzbube
0

Obrigado pela solução alternativa gabriel, mesmo problema aqui (Raspberry 2). Mas eu poderia pular os 30 segundos no momento em que o rc.local começou a funcionar, o dispositivo foi encontrado.

sudo mount -a

no /etc/rc.local fez o trabalho.

Dirk
fonte
-2

Bem, verdadeiro e não verdadeiro No meu caso, o RPI v2 4 core, algo mudou desde a versão v1, como tal: editar o fstab para montar automaticamente o disco rígido externo no início não funciona, não usa uuid, não usa / dev / sda1

o problema é que eu tenho que esperar 30 segundos após a inicialização completa para montar meu disco rígido externo, o estranho é que, no pendrive, o fstab funciona perfeitamente. Então, eu fiz um script para dormir 30; sudo mount -a para executar as coisas.

aqui está / etc / fstab

pi@raspberrypi ~ $ cat /etc/fstab 
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that

E adicionou a última linha

UUID=3d81d9e2-7d1b-4015-8c2c-29ec0875f762 /media/250_gb ext4 defaults 0 0

Aqui está a minha extensão /etc/rc.local

# Begin all drives remount
clear
echo "Please wait 30 seconsds in order to remount all missing drives !!!"
for x in `seq 1 30`
do
echo -n "."
sleep 1
done
sudo mount -a
sudo service minidlna force-reload

# End drives remount 

exit 0

Poderia ser algo com o adaptador usb jmicron, sem 30 segundos de espera, ele diz que o dispositivo não está presente, mesmo que o lsusb esteja correto.

Aqui estão dois dos meus instantâneos da TV Antes insira a descrição da imagem aqui depois insira a descrição da imagem aqui

[email protected]

Gabriel
fonte
1
A pergunta fala sobre a encomenda do disco e não sobre o dispositivo não disponível.
Mpromonet 18/03