20. 11. 2013

Zálohování

Zálohování je často opomíjená věc, avšak o důležitosti, náročnosti či úskalích tento článek není. Popíši zde jen několik postřehů, které jsem nasbíral během hledání vhodného řešení.

Má kritéria pro výběr zálohovacího řešení jsou:

  • nativní klienti pro celou škálu platforem, především Windows a Linux
  • podpora inkrementálních záloh
  • rychlé nasazení
  • GUI a snadný management
  • community edition nebo kompletně free software, celé nejlépe open source
  • virtual appliance (VMA) výhodou


Dostupná řešení:

  • Amanda - GUI pouze v edici Enterprise, komeční VMA ("ZBA")
  • Bacula - složitější administrace, nové funkce a VMA pouze v Enterprise edici
  • Bareos - fork Baculy, který vznikl na základě nespokojenosti a okleštění komunitní verze (viz. FAQ), oficiální VMA (nightly) hostované na SUSE studio
  • BackupPC - zajímavé řešení (rsync, ssh, perl skripty, cgi GUI), ale nebudí ve mě out-of-the-box pocit, hlavně skrze Windows klienty přes cygwin, ale existují i neoficiální klienti (nezkoušeno), oficiální VMA není
  • DAR - neprozkoumáno, GUI pomocí DarGUI
  • UrBackup - neprozkoumáno

9. 8. 2013

PgMng - Pigmap linux manager (Minecraft map renderer)

For Pigmap linux users, today I'm introducing small and handy bash-based Pigmap manager, the PgMng. It's just easy "runner" of full or incremental rendering with a config file. Homepage of the project is here. About the requirements, git is not required (except for the installator), because you can download PgMng as a zip file, but you must manually download sources of Pigmap as well. Good luck, happy rendering.

21. 6. 2013

Pigmap Windows build (Minecraft map renderer)

As I'm a Linux/Windows user and I'm running Windows for gaming, I missed one great tool called pigmap while I'm running Minecraft server on localhost. Till today. Today I'm introducing a standalone (no cygwin installations, all dependecies are included) win32 build of pigmap packaged with some useful batch files. It's called PigmapWindownload it and try it. Please read README.1st and edit setup.cmd.

I'm worring about pigmap.exe performance, but stay tunned, I'll bring some benchmarks.

22. 11. 2012

GRUB2 installation walkthrough with Xen, RAID, LVM and Windows

This is little/quick how-to install GRUB2. Whole article is focused on this configuration:

  • root filesystem over RAID and LVM (need initramfs)
  • Xen hypervisor
  • UEFI booting (and GPT) due to 3 TB hard drives
  • x86_64 machine
  • "dualboot" Gentoo Linux and Windows 8

At this moment you should know some basics about the GRUB2 and differences from GRUB Legacy. Probably you read some howtos and you're confused as myself.



Step 1 - installing Windows

You should skip this step if you're interested just in GNU/Linux.
  1. If you want a UEFI booting, boot your setup media (DVD) in the UEFI mode. For UEFI installations you must boot in this mode. We'll talk about this later in so-called "chicken-egg problem".
  2. Create a new partition (i.e. a half of whole drive), let some space for your linux. In case of Windows 8, setup will create 4 partitions on your drive. In my case I had prepared GPT drive with gdisk and existing mdraid partition at the end with working system from previous 2 TB drives.
  3. Continue installing Windows.


Step 2 - installing GNU/Linux and GRUB2

  1. Install your linux as usual. In my case I just chrooted from USB to my working system.
  2. Unmask GRUB2 and efibootmgr in /etc/portage/package.keywords (or package.accept_keywords):
    sys-boot/grub:2
    sys-boot/efibootmgr
  3. Set desired platform(s) in your make.conf, for me it's:
    GRUB_PLATFORMS="efi-64"
  4. Install GRUB2:
    # emerge -avj grub
  5. You should consider using sys-boot/os-prober too.
  6. At this moment you should have accessible efivars (/sys/firmware/efi/vars/), this is little bit chicken-egg problem, because you must boot in UEFI mode to work with your UEFI firmware. In my case I've made USB boot with GRUB2 EFI binary (just command line without menu) by this command:
    # grub2-install --target=x86_64-efi --root-directory=/mnt/usb --removable --modules="part_gpt raid lvm"
    ... and then manually booted my system (set root ..., linux ..., initrd ..., boot), finally checked efivars by running efibootmgr. All done.
  7. Prepare mountpoint to the EFI partition (created by Windows setup - in my case it's sda2), don't forget to update /etc/fstab:
    # mkdir -p /boot/efi
    # mount /dev/sda2 /boot/efi

    In case your haven't Windows installation, create new partition with type EF00 and format it with vfat (FAT32).
  8. Install GRUB2, this step will automatically create EFI record, you don't need to make it manually (probably you had to do this in previous versions). Directory efi-directory is EFI partition and boot-directory where is stored configuration (grub.cfg), GRUB2 EFI binary (grubx64.efi) and whole application (menu, themes, etc.):
    # grub2-install --target=x86_64-efi --efi-directory=/boot/efi/ --boot-directory=/boot/efi/EFI/ --bootloader-id=GRUB2 --no-floppy --recheck

Step 3 - configuring GRUB2

  1. As you know, GRUB2 offers semi-automatic script generation by running:
    grub2-mkconfig -o /boot/efi/EFI/GRUB2/grub.cfg
  2. Check your /etc/default/grub and set your kernel parameters as I described here.
  3. Make sure you have correctly named kernel binaries, as you can read here.
  4. Re-run grub2-mkconfig ...
  5. If you prefer your own entries, copy these generated from grub.cfg to /etc/grub.d/40_custom, customize them and remove execution bit from 10/20/30* files. Then re-run grub2-mkconfig ...
  6. For my Windows 8 menuentry, I've used this commands:
    root # grub2-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    root # grub2-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

    ... and add results to the menuentry:

    menuentry "Windows 8" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }

  7. Because my computer always boots to Windows, at last I've deleted Windows EFI records and leave just GRUB2 record:
    # efibootmgr -b xxxx -B

