Sociálne siete

SecIT.sk na Facebooku SecIT.sk na Google+ SecIT.sk na Twitteri Hosting zadarmo od WebSupport.sk

Podporte nás


V prípade, že Vám obsah nášho portálu niekedy nejakým spôsobom pomohol, či bol pre Vás prínosom prosím podporte jeho chod ľubovoľnou čiastkou. Ďakujeme!

Prihlásenie

Štítky

Vyhľadávanie

You are here

Domov

Jak jsem formátoval

Tento článek nepojednává o žádném bezpečnostním riziku a nemá s bezpečnostní nic společného ani v jiném smyslu. Jde o vyprávění mé osobní zkušenosti získané při používání nástroje Správa disků na práci s diskovými oddíly. Jedná se o tři se sebou nesouvisející příběhy, které doufám přispějí k objasnění některých poblémů kolem formátování.

Příběh první: Správce disků ve Windows a práce s oddíly

Psal se prosinec roku 2007 a můj tehdy půl roku starý notebook - a zvláště jeho pevný disk - zažíval krušné chvíle při programování prvních verzí aplikace FileDetector. Notebook je vybaven pevným diskem o kapacitě 120 GB a právě po půl roce používání jsem zjistil, že jsem disk špatně rozdělil na oddíly. Bylo třeba některé z nich odstranit a jiné zvětšit.

Rozhodl jsem se pro starší verzi programu PartitionMagic a provedl s pomocí něho veškeré nutné úpravy. Protože změny postihly i systémový oddíl, PartitionMagic vyžadoval restart, aby neohrozil běh systému. Ne všechny změny byly úspěšně provedeny (PartitionMagic se po restartu nespustil, aby upravil systémový oddíl), a tak jsem se rozhodl použít livecd distribuce Ubuntu a tím veškeré problémy vyřešit.

Nástroj gparted dokončil to, co začal PartitionMagic a vše vypadalo a fungovalo dobře. Jenom do seznamu diskových oddílů přibylo tajemné písmeno Z. Windows o něm tvrdila, že je formátován souborovým systémem RAW. Rozhodl jsem se prohlédnout si vše v PartitionMagic, ten však při svém startu našel a úspěšně opravil jakousi chybu v hlavním zaváděcím sektoru (Master Boot Record) a poté vytrvale hlásil, že struktura disku je "BAD" a že žádné oddíly nejsou přítomny.

Rozhodl jsem se prohlédnout si vlastnosti tajemného oddílu Z ve Správci disků. Tato komponenta Windows neměla s nalezením oddílů žádné problémy a vše pěkně zobrazila. Rozhodl jsem se proti tajemnému oddílu Z zakročit a zformátovat jej. To vak byla osudová chyba.

Po formátovacím povelu totiž došlo k vteřinovému zatuhnutí kurzoru myši následovaném modrou obrazovkou. Proces csrss.exe, jehož běh je pro systém klíčový, byl nenadále ukončen a počítač je třeba restartovat. Což jsem ihned učinil. Jaké však bylo mé překvapení, když monitor místo loga Windows a pohybujícího se modrého proužku ukázal pouze trochu "rozsypaného čaje!"

Bylo zřejmé, že obsah disku byl poškozen. A reinstalace Windows nepřipadala v úvahu, protože se na malém systémovém oddílu nacházela data, která pro mne měla velkou cenu a zálohovaná nikde nebyla.

Pojal jsem myšlenku, že poškozen byl pouze hlavní zaváděcí sektor, jenž je prvním sektorem na disku a obsahuje informace o primárních diskových oddílech (viz tabulka). Protože jsem zrovna programoval jeho interpret do FileDetectoru, pamatoval jsem si některé hodnoty udávající informace o poloze a velikosti diskových oddílů. Jako nejpodstatnější se ukázala informace, že první sektor systémového oddílu má číslo 63.

Tabulka 1: Struktura hlavního zaváděcího sektoru (MBR)

Velikost struktury Popis
446 Kód zavaděče. Sem předá BIOS řízení po provedení sekvence POST (Power On Self Test).
16 Informace o poloze a velikosti prvního primárního diskového oddílu
16 Informace o poloze a velikosti druhého primárního diskového oddílu
16 Informace o poloze a velikosti třetího primárního diskového oddílu
16 Informace o poloze a velikosti čtvrtého primárního diskového oddílu
2 Značka konce hlavního zaváděcího sektoru. Vždy má hodnotu 0x55 0xAA. Předpokládá se, že při poškození tohoto sektoru dojde i k poškození této hodnoty. Jedná se tedy o jistou formu kontrolního součtu.

