#!/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
apu=1 # poistarivi
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 
 
   
  # leikkaa nämä käskyt tästä yhtenä könttinä avaa sitten pääte, liimaa ne sinne ja paina lopuksi enter. Kun näyttö rauhoittuu ehkä minuuttienkin kuluttua ovat turhat imaget hävinneet
  # poistetaan kaikki muut imaget paitsi se jolla toimitaan. Siis mikäli on tullut uusi image jos se toimii niin sen uusi päivitys poistaa senkin. 
  for n in $(ls /boot | grep config | grep -v $(ls /boot | grep config | sort | tail -1) | sed 's/config-//g'); do
    sudo apt-get --yes  purge 'linux-image-'$n 
    sudo apt-get --yes  purge 'linux-image-extra-'$n # turha lause, mutta muistutuksena siitä mitä tapahtuu.
    sudo apt-get --yes  purge 'linux-headers-'$n
  done 




 