Good luck!

PS: Sorry for poor styling, I'll make it better or move whole blog to another service, 'cause Blogger sucks! But at this moment I need to go to sleep, so maybe later. Later later...

10. 10. 2012

Jaký si mám koupit disk?

Pro ty, kteří se chystají na koupi klasického "motacího" SATA disku tu mám velmi užitečnou srovnávací tabulku s aktuálními daty:


Do tabulky čas od času přidávám zajímavé disky, které jsou u nás dostupné, mají benchmark score na serveru PassMark a nejlépe pokud i byly testovány např. redakcí pctuning (jelikož zde jsem kdysi vygooglil velmi slušný srovnávací test, používám právě je a tímto redakci zdravím!). Jako referenční cenu stahuji aktuální hodnotu z eshopu Alza.cz, přičemž stahuji i jejich skladovou dostupnost a ty, které přestávají být dostupné přesouvám do tzv. EOL sekce.

Passmark score zároveň s cenou na 1 TB kapacity výsledně tvoří poměr ceny a výkonu a právě podle této hodnoty (nejnižšího čísla) se přikláním k volbě disku.

To je asi tak vše, doufám, že bude tabulka užitečná, s radostí přijímám náměty a připomínky a přeji rychlý seek. :)

31. 7. 2012

I'm coding again

I loved to programming in my childhood and during the beginning of my career I just did some bash scripting and little bit of PHP. Now I devised the project which my boss approved and I returned to the coding. First things first and I'm doing little steps. Project is on PHP again and while I'm upset of the whole PHP, I'm planning to code in Java in the future. Funny thing - two of my friends with a similar nicknames have different experiences with Java - while Smoula hates Java, Shmoula loves Java. Greetings to them both and let's look at my project.

Short about, but I'd like to tell you more about generally useful tools instead of my project. It client/server application, providing telephone billing, imports from PBX and ITSP billing systems, custom reporting and exports, customer management, etc. That's enough for now...


RESTful API

This is a new for me and I haven't too much time for own API, so I read this short list of APIs and this comparison and winner is ....      SLIM [applause].


Client application w/ JS

Ajax based client application is imho the best way for my project. In my first research I chose jquery + jqueryui + dynatree, etc. I'm not fully satisfied with the jquery, mainly due to lack of object oriented notation, I feel dizzy({with(all)}, {that(really, {creepy, brackets})}) and closures. This is very nice comparison of JS frameworks, friend of my recommends me YUI and I'm considering MooTools Google Closure Sencha Ext JS too. But next time, at this moment a lot of working code is in jquery yet. Now I'm using:

PDF exports

