Čerstvá Windows každé ráno

Zazálohování a obnova jsou dva jednoduché příkazy. Vše ostatní je jen omáčka okolo, aby tyto dva příkazy byli bezchybně a pohodlně schopni používat BFU. Obnovu Windows lze automatizovat a iniciovat přímo z Windows. Příklady použití a zpětná vazba viz naše fórum. http://forum.odorik.cz/viewtopic.php?f=12&t=3803&p=29887

Z příkazové řádky

Zálohu provedu

ntfsclone -s -o - /dev/sda3 |gzip -c > /backup/win$(date +%Y_%m_%d-%H-%M-%S).gz

Obnovení provedu

gunzip -c $FILE | ntfsclone --restore-image --overwrite /dev/sda3 -

Minimalistický skript pro pokročilé

/backup/backup_zakladni.sh
#!/bin/bash
read -p " a - obnovit ze zálohy, b - udělat novou zálohu, x - konec, jinak reboot"
if [ "$REPLY" = "a" ]; then #obnoveni defaultni zálohy
	LIST=$(ls /backup/*.gz)
	select FILE in $LIST
	do
		gunzip -c $FILE | ntfsclone --restore-image --overwrite /dev/sda1 -
		#read -p "reboot"
		reboot
	done
elif [ "$REPLY" = "b" ]; then #vytvoreni nove zalohy
	ntfsclone -s -o - /dev/sda1 |gzip -c > /backups/win$(date +%Y_%m_%d-%H-%M-%S).gz
	reboot
elif [ "$REPLY" = "x" ]; then #pro administraci
	exit
else	
	echo "tak nic"
		reboot
fi

Skript odolný proti BFU s možností automatické obnovi

/backup/backup.sh
#!/bin/bash
#
# Instalace skriptu:
# -----------------
# Proveďte základní instalaci Linuxu bez grafického prostředí. (nechceme správce přihlášení ala gdm)
# Klíčový příkaz ntfsclone je v balíčku ntfs-3g, který tedy nainstalujte.
# Vytvořte adresář /backup/ a umístěte do něj tento skript. 
# Povolte skriptu práva pro spouštění "chomd +x /backup/backup.sh"
#
# Dále (postup platí pokud používáte systemd):
#
# 1) Automatické přihlášení uživatele root:
#    Editujte soubor /lib/systemd/system/getty@.service
#    řádek ExecStart=-/sbin/agetty --noclear %I $TERM
#    nahraďte  ExecStart=-/sbin/agetty --noclear -a root %I $TERM
#
# 2) Automatické spuštění tohoto skriptu pod uživatelem root docílíme přidáním na konec souboru /root/.profile 
#    následující: "/backup/backup.sh"
#
# Výsledek: Po startu počítače dojde k automatickému přihlášení uživatele root a spuštění tohoto skriptu na všech terminálech.
#
# Pokud  Systemd nepoužíváte, stačí do /etc/rc.local přidat "openvt -s -w bash /backup/backup.sh"
# zdroj informací viz http://superuser.com/questions/584931/howto-start-an-interactive-script-at-ubuntu-startup
# Tento jednoduchý způsob se Systemd nefunguje, protože systemd vypisuje nekončící otravnou hlášku o startující službě.
# 
# Jiný alternativní způsob pro systemd: https://alan-mushi.github.io/2014/10/26/execute-an-interactive-script-at-boot-with-systemd.html
# v mém případě ale vůbec nefungoval.
#
# Konfigurák grubu /boot/grub/grub.cfg aktualizujete editací souboru /etc/default/grub a příkazem update-grub. 
# Uděláte dvě kopie, soubor /boot/grub/grub.linux je jeho kopie nastavená na bootování Linuxu,
# koie /boot/grub/grub.windows je pro bootování do Windows.
# Pokud mám monitor na výšku, do /etc/default/grub přidám GRUB_CMDLINE_LINUX="video=efifb fbcon=rotate:1"
#
#
# Licence: použij a modifikuj si to jak chceš, pokud ale přijde na něco co podstatného, poděl se s tím na fóru http://forum.odorik.cz/viewtopic.php?f=12&p=29887#p29887
# Rovněž zanech ve skriptu odkaz na původní zdroj http://www.odorik.cz/w/windows:windows_backup_and_restore_scripts_using_linux_ntfsclone
#
#
c_c()
{
	echo
	echo reboot
	reboot
}
trap c_c SIGINT # odchytneme signál vyvolaný zmáčknutím CTRL + C,
# aby tak nebylo možné získat přístup do linuxové konzole s právy ROOTa bez zahdání hesla
 
WIN_PART=/dev/sda3
HESLO_PRISTUP_DO_SYSTEMU=moje24heslo
 
setfont /usr/share/consolefonts/Lat2-Fixed13.psf.gz
setleds -D +num   # při vybírání souboru zálohy se numrecká klávesnice hodí
setterm -blank 0 -powersave off # Nechť je vždy vidět, že na tomto počítači zrovna nejsou jen uspaná Windows
 
if [[ `tty` =~ ^/dev/pts/ ]] ; then
    echo "Přihlášení přes ssh, necháme projít"
    exit 0
fi
 
clear # začneme prázdnou obrazovkou
 
if [ "`tty`" != "/dev/tty1" ] ; then
     echo "Jste v $(tty) zálohovací skript běží jen v tty1, nechceme, aby běžel vícekrát paralelně"
     PASS_COUNTER=1
  while true; do
     echo 
     echo "Pro vstup do systému, můžete zadat heslo (pokus číslo $PASS_COUNTER/3 ). Pro restart počítače zmáčkněte jen ENTER."
     read
     if [ "$REPLY" == "$HESLO_PRISTUP_DO_SYSTEMU" ] ; then
       clear
       echo
       echo "Vítejte v linuxové konzoli."
       echo 'Pokud Vám konzole nestačí, spusťte si "grafiku" příkazem startx.'
       echo '(Jestli startx nefunguje nainstalujte si ji příkazem "aptitude install xorg lxde-core", pak bude startx fungovat)'
       echo
       exit 0
     else
       clear
       echo
       echo "Chybné heslo"
       echo
     fi  
     PASS_COUNTER=$[ $PASS_COUNTER + 1 ]
     if [ $PASS_COUNTER -gt 3 ] || [ "$REPLY" == "" ] ; then
            echo reboot
            reboot
     fi        
  done  
fi
 
 
# pro potřeby BFU chceme pěkné volké čitelné fonty
setfont /usr/share/consolefonts/Lat2-TerminusBold32x16.psf.gz
# font by mělo jít změnit i pomocí dpkg-reconfigure console-setup, ale je tam možná 5 let starý bug
# nastavení klávesnice pro konzoli mohu změnit: dpkg-reconfigure keyboard-configuration
 
 
if cmp --silent /boot/grub/grub.cfg /boot/grub/grub.linux && [ -e /backup/opravdu_obnovit ]  ; then # pokud soubory jsou stejné - bootování nastaveno na Linux 
  # je nastaveno automatické bootování do Linuxu máme úkol - automaticky provést obnovu a vypnout počítač
  # Nastavil to skript z Windows
   FILE=`ls -tr /backup/*.gz | tail -1` #vybere nejmladší soubor gz
   echo
   echo
   echo    "-------------------------------------------------------------------------------------------------------------"
   echo -e "\n\e[31m Chystáme se  obnovit Windows z poslední zálohy $FILE, obnova začne za 10 vteřin.\e[39m \n"
   echo    "-------------------------------------------------------------------------------------------------------------"
   echo
   echo -e "\e[93m Pokud si obnovu nepřejete, zmáčkněte ENTER\e[39m"
   echo
   if ! read -t 10; then # došlo k timeoutu - jdeme obnovovat
      cp /boot/grub/grub.windows /boot/grub/grub.cfg # příště bude automaticky bootovat Windows
      rm /backup/opravdu_obnovit  # odděláme značku
 	   	echo 'Obnovení počítače ze zálohy začalo v ' $(date +%Y_%m_%d-%H-%M-%S)
      echo "NEVYPÍNEJTE POČÍTAČ !!!!!!!!!!!!"
      echo "Počítač bude automaticky vypnut po dokončení zálohy."
      echo
      FILE=`ls -tr /backup/*.gz | tail -1` #vybere nejmladsi soubor gz
	    echo "obnovujeme ze souboru $FILE"
      gunzip -c $FILE | ntfsclone --restore-image --overwrite $WIN_PART -
      poweroff -p
   fi   
fi
 
PASS_COUNTER=1
while [ "$REPLY" != "$HESLO_PRISTUP_DO_SYSTEMU" ] ; do
   if [ $PASS_COUNTER -gt 1 ] ; then
     clear
     echo
     echo " Špatné heslo "
     echo
   fi  
   echo 
   echo "Pro vstup do systému pro zálohu/obnovu, zadejte heslo (pokus číslo $PASS_COUNTER/3 )."
   echo "Pro restart počítače zmáčkněte jen ENTER."
   read
   PASS_COUNTER=$[ $PASS_COUNTER + 1]
   if [ $PASS_COUNTER -gt 3 ] || [ "$REPLY" == "" ] ; then
          echo reboot
          reboot
   fi        
done
 
clear # aby nebylo vidět napsané heslo po celou dobu
 
echo "Ip adresa tohoto počítače je:" $(ip route get 1 | awk '{print $NF;exit}')
 
while true; do
 
      echo "-----------------------------------------------------------------------" 
      echo -e "\e[36mVolné místo na disku:\e[39m"
      df -h / 
      echo -e "\e[36mExistující zálohy -  z názvu poznáte datum a čas vytvoření.\e[39m"
      ls -lh  /backup/*.gz| awk '{print $9 "     velikost zálohy:"$5}'
      echo 
      echo
      echo -e "\e[36mHLAVNÍ MENU:\e[39m"
      echo
      echo " a  - obnovit ze zálohy. Soubor zálohy budete moci zvolit v následujícím kroku."
      echo " b  - vytvořit zálohu. Pozor před zvolením se ujistěte, že máte dostatek místa na disku," 
      echo "      viz přehled výše. Nová záloha může být o něco větší."
      echo " c  - smazání zálohy, uvolnění místa - konkrétní zálohu ke smazanání budete moci zvolit "
      echo " d  - restart počítače "
      echo
      echo 'Možnost "aa" a "bb" je stejná jako "a" a "b", počítač ale nebude po dokončení restartován.'
      echo "Pro vstup na konzoli zadejte heslo."
      echo
      echo -e "\e[93mZvolte písmeno a potvrďte klávesou ENTER:\e[39m"
 
    	read 
 
      case $REPLY in
        a | aa)
         echo 
         echo "Provádíme obnovení zálohy z vybraného souboru."
         echo "Zvolte číslo a zmáčkněte ENTER"
         echo
         LIST=$(ls -t /backup/*.gz)
         PUV_REPLY=$REPLY  # select nám totiž REPLY přemaže nově vybranou hodnotou
        NIC="nic_neprovádět_a_vrátit_se_zpět"
   	     select FILE in $LIST $NIC
   		      do
                 if [ "$FILE" != "$NIC" ] && [ "$FILE" != "" ] ; then
                   echo 
      	       	   	echo 'Obnovení začalo v ' $(date +%Y_%m_%d-%H-%M-%S)
                   echo "NEVYPÍNEJTE POČÍTAČ !!!!!!!!!!!!"
                   echo                
                   gunzip -c $FILE | ntfsclone --restore-image --overwrite $WIN_PART -
                   echo -e "\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a"   # pípneme si že je hotovo
                   if [ "$PUV_REPLY" != "aa" ] ; then
                     reboot
                   fi  
                 fi  
                 break # se zeslect
   	     done;;
       b | bb)
      	echo 'Vytváření zálohy započalo v ' $(date +%Y_%m_%d-%H-%M-%S)
        echo "NEVYPÍNEJTE POČÍTAČ !!!!!!!!!!!!"
        echo 
        ntfsclone -s -o - $WIN_PART |gzip -c > /backup/win$(date +%Y_%m_%d-%H-%M-%S).gz
        echo -e "\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a"   # pípneme si že je hotovo
        echo $REPLY
        if [ "$REPLY" != "bb" ] ; then
           echo reboot
           reboot
        fi  
        ;;
       c) #smazání zálohy
         echo
         echo "Mažeme soubor zálohy, zadejte číslo a ENTER"
         echo 
   	  	LIST=$(ls -t /backup/*.gz)
        NIC="nic_neprovádět_a_vrátit_se_zpět"
   	  	select FILE in $LIST $NIC
   	     	do
            if [ "$FILE" != "$NIC" ] && [ "$FILE" != "" ] ; then
   		       	echo "mažu soubor zálohy $FILE"
              rm -i "$FILE"
            fi  
            break # ruším select smyčku
   		    done;;
     	 d) # restart počítače
   	    echo "restartujeme"
        reboot;;
    	 $HESLO_PRISTUP_DO_SYSTEMU) # administrace - tajná volba 
        clear
   	  	exit 0;;
       *)
        echo "nerozpoznaná volba";;
    esac
done  # konec cyklu

Instalace skriptu

Viz poznámky na začátku samotného skriptu.

Skript na Windows

c:\Windows\system32\restorem.bat
:: Připojíme linuxový oddíl pod písmeno z
mount 0 1 z:
:: změníme obsah souboru /boot/grub/brub.cfg, tak aby příště nabootoval Linux
copy /V /Y z:\boot\grub\grub.linux z:\boot\grub\grub.cfg
 
:: vytvoříme "značku", pro bash skript v Linuxu, že chceme obnovovat
echo true > z:\backup\opravdu_obnovit
 
Mount.exe /umount z:
 
:: restartujeme počítač - naběhne Linux, který provede obnovu
shutdown.exe /r /t 00
 
::set /p temp="podivejte se co to vypsalo a zmacknete ENTER"

I když to nevypadá pěkně, poznámky ve skriptu všechno vysvětlí. Program Mount.exe je součástí projektu ext2fsd, ext2fsd je třeba nainstalovat a Mount.exe umístit do cesty (nebo změnit skript výše aby obsahoval plnou cestu).

Jak skript "obnovy" pohodlně spouštět? AutoHotKey!

Jako způsobe pro aktivaci čerstvých Windows jsem vymyslel hodně obskurní klávesovou zkratkou, kterou jen tak někdo neuhádne, nevymyslí, nebo nezmáčkne nechtěně. Je totiž většinou žádoucí, aby obnovu prováděla jen osoba pověřená ale zato to nejednodušším možným způsobem. Suprový, nenápadný a malý program co dovede mimo jiné spustit skript na základě zmáčknuté kombinace kláves se jmenuje AutoHotKey. Důležitým obsahem ahk skriptu jsou jen dva řádky.

c:\Windows\system32\restorem.ahk
; skript nize rika, ze pokud zmacknu shirt(+) alt (!) a CTRL (^) + klávesu F12
; bude spusten winbatch soubor restorem.bat
+!^F12::
   run, restorem.bat

Aby se skript vždy při startu Windows aktivoval, je třeba udělat tomuto skriptu zástupce a ten umístit do speciální startovací složky. Tahle speciální složka hodně šílenou cestu, ale lze se tam jednodušeji dostat tak, že zmáčknete tlačítko Windows + r (r jako run - dialog spustit), a necháte “spustit” podivný řetězec “shell:common startup”.

Vypnutí aktualizace

Pokud Windows automatizovaně obnovujeme jednou za den nebo častěji, je zbytečné, aby se pak pokaždé snažily o aktualizaci, když je večer zase vrátíme zpět. Všechny aktualizace je tedy dobré zakázat a provést ručně jednou za čas.

Pamatujte i kdyby se na Vaše Windows nějaký vir dostal, nepřežije do dalšího dne.

Vypnutí Windows Update

Bohužel tímto krokem znefunkčníme i ruční aktualizaci. Aby ale fungovala ruční aktualizace, kterou je dobré čas od času udělat, musíte onu službu opět povolit. Vypnutím aktualizací tímto způsobem může způsobit např. potíže aktivací Windows 7/8/8.1 klíče, proto proveďte až jako poslední operaci.

Vypnutí update Firefoxu

Libre office

Zde stačí vypnout jen upozorňování.

Google Chrome

Na Google chrome vyloženě neplatí nic jiného než přejmenovat adresář Update na nějaký nesmysl. Go to “C:\Program Files (x86)\Google\ and find the folder “update”. http://stackoverflow.com/questions/18483087/how-can-i-disable-google-chrome-auto-update

(k tomu jsem si přiinstaloval Double commander)

Acrobat reader

U Acrabat readeru je vypnutí aktualizací nezkutečně složité, je dobré se tomu programu vyhnout. Alternativa je třeba Foxit. Na jeho fóru si spousta lidí stěžuje, že vypnutí je moc složité hrabání se v registrech.

Lidé co potřebují vypnout aktualizace obvykle používají placenou obdobu našeho skriptu, co se jmenuje DeepFreeze. DeepFreeze tvrdí, že se tímto způsobem dá předejít až 63% problémům s Windows (trouble ticketů). DeepFreeze se chlubí, že prodali 9 miliónů licencí ve 150 zemích.

Ruční aktualizace Windows a aplikací

Aktualizace je třeba dělat čas od času ručně. Tedy když je systém čerstvý, ručně provedu veškeré aktualizace, případně přidám či opravím nastavení aplikací podle požadavků uživatele - např. přidám další tiskárnu. Následně restartuji systém do Linuxu a vytvořím zálohu již aktualizovaného systému. K tomu je právě to textové menu na obrázku. Od toho dne se bude obnovovat již aktualizovaná verze všech aplikací. Nemusím být žádný linuxový ani počítačový guru, abych tohle zvládl - tedy úkol lze zadat kdekomu, kdo se umí držet pár jednoduchých zásad, jako aktualizovat výhradně a pouze jen čerstvě obnovený systém.

Windows 10 lze snadno klonovat - přenášet z počítače na počítač bez nové instalace

Pokud si nainstalujete Windows 10 na jednom počítači, lze onen disk přenést na jiný počítač. Ovladače, je-li třeba, se automaticky doinstalují. Pokud na novým počítači ještě Windows 10 nebylo nikdy předtím aktivováno, bude to ukazovat neplatnou licenci. Mám ale možnost zadat licenční kódy svého Windows 7/8/8.1 toho počítače na kterém Windows 10 momentálně běží a provést aktivaci. Pokud na daném počítači byl už někdy v minulosti Windows 10 nainstalován a aktivován, ověření a aktivace stávající licence proběhne automaticky. Potřebuji k tomu jen připojení k internetu a nemít zakázaný proces Windows update. Viz návod výše.

Pokud se Váš windows automaticky neaktivoval, můžete změnou Product key na platný pro daný počítač provést aktivaci.

K čemu je to dobré? Konečně stejná svoboda jak v Linuxu. Mohu klonovat disky. Mám třeba učebnu/pracovnu s deseti počítači. Udělám instalaci jen jednou včetně všech nastavení a programů a pak mohu Windows rozkopírovat na všechny disky bez toho, abych musel dělat nové instalace a nastavování pro jednotlivé počítače…

Ideální je klonovat stejně velké disky. Nabootuji z živé distribuce a spustím příkaz.

dd if=/dev/sdX of=/dev/sdX

Kde if = input file (zdrojový disk), of = output file (cílový dísk). Pozor neprohoďte to, nebo si prázdným diskem přepíšete zaplněný ! </code>

Přehledné informace o nepřehledném operačním systému

Lze zjistit hlavně informace od Hardwaru Windows a registrační klíče Windows a dalších aplikací.

http://www.belarc.com/free_download.html

http://pcsupport.about.com/od/system-security/fr/belarc-advisor-review.htm

 
windows/windows_backup_and_restore_scripts_using_linux_ntfsclone.txt · Last modified: 2016/07/14 10:16 (external edit)