Gerando um arquivo de imagem da mídia

Autor: Paulo Neukamp  //  Categoria: Scripts

O script abaixo, necessita do pacote zenity para ser executado (# apt-get install zenity), e trabalha de forma interativa, sendo assim, leia com atenção o que lhe é solicitado para que o mesmo funcione corretamente.

#!/bin/bash</pre>
<pre><code>## Paulo Neukamp
## Em 16 nov 2008
## A função deste script é criar um arquivo de imagem da mídia
## Tela de Aviso
zenity --info --title "Aviso de Cuidado" --text " Este é um script que pode danificar o sistema, portanto, tome muito cuidado com os parametros que serão informados nas próximas etapas"
## Mostrando os dispositivos conectados
sudo fdisk -l | zenity --list --title "Lista de Dispositivos" --text "n Tela de CheckList:n Abaixo estão listados todos os Dispositivos atualmente conectados a este equipamento... n Verifique com muito cuidado qual sera o Dispositivo que deseja zerar, pois voce deverá informá-lo na próxima janelan" --column "Dispositivos"  --width=700 --height=400
## Tela solicitando qual o disco (device) ou partição que será copiado (origem)
origem=`zenity --entry --title "ORIGEM DOS DADOS" --text " Informe qual será a origem dos dados. Ex.:hda, sdb1...." --entry-text "sda"  --width=200 --height=100`
## Tela solicitando qual em qual pasta a imagem .dd deve ser salva
destino=`zenity --entry --title "DESTINO DOS DADOS" --text " Informe a pasta na qual a imagem deve ser salva" --entry-text "/home/fdtk/caso1"  --width=200 --height=100`
arq=`zenity --entry --title "NOME DO ARQUIVO" --text " Informe o nome a ser dado ao arquivo da imagem dos dados" --entry-text "img-caso1-hd1.dd"  --width=200 --height=100`
## Escolha qual hash utilizar ( 256-bits ou 512-bits)
hashopt=`zenity --list --radiolist --column="Opção" --column "Tipos de hash" TRUE 256-bits FALSE 512-bits `
   if [ $hashopt != 512-bits ];then
       sudo date &gt;&gt; $destino/hash-origem.txt; sudo sha256sum -b /dev/$origem &gt;&gt; $destino/hash-origem.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
   else
       sudo date &gt;&gt; $destino/hash-origem.txt; sudo sha512sum -b /dev/$origem &gt;&gt; $destino/hash-origem.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
fi 
## CÓPIA DOS DADOS
## Tela de Status do processo da copia
sudo dcfldd if=/dev/$origem of=$destino/$arq | zenity --progress --title "Copiando..." --text="Copiando dados..." --pulsate --auto-close
## Gerando hash da cópia
if [ $hashopt != 512-bits ];then
       sudo date &gt;&gt; $destino/hash-copia.txt; sudo sha256sum -b $destino/$arq &gt;&gt; $destino/hash-copia.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
   else
       sudo date &gt;&gt; $destino/hash-copia.txt; sudo sha512sum -b $destino/$arq &gt;&gt; $destino/hash-copia.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
fi 
## Gera arquivo com dados dos discos
sudo fdisk -l /dev/$origem &gt;&gt; $destino/dados-discos.txt
## Confere Hashs
cat $destino/hash-copia.txt &gt;&gt; $destino/2hashs.txt | cat $destino/hash-origem.txt &gt;&gt; $destino/2hashs.txt
zenity --title="Analise dos Hash's gerados" --text-info --filename="$destino/2hashs.txt" --width=800 --height=200
# Tela de Aviso final
zenity --info --title "Final de operação" --text " A copia e os hash's foram gerados, você já pode remover as mídias"