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á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 -
#!/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
#!/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
Viz poznámky na začátku samotného skriptu.
:: 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).
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.
; 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”.
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.
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.
Zde stačí vypnout jen upozorňování.
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)
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.
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.
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.
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>
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