Como fazer o disco rígido USB externo montar corretamente para o script de backup com o udisks2

1

Estou executando o Kubuntu 12.04 com o KDE 4.11.1. Eu tenho um disco rígido de 2TB montado em um gabinete USB externo. O rótulo da unidade é backup. A unidade não é montada automaticamente quando eu inicializo. Há duas maneiras de montar:

  1. Eu tenho uma entrada cron do root que montará a unidade se ela ainda não estiver montada. Isso faz parte do meu script de backup noturno.
  2. Como usuário normal, posso clicar no rótulo da unidade no painel Lugares do Dolphin e a unidade será montada.

Anteriormente, a unidade era montada em / media / Backup em ambos casos.

Eu criei manualmente o diretório / media / Backup anteriormente e ele ainda existe. O diretório é necessário para que meu script de backup possa montar esse disco antes que o backup seja executado. Como eu disse, isso estava funcionando como planejado antes de algumas atualizações recentes do sistema. Eu quero que a unidade monte no mesmo local em ambas as situações acima.

No entanto, com atualizações recentes do sistema (aparentemente a pilha LTS Raring HWE) a unidade é montada em / media / myusername / Backup do Dolphin se eu montá-lo no Dolphin como um usuário normal. Ele é montado como / media / root / Backup se eu o montar como usuário root.

Existem várias maneiras de esse novo esquema do Ubuntu falhar em meu cenário. Na verdade, está fracassando e meus backups noturnos não estão mais acontecendo. Eu não vou listar todas as maneiras que vi falhar na minha solução de problemas até agora. Eu simplesmente gostaria de restaurar o comportamento anterior para este disco ou conseguir algo que funcione de forma confiável sob o novo sistema. Especificamente, o que eu gostaria de ver é:

  1. a unidade não está montada na inicialização e não está montada, a menos que seja necessária.
  2. seja montado pelo meu usuário normal via Dolphin ou por meio de um script executado como root, a unidade é sempre montada no mesmo local (assim, meu script de backup pode encontrá-lo).
  3. se a unidade ainda não tiver sido montada (por exemplo, via Dolphin), meu script de backup (executado como root) poderá montá-lo no local pretendido e, em seguida, continuar com o backup.
  4. permissões de arquivo em arquivos e diretórios na unidade montada funcionam conforme o esperado

Aqui está tudo o que eu precisava no meu crontab de raiz anteriormente. Eu gostaria de fazer isso funcionar novamente.

00 03 * * * mount -L Backup /media/Backup >> /var/log/backup.log
05 03 * * * /opt/storeBackup/bin/storeBackup.pl -f /configfile

Eu prefiro não alterar meu comportamento padrão em todo o sistema. Portanto, esta solução não parece ideal: link (e eu ainda não sei se eu tenho a versão do udisk que apoiaria essa solução).

Gostaria de receber comentários sobre essa possível solução: link

    
por MountainX 29.08.2013 / 01:56

4 respostas

1

Eu dei esta resposta , que pode ser a melhor abordagem. No entanto, há também uma solução mais simples baseada no novo comportamento padrão do udisks2. A mudança do Ubuntu do udisks1 para o udisks2 foi o que causou inicialmente o meu problema. Em vez de reverter para o comportamento do udisks1, encontrei uma maneira de usar o novo comportamento padrão a meu favor.

A chave para a solução é que ambas das seguintes montagens (para o mesmo dispositivo) podem coexistir:

  • / media / myusername / Backup
  • / media / root / Backup

Portanto, se eu alterar meus scripts de backup para usar /media/root/Backup e sempre montar o dispositivo nesse local antes do backup, meu problema será resolvido. Eu posso continuar usando o Dolphin da maneira que eu faço agora e posso viver com o local de montagem padrão (não-root) de /media/myusername/Backup . Eles não parecem entrar em conflito um com o outro.

Eu estava me esforçando para evitar ter duas montagens para um dispositivo, mas depois de testar essa opção, acho que parece funcionar bem. Isso resolve os problemas de backup que eu estava vendo.

A menos que alguém saiba de problemas desta abordagem, pode ser a minha abordagem preferida porque não altera o novo comportamento padrão, não depende de nenhum script (que sempre requer manutenção ao longo do tempo) e garante que meu backup não falhará devido ao dispositivo não estar montado.

    
por MountainX 26.09.2013 / 17:40
0

Parece que você tem uma pasta de montagem que não foi excluída corretamente. Com o drive desconectado, execute este comando no terminal:

sudo rmdir / media / Backup

Na próxima vez que você conectar seu disco rígido externo, ele deverá ser montado no novo local. Observe que as versões mais recentes do Ubuntu serão montadas em / media / username / Backup em vez de / media / Backup

    
por user159726 29.08.2013 / 04:15
0

você pode adicionar uma entrada para o disco rígido / partições em /etc/fstab , então ele sempre será montado conforme necessário.

Para mais informações, consulte esta documentação .

    
por bikram990 26.09.2013 / 07:26
0

Acho que a melhor abordagem pode ser esse script originado de uma discussão sobre Superusuário: link

Eu gosto dessa abordagem porque ela foi depurada e testada bastante extensivamente (e é conhecida por funcionar na versão do Ubuntu que estou executando).

Além disso, compartilho o sentimento do questionador original no SuperUser:

  

Eu não quero ter que inserir todos os dados no fstab, parcialmente porque é tedioso e chato, mas principalmente porque eu não posso prever o que eu vou estar plugando nele ou como as partições irão mudar no futuro .

Aqui está o arquivo leia-me para o conjunto de scripts:

Montar e desmontar automaticamente discos usb com base em rótulos de disco

Esses scripts são basicamente extraídos de várias respostas no StackOverflow. A informação foi espalhada por várias respostas, e algumas estavam um pouco desatualizadas, então eu tentei compilar todas as informações e colocá-las aqui .

Os scripts foram encontrados trabalhando no Ubuntu 10.10 e 12.04.2 LTS Se eles não funcionarem para você, tente ver se há dicas na discussão original do SO (veja abaixo). Você pode me passar essa informação, e talvez eu a integre em um patch específico.

Todos os scripts devem ser colocados em / usr / local / sbin
As regras do udev devem ser colocadas em /etc/udev/rules.d /

Para referência, todas as informações foram extraídas de aqui .

    
por MountainX 26.09.2013 / 17:29