Windows User Group - Slovak Republic
Windows User Group - Slovak Republic Windows User Group - Slovak Republic
RSS
Windows User Group - Slovak Republic
prihlásenie
meno login
heslo
Automaticky prihlásiť
zabudli ste heslo?
zaregistrujte sa

kalendár podujatí
február 2024 marec 2024 apríl 2024
po ut st št pi so ne
26 27 28 29 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
dnes 28.03.2024 dnes 28.03.2024

kto je online?
počet anonymných užívateľov: 9
počet prihlásených užívateľov: 0

Top 10 najčítanejšie
1.Vytvorenie USB boot jed...
2.Oprava MBR sektoru bez ...
3.Windows 7 download
4.HTPC alebo ako si posta...
5.Windows 7 RC v slovenč...
6.Konzole pro zotavení v...
7.Panika menom Conficker
8.Platené vs Zadarmo
9.Inštalujte Windows z U...
10.Windows 7 RC download -...

Windows User Group - Slovak Republic

Bezpečnosť > Ze života

Jak jsem formátoval

Windows User Group - Slovak Republic

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.

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.

Windows User Group - Slovak RepublicWindows User Group - Slovak Republic Martin Dráb | pondelok 07. septembra 2009 11:23 | Prečítané: 7249 x | neohodnotené |
Windows User Group - Slovak Republic
Windows User Group - Slovak Republic

 
Windows User Group - Slovak Republic
vyhľadávanie

partneri

2 % od Vás pre WUG
2 % od Vás pre WUG

sponzori






Windows User Group - Slovak Republic
Windows User Group - Slovak Republic
Windows User Group - Slovak Republic

Copyright © 2008 Windows User Group Slovensko

Windows User Group - Slovak Republic domov Windows User Group - Slovak Republic o nás Windows User Group - Slovak Republic podujatia Windows User Group - Slovak Republic odkazy Windows User Group - Slovak Republic informačné kanály Windows User Group - Slovak Republic
Windows User Group - Slovak Republic