commit fac8a2c491d8621b03eab474d1c493f05bb1ee11 Author: William Grando Date: Fri Jun 6 16:26:47 2025 -0300 Init do projeto. diff --git a/persist.sh b/persist.sh new file mode 100644 index 0000000..e1b8b63 --- /dev/null +++ b/persist.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# 1. Lista partições físicas disponíveis (excluindo loop e rom) +DISCOS=($(lsblk -lpno NAME,TYPE | grep part | awk '{print $1}' | grep -vE 'loop|sr|rom')) + +# Verifica se encontrou discos +if [ ${#DISCOS[@]} -eq 0 ]; then + echo "Nenhuma partição encontrada." + exit 1 +fi + +# 2. Mostra menu para o usuário escolher +echo "Selecione uma partição para montar:" +for i in "${!DISCOS[@]}"; do + echo "$((i+1))) ${DISCOS[$i]}" +done + +# 3. Recebe escolha +read -p "Digite o número da partição desejada: " escolha + +# Valida escolha +if ! [[ "$escolha" =~ ^[0-9]+$ ]] || [ "$escolha" -lt 1 ] || [ "$escolha" -gt ${#DISCOS[@]} ]; then + echo "Opção inválida." + exit 1 +fi + +DEVICE=${DISCOS[$((escolha-1))]} + +# 4. Obtém UUID +UUID=$(blkid -s UUID -o value "$DEVICE") +if [ -z "$UUID" ]; then + echo "UUID não encontrado para $DEVICE" + exit 1 +fi + +# 5. Detecta o tipo de sistema de arquivos +FSTYPE=$(blkid -s TYPE -o value "$DEVICE") +if [ -z "$FSTYPE" ]; then + echo "Tipo de sistema de arquivos não encontrado." + exit 1 +fi + +# 6. Solicita ponto de montagem +read -p "Informe o ponto de montagem (ex: /mnt/dados): " MOUNTPOINT + +# Cria se não existir +if [ ! -d "$MOUNTPOINT" ]; then + echo "Criando diretório $MOUNTPOINT" + mkdir -p "$MOUNTPOINT" +fi + +# 7. Linha que vai pro fstab +FSTAB_LINE="UUID=$UUID $MOUNTPOINT $FSTYPE defaults 0 2" + +# Verifica se já existe +if grep -qs "$UUID" /etc/fstab; then + echo "UUID já está no fstab. Abortando." + exit 1 +fi + +# 8. Escreve no fstab +echo "Adicionando ao /etc/fstab:" +echo "$FSTAB_LINE" +echo "$FSTAB_LINE" | tee -a /etc/fstab + +# 9. Monta +mount -a + +# 10. Sucesso +echo "Montado $DEVICE em $MOUNTPOINT com UUID=$UUID" diff --git a/readme.MD b/readme.MD new file mode 100644 index 0000000..d62f527 --- /dev/null +++ b/readme.MD @@ -0,0 +1,31 @@ +# Persist +### 📌 Sobre o Projeto + +Um script simples para montagem de discos no linux, lista todas as partições disponiveis, voce escolhe, informa onde quer montar e pronto ! + +--- + +#### 🚀 Como usar + --- + + - Acesse seu terminal; + - Clone o repositorio: + +```shell + git clone https://git.instantti.com.br/instant/persist-disk.git +``` + + - acesse o diretorio: + +```shell + cd persist-disk/ +``` + - Execute o comando: + +```shell + chmod +x persist.sh && \ + sh persist.sh +``` + +>[!TIP] +> - O script em questão é interativo, então ao executar siga o passo-a-passo dele. \ No newline at end of file