Script para “remontar” uma partição (umount then mount)

3

Estou fazendo algumas experiências com NTFS (-3G) e fstab. Para cada alteração que faço para o fstab, preciso emitir:

sudo umount /mountpoint
sudo mount /mountpoint

Para verificar os resultados. Como estou fazendo muitos testes, fica realmente irritante emitir o combo de umount / mount todas as vezes.

Existe alguma maneira de combinar esses dois comandos em um único script remount ? Já existe algum interruptor para montar que faça isso?

  • estou usando o Ubuntu 10.10
  • Todos os parâmetros de linha de comando passados para o script devem ser "redefinidos" para o comando mount (para que eu possa usar -a , -t type , etc)
  • De preferência, somente o parâmetro last deve ser passado para umount
por MestreLion 16.06.2011 / 19:54

4 respostas

6

No seu shell (assumindo o bash ou outro shell compatível), execute

function remount() { unmount "$1" && mount "$1"; }

agora, sempre que você executar remount /whatever , ele fará uma desmontagem e, em seguida, uma montagem.
Isso irá expirar se você fechar o seu shell. Então, se você quiser persistir, coloque-o em seu .bashrc, .profile ou o que for aplicável ao seu caso.

    
por 16.06.2011 / 20:09
3

mount <something> -o remount,any_additional_options

Mas isso não funcionará se você precisar alterar o tipo de fs (por exemplo, de ntfs para ntfs-3g)

    
por 16.06.2011 / 20:10
1

Você sabe que você pode encadear quaisquer dois comandos juntos na linha de comando usando um ; para conectá-los? Isso torna as coisas que você faz em pares realmente fáceis de executar a partir do histórico na linha de comando.

umount /path ; mount /path

Você pode considerar o uso de um operador AND para conectá-los, de modo que a montagem seja executada apenas se umount for bem-sucedida, assim:

umount /path && mount /path

Se você quiser, pode até adicionar seu editor lá assim:

umount / path; vim / etc / fstab; monte / caminho

A unidade desmontará, você verá a fstab e, quando sair do editor, ela será montada novamente.

Além disso, se você precisar de uma solução mais genérica para vários caminhos, o sugestão de uma função é boa. Além disso, qualquer série de comandos no unix pode ser transformada em um script. Basta salvar um arquivo de texto como este:

#!/bin/bash
umount /path
mount /path

Em seguida, defina como executável:

chmod +x filename

execute-o assim:

./filename
    
por 16.06.2011 / 22:45
1

Que tal isso (não testado):

function remount() {
  eval last=\$$#
  umount "$last" &&
  mount "$@"
}

Você pode simplesmente copiar o código no shell ou anexá-lo ao seu .bashrc

    
por 17.06.2011 / 01:12