#!/bin/bash
# petteriIII    6.8.2014. boottauslevy on aina sda  

function tarkistaKovalevyjenKaikkiOsiot () {
apu="" 
read -t 5 -n 1 -p 'jos haluat tarkistaa kovalevyn perusteellisesti paina jotain kirjainta; silloin tarkistus kestää jonkinverran kauemmin mutta tarkistaa paremmin.' apu
for osio in $(sudo blkid | grep -v swap | awk '{print $1}' | tr -d :); do
  [[ ! $apu ]] && sudo fsck -MVCaf $osio ||   sudo fsck -MVCac $osio
  echo ""
done
}

function ota () { # tehdään kopioivalle levylle tiedosto jonka nimi vastaavaa Loogista_levynimeä   
# sudo dc3dd if=/dev/$Looginen_levynimi | gzip -c  > /home/$USER/$Looginen_levynimi.img.gz 
sudo dc3dd if=/dev/$Looginen_levynimi  > /home/$USER/$Looginen_levynimi
}

function palauta () { # kirjoitetaan tiedoston sisältö tiedoston nimen mukaiselle levylle
# gunzip -c /home/$USER/$Looginen_levynimi.img.gz | sudo dc3dd of=/dev/$Looginen_levynimi 
cat /home/$USER/$Looginen_levynimi | sudo dc3dd of=/dev/$Looginen_levynimi
}

# pääohjelma
apuu=$(df / | awk '{print $1}'); osiojollaollaan=${apuu##*/dev/}; echo 'osio:'$osiojollaollaan # boottausosion looginen nimi tyypiltään sdx
apu=$(ls -l /dev/disk/by-id | grep '/'$osiojollaollaan | awk '{print $9}'); levyjollaollaan=${apu%%-part*}; echo 'levy:'$levyjollaollaan
echo 'varmistetaan että ollaan levyllä nimeltä: dc3dd' # nimeämisen voi tehdä gparted:illa.
[[ $(ls -l /dev/disk/by-label/ | grep $osiojollaollaan | awk '{print $9}') != dc3dd ]] && echo 'tämä ei ole palautuspiste-levy.' && sleep 2 && exit
echo; sudo echo
[[ ! $(apt-cache show dc3dd) ]] && sudo apt-get install dc3dd
tarkistaKovalevyjenKaikkiOsiot
lista_loogisista_levyista=$( ls -l /dev/disk/by-id | grep -E '( ata-| usb-)' | grep -o ../sd.$ | tr -d ./ | sed 's/sda//g') 
echo $lista_loogisista_levyista
read -p 'otetaanko kopio vai palautetaanko se (vastaa: ota tai: palauta) ?' teko 
for Looginen_levynimi in $lista_loogisista_levyista; do $teko; done 




 