I've tried the mPDF and html2pdf classes. First one is based on FPDF and HTML2FPDF and second on TCPDF. Both are huge and neither one can satisfy me. These classes have little bit different interpretation of the CSS and next limitations. Maybe you'll be satisfied, take a look at them, maybe not. Plan B? Of course, my plan B is generate PDFs thru TeX (probably ConTeXt) and plan C is Apache FO with XSL-FO. (I'll update this blogspot with the results)


XLS exports

I found PHPExcel (v. 1.7.6) and believe me, you don't wanna make Excel sheets. The overall CDR reports are huge and I need to setup some number formats, column width and bold text sometimes. I can use shared style which is great but I can't set any style to the whole column, i.e. "B" or "B1:B" or "B1:B65535". Due to this bug some reports are 5MB big and whole generating is so sssloooooow (up to 10 minutes)! Then I found that some method changes something in the PHP and it screw up some float calculations. Alternative way is write pure html table and save it as filename.xls, at first I thought about it very bad things but now I think this is much better way than using 22MB big disobedient and slow framework.


CSV imports

One of the few things which is working at first time is parseCSV. Next I needed to convert text files with the fixed width (columns) to the CSV. My advice: do not try to write anything in the PHP, it will be too slow and laboring. Use python instead:

21. 6. 2012

Čím na zdechlý systém?

Tento článek není samospásným receptem na opravení jakéhokoliv problému, každopádně může v radě scénářích pomoci. Pro případ nehod doporučuji (a to předem) vybavit se zmíněným softwarem, většinou se jedná o bezplatný software, některý je však komerční a není kolikrát příliš levný.


Obnova dat


obnova Windows Backup - Kdysi se mi nějak škaredě pokroutil BKF soubor zálohy běžící na Windows 2003 Server. Shodou okolností to byla denní uživatelská data a kolegyně nutně potřebovala svůj smazaný soubor. Po náročném hledání a zkoušení mi snadno a rychle pomohl jedině Repair My Backup.

tzv. undelete - Pro obnovení smazaných souborů na NTFS či FAT existuje spoustu nástrojů, jeden mám snad i ve Windows TOOLS, důležité však je, především pokud obnovujeme data ze systémového disku, aby takový program byl preventivně nainstalovaný. Stahováním z internetu a následnou instalací totiž smazaná data můžeme nenávratně přepsat. Zajimavé řešení, které obnovuje kde co (i EXT filesystémy) je PhotoRec. PhotoRec totiž rozpoznává známe typy souborů na disku a ignoruje filesystém (pokud nemají speciální rozložení dat nebo optimalizace jako ReiserFS). Další nástroje pro obnovu smazaných souborů z různých fs obsahuje např. Hiren's Boot CD.


Nástroje pro práci s diskem


Acronis - komerční produkty pro klonování, zálohování či distribuování oddílů s daty (poskytují trial verze).

GParted LiveGnome partition editor v Live verzi pro CD/USB - kompletní a funkční nástroj na offline práci s oddíly disku (ve stylu Partition Magic), je obsažen i na Hiren's Boot CD.

HDD Regenerator - velice účinný nástroj na opravu magnetických chyb na HDD. Jedná se o Windows aplikaci a nástroj pro tvorbu bootovacích médií. Na oficiálních stránkách je ke stažení tryout verze, ovšem setup záhadně obsahuje Spyware! Proto jsem připravil portable verzi v sekci Windows TOOLS. Plná komerční verze byla obsažena v Hiren's Boot CD až do verze 10.6, nyní je nahrazena českým HDAT2.

Parted Magic - je live OS přinášející především GParted a Parted, avšak obohacen řadou dalších aplikací  (Partimage, TestDisk, Truecrypt, Clonezilla, G4L, SuperGrubDisk, ddrescue, aj…). V případě bootování ISO je potřeba soubor přejmenovat tak, jak je popsáno. Downloady a dokumentace na stránkách projektu.

Redo Backup and Recovery - plnohodnotná náhrada Acronis True Image a to zdarma na redobackup.org.


Univerzální opravné nástroje


Hiren's BootCD - je stáhnutelné ISO plné freewarových, avšak roky precizně vybíraných utilit na práci s diskem - klonování, zálohování, filesystémem - opravy, obnovy souborů, Windows hesly a registry, testovací nástroje, antiviry, podpora sítě, mini WinXP, apod. Více informací na stránce Hirena (jen info, bez downloadu) nebo hirensbootcd.org (s downloady vč. starších verzí, které obsahovaly i komerční sw).

MSDaRT - ERD neboli Microsoft Diagnostics and Recovery Toolset - Emergency Repair Disk je komerční bootovatelné řešení v podobě mini Windows a řady originálních utilit pro opravy Windows. Ovšem DaRT je součástí Microsoft Desktop Optimization Pack (MDOP) pro multilicenční programy spol. Microsoft. Za zkoušku by však stálo vytvořit bootovací disk ze systémového nástroje Zálohování (možná to bude podobné ERD, nevím, zkuste, napište komentář).

UBCD - Ultimate Boot CD for Windows - obdoba Hiren's Boot CD, nevyužívám, ale doporučuji také připravit.


Live distribuce


UNetbootin - klikací manager, který stáhne zvolenou distribuci (z nabídky) nebo připravený image (např. PartedMagic) a vytvoří bootovací USB - http://unetbootin.sourceforge.net/.

Alternativou a především pro vytváření bootovacích USB s Windows je WinToFlash nebo také utilika Windows 7 USB/DVD Download tool.