Záchranný plán spočíval v upravení tabulky oddílů tak, aby byl při bootování nalezen systémový oddíl (začínající na sektoru 63 a končící kdovíkde), Windows naběhla a bylo možné vše zazálohovat a přeinstalovat. O záchraně dat z ostatních oddílů jsem si nedělal iluze - nevěděl jsem, kde přesně jsou. Je pravda, že jsem k zjištění těchto informací mohl použít software, který pro tyto účely určitě někdo vytvořil. ale žádný takový program jsem neznal a notebook bylo třeba rychle zprovoznit. Navíc jsem osud dat na systémovém disku nechtěl svěřit do jiných rukou, než jsou ty moje.

Po hodině práce spatřil světlo světaprogram, jenž mi umožnil editovat obsah hlavního zaváděcího sektoru. Navíc uměl obsah MBR uložit do souboru. Pak již zbývalo zodpovědět poslední otázku: jakou mám nastavit velikost systémového oddílu? Přesnou velikost jsem totiž nevěděl.

Protože oddíly formátované souborovými systémy FAT a NTFS uchovávají informaci o své velikosti i ve svém prvním sektoru, rozhodl jsem se do MBR napsat jen orientační hodnotu. Představa byla taková, že zavaděč nebude příliš kontrolovat, jak je oddíl velký a rovnou načte jeho první sektor. Zbytek systému se pak bude řídit hodnotou uvedenou v prvním sektoru, ne v MBR.

Moje domněnka se ukázala jako správná a po úpravě MBR systém nabootoval. Opět jsem viděl na displeji notebooku logo Windows s běhajícím modrým proužkem. Po zálohování všech potřebných dat (včetně zdrojového kódu FileDetectoru, o který jsem však málem přišel o tři měsíce později) jsem systém přeinstaloval. A to je konec příběhu.

Poučení: nepoužívat více správců diskových oddílů najednou, nevylepšovat to, co funguje, a hlavně zálohovat. Není nutné věšet hlavu, když se něco nepovede. Mnohem lepší je se nad problémem zamyslet, odložit veškeré emoce stranou a pokusit se najít řešení.

Příběh druhý: rychlý a pomalý formát disku

Druhé neštěstí se stalo v březnu 2008, když jsem pilně pracoval na dokončení jedné z prvních verzí FileDetectoru. Tato verze ještě neobsahovala ani grafické uživatelské rozhraní. Ovládala se jen pomocí parametrů příkazové řádky.

FileDetector tehdy krátkou dobu disponoval vlastním ovladačem disku, který umožňoval obejít snad všechny tehdy známé (a dnes známé) rootkity. Na čtení disku tedy bylo možné použít dva ovladače - standardní ovladač Windows, nebo ovladač od FileDetectoru, o jehož existenci operační systém nevěděl. Velkým problémem se stala synchronizace přístupu z těchto dvou míst k jedinému disku.

V nestřeženém okamžiku se oba ovladače pokusily zároveň poslat příkaz pevnému disku, což vedlo k nekonzistentímu stavu a k modré obrazovce. Systém se zachoval podle nastavení v sekci Ovládací panely | Systém | Upřesnit | Spuštění a zotavení systému a začal vypisovat celý obsah paměti RAM (2 GB) na disk. Bohužel jej nevypisoval na místo k tomu určené (do stránkovacího souboru), ale přepisoval data diskového oddílu C počínaje prvním sektorem.

Přepsáním prvních 2 GB oddílu C byly zničeny veškeré interní struktury souborového systému. Jelikož oddíl C byl systémový, nebylo možné nabootovat. Pokusil jsem se vše opravit z Konzole pro zotavení příkazem fixboot - tehdy jsem ještě nevěděl, že jsou přepsány počáteční 2 GB ze systémového oddílu. Příkaz fixboot se rozhodl, že systémový oddíl je formátován souborovým systémem FAT (to nebyla pravda, bylo tam NTFS), čímž destruktivní práci dokončil.

Na systémovém oddílu se nacházely zdrojové kódy FileDetectoru, které již tři měsíce nebyly nikde jinde zálohovány. Výhodou zdrojového kódu je, že má podobu textových souborů. Pokud se podíváte na disk v hexadecimálním editoru, text od jiných dat bezpečně poznáte a navíc můžete vyhledávat určitá slova, o kterých víte, že se v daném textu určitě nacházejí.

Protože jiná možnost než záchrana FileDetectoru neexistovala, nabootoval jsem z CDčka LiveXP a spustil svůj oblíbený hexadecimální editor WinHex. Díky nějakému problému s fonty však WinHex nezobrazoval obsah disku. Tudy tedy cesta nevedla.

Protože mne nenapadlo připojit disk k jinému strojia odtud z něho vše vytáhnout, zbyla asi jediná možnost - naformátovat a nainstalovat systém. Jelikož měl systémový oddíl 120 GB a čerstvá instalace XP zabere gigabajtů sotva pár, bylo velmi nepravděpodobné, že by veškeré zdrojové kódy FileDetectoru byly tímto krokem zničeny.

