# Linux Desktop

Capitulo com dicas e tutoriais gerais relacionados ao uso de Linux no Desktop

# Tutorial: Montar e Desmontar Volumes BitLocker no Linux

<p class="callout info">Este tutorial ensina como **detectar, montar e desmontar unidades BitLocker** no Linux Mint usando `dislocker` e um script automatizado.</p>

---

## Requisitos

- Sistema testado: Linux Mint 20/21/22 (ou compatível)
- `dislocker` instalado:

```bash
sudo apt update
sudo apt install dislocker -y
```

- Permissões de sudo para montar e criar diretórios em `/mnt` e `/media/$USER`.

---

## 1. O Script `bitlocker-manager.sh`

O script permite **montar e desmontar volumes BitLocker** automaticamente.

### Conteúdo do Script

```bash
#!/bin/bash
set -e

WORK_BASE="/mnt"
MOUNT_BASE="/media/$USER"

usage() {
    echo "Uso: $0 [mount|umount]"
    echo "  mount   - Desbloqueia e monta o volume BitLocker"
    echo "  umount  - Desmonta volumes BitLocker montados"
    exit 1
}

if [ $# -ne 1 ]; then
    usage
fi

MODE="$1"

if [ "$MODE" == "mount" ]; then
    device=$(lsblk -o NAME,FSTYPE -r | grep -i "BitLocker" | awk '{print $1}' | head -n 1)
    if [ -z "$device" ]; then
        echo "[!] Nenhuma partição BitLocker detectada."
        exit 1
    fi
    device="/dev/$device"
    echo "[*] Volume BitLocker detectado em: $device"

    read -sp "Digite a senha ou chave de recuperação do BitLocker: " input
    echo

    # Detecta se é chave de recuperação (48 dígitos)
    clean_input=$(echo "$input" | tr -d '-') # Remove hífens, se houver
    if [[ "$clean_input" =~ ^[0-9]{48}$ ]]; then
        auth_param="-p$clean_input"
        echo "[*] Detectado chave de recuperação."
    else
        auth_param="-u$input"
        echo "[*] Detectada senha do BitLocker."
    fi

    mapper_dir="$WORK_BASE/bitlk-$(basename $device)"
    mount_dir="$MOUNT_BASE/bitlocker-$(basename $device)"

    sudo mkdir -p "$mapper_dir" "$mount_dir"

    echo "[*] Desbloqueando com dislocker..."
    sudo dislocker -V "$device" $auth_param -- "$mapper_dir"

    echo "[*] Montando NTFS..."
    sudo mount -o loop "$mapper_dir/dislocker-file" "$mount_dir"

    echo "[✓] Volume BitLocker montado em: $mount_dir"

elif [ "$MODE" == "umount" ]; then
    for dir in "$MOUNT_BASE"/bitlocker-*; do
        if mountpoint -q "$dir"; then
            echo "[*] Desmontando NTFS em $dir ..."
            sudo umount "$dir" || echo "[!] Falha ao desmontar $dir"
        fi

        mapper_dir="$WORK_BASE/$(basename $dir | sed 's/bitlocker-/bitlk-/')"
        if mountpoint -q "$mapper_dir"; then
            echo "[*] Desmontando mapper em $mapper_dir ..."
            sudo umount "$mapper_dir" || echo "[!] Falha ao desmontar $mapper_dir"
        fi

        # limpa diretórios
        sudo rmdir "$dir" 2>/dev/null || true
        sudo rmdir "$mapper_dir" 2>/dev/null || true

        echo "[✓] Desmontagem concluída para $dir"
    done
else
    usage
fi
```

---

## 2. Como usar o Script

### 2.1 Preparação

Salve o script em seu computador, por exemplo:

```bash
nano ~/bitlocker-manager.sh
```

Cole o conteúdo acima e salve.

Torne o script executável:

```bash
chmod +x ~/bitlocker-manager.sh
```

---

### 2.2 Montar Volume BitLocker

Insira a unidade BitLocker USB.

Execute o script no modo `mount`:

```bash
~/bitlocker-manager.sh mount
```

Digite a **senha ou chave de recuperação** quando solicitado.

Se tudo der certo, o volume será montado em:

```
/media/<seu_usuario>/bitlocker-<nome_dispositivo>
```

Você pode acessar os arquivos normalmente pelo gerenciador de arquivos.

---

### 2.3 Desmontar Volume BitLocker

Para desmontar, rode o script no modo `umount`:

```bash
~/bitlocker-manager.sh umount
```

O script vai:

- Desmontar o volume NTFS.
- Desmontar o mapper do `dislocker`.
- Limpar os diretórios temporários.

---

## 3. Observações Importantes

- **UAS e discos Seagate:** Alguns discos Seagate podem travar portas USB no Linux Mint devido ao driver UAS. Se ocorrer travamento, siga este procedimento:

```bash
echo "options usb-storage quirks=0bc2:2322:u" | sudo tee /etc/modprobe.d/seagate-uas-blacklist.conf
sudo update-initramfs -u
sudo reboot
```

- **Senha vs Chave de Recuperação:**
    
    
    - Use `-u` para senha do BitLocker.
    - Use `-p` para chave de recuperação de 48 dígitos (sem hífens).
- **Diretórios `/mnt/bitlk-*` e `/media/$USER/bitlocker-*`** são criados automaticamente pelo script.

---

## 4. Benefícios do Script

- Evita rodar manualmente vários comandos `dislocker` + `mount`.
- Permite montar **vários volumes** de forma segura.
- Inclui modo de desmontagem para limpeza automática.
- Integra facilmente no workflow do usuário Linux Mint.