1. Existe três tipos de montagem diferentes quais sejam:

    1. mount – Comando usado para monta um sistema de arquivos.
    2. /etc/fstab – Colocar o ponto de montagem para montar automaticamente ao inicializar o sistema.
    3. SystemD – O queridinho, colocar o ponto de montagem para montar automaticamente ao inicializar o sistema de forma elegante.
  2. Comando Mount

    1. O comando mount é usado para montar pastas compartilhada de uma máquina ou de um servidor da rede

      1. Se o compartilhamento for samba do windows, usa-se o comando abaixo:

        
           # mount -t cifs <ORIGEM> <DESTINO> -o user=<USUARIO>,password=<SENHA>,domain=<DOMINIO>
           mount -t cifs //192.168.15.3/publico /mnt/backup/ -o user=paulosspacheco,password=1234,domain=itms
        
        
      2. Se o compartilhamento for NFS do linux, usa-se o comando abaixo:

        
            # Criar a pasta ~/LnxMint_Server_home no cliente para compartilhada a pasta /home do servidor         
            sudo mkdir -p ~/LnxMint_Server_Home
        
            # sudo mount host_ip:/home ~/LnxMint_Server_Home
            # Exemplo para o ip 192.168.15.3: 
            sudo mount 192.168.15.3:/home ~/LnxMint_Server_Home
        
        
        
      3. Notas:

        1. mount: Comando utilizado para realizar montagens no Linux.
        2. -t: Tipo de montagem. No nosso exemplo para acessar as pastas compartilhadas no Windows, utilizamos o tipo cifs.
        3. origem: O caminho de origem do compartilhamento de rede. Ex: //maquina01/publico ou //192.168.50.3/publico.
        4. destino: O ponto de montagem onde será montado o compartilhamento Ex: /mnt/backup.
        5. -o: Parâmetro utilizado para passar outras opções ao comando mount como por exemplo:
          1. user: Nome do usuário do domínio que tem permissão de leitura e gravação na pasta de origem compartilhada.
          2. password: Senha do usuário informado.
    2. Exemplo de script para montar uma pasta compartilhada que esteja em uma máquina VirtualBox:

      1. Script exec3.sh

           #!/bin/bash
           # Arquivo: ./exec3.sh
        
           # Este comando executa duas ações condicionalmente, onde a segundo só é executada se a primeira foi bem sucedida.
           # %1 recebe ação 1
           # %2 recebe o tempo em que deve esperar para executar a ção 2.
           # %3 recebe a ação 2 e só é executado se a ção 1 for bem sucedida.
        
           echo "Executando o parâmetro 1 = $1"
           echo "--------------------------------------------------------------"
        
           $1 & # executa parametro e não espera.  
        
           echo "Executando o parâmetro 2 = $2"
           echo "--------------------------------------------------------------"
        
           echo "Aguardando $2 segundos esperando a execução do parâmetro $1.."
           echo "--------------------------------------------------------------"
        
           sleep "$2" # aguarda o tempo informado no parametro 2
           echo "--------------------------------------------------------------"
        
           echo "Executando o parâmetro 3 = $3"
           echo "--------------------------------------------------------------"
        
           $3 #> /dev/null # excuta o terceiro parâmentro
        
           st=$?
        
           #Se houver erro na execução do primeiro parâmetro então executa do terceiro parâmetro
           while [ $st -ne 0 ]  
           do
              echo "Loop while Status = $st"
              echo "--------------------------------------------------------------"
              sleep 5
              $3 #s> /dev/null  #excuta o terceiro parâmentro
              st=$?
           done
        
           echo "Fim do script"
           echo "Status = $st"
           echo "--------------------------------------------------------------"
        
           exit $st # retorna o numero do erro
        
        
        
      2. Script mount-LnxMint_Server_Home.sh

        
           #!/bin/bash
           # Arquivo: ./mount-LnxMint_Server_Home.sh
        
           #set -x # habilita debug
           #set +x # desabilita debug
        
           echo "Executa a maquina virtual LnxMint_Server e monta a pasta LnxMint_Server_Home"
           echo "********************************************************************************."
        
           echo "Compartilhando pastas <LnxMint_Server_Home> da máquina virtual <lnxmint-server>"
           echo "*******************************************************************************"
        
           echo "Iniciando Máquina Virtual: <lnxmint-server>"
           echo "*******************************************************************************"
        
           cd ~/blog.pssp.app.br/infraestrutura/linux/shell/shell-scripts
           echo Monta a pasta LnxMint_Server_Home
           sh "./exec3.sh" \
           "vboxheadless -v off --startvm lnxmint-server" \
           30 \
           "sudo mount 192.168.15.3:/home /home/paulosspacheco/LnxMint_Server_Home"         
                       
           echo "*******************************************************************************"
           resp="n"
           read -p "Tecle <s> para desmontar a pasta <LnxMint_Server_Home>" resp
           echo $resp
        
           while [ $resp != "s" ]
           do  sleep 5 
              read -p "Tecle <s> para desmontar a pasta LnxMint_Server_Home ..." resp
           done
        
           echo Desmontando compartilhamentos
           echo "*******************************************************************************"
        
           sh ./umount.sh ~/LnxMint_Server_Home
        
           echo Desativando maquina virtual "LnxMint_Server"
           echo "*******************************************************************************"
           vboxmanage controlvm "lnxmint-server" poweroff
        
           echo "Fim do script"
           echo "Status = $?"
           echo "*******************************************************************************"
        
           exit $? # retorna o numero do erro
        
        
        
  3. /etc/fstab - Configuração do arquivo /etc/fstab para que o dispositivo ou pasta compartilhada seja montado no boot do sistema.

    1. Exemplo de configuração de montagem de um dispositivo físico no rquivo /etc/fstab:

      
         # /etc/fstab: static file system information.
         #
         # Use 'blkid' to print the universally unique identifier for a
         # device; this may be used with UUID= as a more robust way to name devices
         # that works even if disks are added and removed. See fstab(5).
         #
         # <file system> <mount point>   <type>  <options>       <dump>  <pass>
         # / was on /dev/sda3 during installation
         UUID=5d3c0e5f-2612-402a-947d-c9a9601d0a91 /               ext4    errors=remount-ro 0       1
      
         # /boot/efi was on /dev/sda2 during installation
         UUID=33C1-2359  /boot/efi  vfat    umask=0077      0       1               
      
         # pp Ativar unidade v
         UUID=e8b363f5-e732-4b85-bd68-40f839441e5a /home/paulosspacheco/v  ext4    defaults    0       0         
        
      
      
    2. Exemplo de configuração de montagem de um pasta compartilhada usando protocolo NFS usando o arquivo /etc/fstab:

      1. Adiciona ao arquivo /etc/fstab a linha abaixo:

        
           # host.myserver.com:/home /mnt/home nfs rw,hard,intr,rsize=8192,wsize=8192,timeo=14 0 0            
           192.168.15.3:/home ~/LnxMint_Server_Home nfs rw,hard,intr,rsize=8192,wsize=8192,timeo=14 0 0
           
        
        
        1. Notas:
          1. 192.168.15.3:/home : Pasta compartilhada do computador 192.168.15.3;
          2. ~/LnxMint_Server_Home : Nome da pasta na máquina cliente montada na raiz do usuário logado
          3. rw Permitido leitura e escrita
          4. hard : Usar hard quando se deseja que a máquina cliente só inicie se o ip 192.168.15.3 responder.
          5. intr : O processo pode ser interrompido. Quando o ip 192.168.15.3 voltar a ficar online, o processo pode ser continuado de onde estava enquanto o servidor não respondia.
          6. rsize e wsize : Define o número máximo de bytes em cada solicitação READ/WRITE (obs: múltiplo inteiro positivo de 1024) que o cliente NFS pode receber/enviar ao se comunicar com um servidor NFS 192.168.15.3. O padrão depende da versão do kernel, mas normalmente é de 1.024 bytes.
          7. time : Define o tempo (em décimos de segundo) que o cliente NFS espera por uma resposta antes de tentar novamente uma solicitação NFS.
          8. Referência...

🔝🔝