Při formátování, kterému se vzhledem k poškození struktury oddílů nedalo vyhnout, bylo třeba zachovat původní obsah co největší části disku. Tomuto požadavku vyhovuje rychlé formátování, jehož následkem je pouze přepsání interních struktur souborového systému tak, že veškerá plocha disku je chápána jako volné místo. Pomalé formátování provede to samé jako rychlá varianta, navíc však přepíše obsah každého sektoru nesmysly.

Po rychlém formátování a instalaci operačního systému jsem pomocí programu WinHex našel část zdrojových kódu FileDetectoru. Zbývající části byly nalezeny na flash disku, jenž v únoru prodělal pouze rychlý formát. Stáří různých částí zdrojového kódu bylo v rozpětí tří měsíců, přesto se vše podařilo skloubit dohromady takřka během jedné minuty.

Poučení: i z disku s poškozenou strukturou oddílů lze vytáhnout požadovaná data. A nemusíte používat jenom hexadecimální editor, existují speciální programy, které projdou disk sektor po sektoru a pokusí se jeho obsah interpretovat jako soubory. U souborů, které mají například pevně daný vnitřní formát, je tento postup poměrně efektivní. Mezi taková programy patří například Recuva.

Pokud to nebude nutné, nepoužívejte pomalé formátování. Později nebudete litovat. Alternativou je pravidelné zálohování.

Příběh třetí: Flashka o kapacitě 4 GB pojme pouze 650 MB dat

Pokud předchozí příběhy měly nějaký dramatický náboj, tak tento žádný nemá. Stal se v srpnu 2009 a hlavním aktérem byla flashka formátovaná na Linuxu.

Pro pochopení pointy tohoto příběhu je nutné vědět, že disky (platí zvláště pro flashky a malé staré pevné disky) lze formátovat dvěma způsoby. Buď naformátovat celý disk tak, že nepodporuje rozdělení na oddíly (obsah prvního sektoru neodpovídá hlavnímu zaváděcímu sektoru), nebo formátovat s podporou oddílů (disk pak obsahuje MBR a může být i později rozdělen na více oddílů s různými souborovými systémy). Druhému způsobu se za dob Windows 9x říkalo "formátování s podporou velkých disků."

Windows zpřístupňují aplikacím jednotlivé diskové oddíly pod písmeny anglické abecedy, aby zachovávaly zpětnou kompatibilitu. Pokud je disk naformátován bez podpory oddílů (bez MBR), pomocí písmena s ním asociovaného můžete přistupovat k veškerému obsahu. Písmeno je branou k celému fyzickému zařízení. Naformátujete-li však disk s podporou oddílů, písmena nejsou namapována na celý disk, ale jen na jeho oddíly. Každý oddíl, jehož souborový systém Windows rozpoznají, je standardně přístupný pod jedním písmenem. Dané písmeno vám tedy umožní pracovat s určitým oddílem, ale nic jiného. Pokud má disk například oddíly asociované s písmeny C, D a E, nemůžete přes písmeno C číst obsah oddílu namapovaný pod D (nepřekrývají-li se).

Z předchozího odstavce vyplývá, že pomocí viditelných asociací písmen s oddíly nelze přistupovat k sektorům mimo tyto oddíly - například k hlavnímu zaváděcímu sektoru.

Do ruky se mi dostala flashka, jenž byla formátována nějakou linuxovou utilitou. Původním záměrem bylo z ní vytvořit bootovací médium s linuxovou distribucí. Bohužel při této proceduře došlo k chybě a flashka začala tvrdit, že má jen 650 MB volného místa, ač před procedurou bylo volného místa 4 GB.

Můj první pokus o nápravu spočíval v novém zformátování na Windows. Tento pokus jsem ani nedokončil, protože kapacita po naformátování by byla stejná jako před ním - tedy 650 MB.

Po dlouhém přemýšlení jsem se podíval do Správce disků a zjistil "příčinu všeho zla." Flashka obsahovala MBR a jeden oddíl veliký 650 MB. Zbytek prostoru byl nevyužit. Mým cílem tedy bylo tento oddíl smazat a médium naformátovat bez podpory oddílů (jak to Windows s flashkami běžně dělají). Správce disků odmítal z flashkou jakkoli pracovat, ať byl její oddíl asociován s písmenem či nikoliv. Zkusil jsem štěstí s PartitionMagic, ale ani ten bohužel také nepomohl, flashku z neznámého důvodu vůbec nenašel.

Selhání výše popsaných nástrojů pro mne bylo překvapením. Rozhodl jsem se spolehnout na vlastní prográmek. Pravděpodobně bude stačit pouze zničit MBR flashky a Windows umožní využít celou její kapacitu.

Výše jsem psal, že k hlavnímu zaváděcímu sektoru se nelze standardním způsobem dostat, protože se nachází v oblasti, jenž není asociována s žádným písmenem. Každý fyzické diskové zařízení je reprezentováno v jádře systému nějakým objektem. A právě objekty s názvem \\.\PhysicalDriveX, kde X je nezáporné celé číslo, odkazují na všechny disky s MBR. Tyto objekty v Průzkumníku neuvidíte (na rozdíl od písmen asociovaných s jednotlivými oddíly), ale rozhraní Windows API s nimi pracovat umožňuje.

Úkol se nakonec velmi zjednodušil. Pomocí krátkého programu jsem zapsal nesmyslná data do hlavního zaváděcího sektoru flashky, jenž byla reprezentována pod objektem \\.\PhysicalDrive1. V této fázi hrozilo pouze nebezpečí překlepu s fatálními následky (\\.\PhysicalDrive0 odkazoval na pevný disk notebooku. Přepsání MBR tohoto disku by vedlo k okamžité modré obrazovce a k opakování prvního příběhu).

Poučení:z příběhu žádné neplyne, protože se nestalo nic závažného. Příběh mne pouze utvrzuje v myšlence, že práce s diskovými oddíly a formátování nepatří mezi silné stránky Windows.

Závěr

Tyto příběhy se skutečně staly, žádná jejich část není smyšlená. Proto asi nejsou tak dramatické a zábavné. Také bych rád upozornil na fakt, že mé postupy nebývají nejpřímočařejší ani nejjednodušší a navíc nemusí zcela řešit daný problém. Pomocí speciálních programů můžete zachránit většinu dat či opravit hlavní zaváděcí sektor. Kdybych těmto programům věřil a nespoléhal se jen na své znalosti a nesnažil se vše vyřešit "holýma rukama," mohl jsem v prvním i druhém příběhu zachránit více dat.

Cílem tohoto článku je poukázat na některá nebezpečí, která se za formátováním skrývají a také na to, že nemusíte věšet hlavu, pokud se vám něco takového přivodí. Můžete namítnout, že postupy zde uvedené jsou pro vás "vyšší dívčí." Tento argument chápu. Na druhou stranu existuje mnoho internetových portálů a diskuzních fór, kde vždy najdete někoho, kdo vám rád pomůže.

Komentáre

PartitionMagic není vhodný na práci s dnešními disky (>400GB), řadiči (SATA) a novějšími souborovými systémy (NTFS Vista/Win2008). V současné době věřím jen Acronis Disk Directoru. P.S. ta CAPTCHA je naprosto šílená! Nestačila by otázka kolik je 10 bez 1?

Tohle byl 120 GB disk formátovaný NTFS (Win XP). Nejsem si jistý, zda jsem emuloval ATu, nebo tam nechal SATu nativně. Bojím se používat tyhle programy pro práci s NTFS oddíly, zatím jsem nikdy nevyšel beze ztráty dat. Bylo by fajn, kdyby NTFS přestalo být obchodním tajemstvím a programátoři jenom nehádali, jakou má vnitřní strukturu.

nedalo sa použiť miniXP ktoré sa nabootuje z Hiren's BootCD a následne zálohovať dáta na kľúč? mal som v ňom prístup na systémový disc aj HDD2. ja som si takto zachránil 300GB dát pomocou 32GB kľúča.

BootCD jsem použil, ale ne k záloze. V prvním příběhu byl poškozený hlavní zaváděcí sektor, kde se nachází i údaje o rozložení jednotlivých oddílů (partitions) na disku. Tudíž systém vůbec nevěděl, co je na disku za oddíly, takže viděl jen disk jako fyzické zařízení se souborovým systémem RAW, žádné soubory nebo složky. V druhém příběhu sice oddíly existovaly, ale na systémovém byly přepsány všechny důležité struktury souborového systému, takže složky a soubory též vidět nebylo. V prvním příběhu jsem BootCD použil k tomu, abych opravil hlavní zaváděcí sektor. V příběhu druhém bylo použito k prozkoumání, jak vážná je situace. V žádném z těchto příběhů nebylo možné prostě vzít soubory a adresáře a zazálohovat. Samozřejmě bylo možná pomalu odzálohovat celý obsah disku a pak ho nějak rekonstruovat, ale to mi přišlo moc nákladné a pomalé...

jo, tyhle realny pribehy jsou hodne prinosny... takze diky

Pravděpodobně se brzo objeví další :-).

Podporte nás


Páčil sa Vám tento článok? Ak áno, prosím podporte nás ľubovoľnou čiastkou. Ďakujeme!


ITC manažer Security-portal.cz Spamy.cz PHP Fushion Soom.cz
Hoax.cz Antivirove centrum Crypto-world.info SPYEMERGENCY.com