GRUB a omylem skrytý rozšířený oddíl (extended partition)

28.10.2006, 18:02 | Počítače a technika

GRUB je tzv. boot loader, který se používá, když máme v počítači více operačních systémů a chceme si při zapnutí vybrat, který spustíme...

Pozor: Tento článek je silně odborný, vyskytují se tu mraky pojmů, které nevysvětluji. Je určen spíše jen pro ty, kteří mají s podobnými hrátkami vlastní zkušenosti...
Typickým příkladem je takový dualboot Windows XP a GNU/Linux, který již dlouho úspěšně provozuji. Dnes jsem ovšem zmenšil oddíl pro WinXP, abych měl místo pro pokusy se třetím operačním systémem.

OK, zmenším 10GB primární oddíl (partition) na 8,5GB a na volném místě vytvořím novou partition o velikosti 1,5GB. Za touto se ještě nachází rozšířený oddíl, kde je 90GB velká FATka, jakožto úložiště většiny dat, a potom linuxové oddíly Fedory (/boot, /, swap). Zatím stále vše OK.
GRUB vidí /boot oddíl uvnitř rozšířené partition jako (hd0,5), a to se po přidání nové primární parition nezmění -- logické oddíly se na Linuxu číslují vždy od 5ky, resp. u GRUBu od 4ky (ten začíná počítat od nuly).
Co bylo původním cílem? Přidat do GRUBu další položku pro nový OS, přičemž WinXP by neměly oddíl tohoto nového OS vidět, a tento nový OS by zase neměl vidět oddíl Windowsů XP. To se řeší přidáním flagu "hidden" do ID partition - normální NTFS oddíl tak má např. Id 07, skryté NTFS má ale Id 17.
Příkazy na skrývání oddílů vypadají v GRUBu celkem nevinně - hide (hdX,Y) a unhide (hdX,Y). Mám jen jeden disk, tj. X bude 0. A logicky přemýšlím, že když je první primární oddíl (hd0,0), tak druhý bude přeci (hd0,1)! Takže konfiguruji grub.conf a nastavuji skrývání pro nový a starý systém. Ukládám, rebootuji a zkouším Windows XP, jestli s novým oddílem neprotestují a jestli ten GRUB teda funguje jak má.

Windowsy nabootovaly, a... devadesátigigabajtový oddíl s veškerými daty... zmizel! Disk "D:" je najednou onen 1,5 gigový čistý disk, co jsem vytvořil. Průšvih, že? Spouštím Windowsového Správce disků, abych se podíval, cože se to stalo. A nestačím se divit -- datový oddíl, stejně jako dříve "Neznámé" další (linuxové) oddíly, tu nejsou; namísto toho tu je krásný "Neznámý" 110GB velký oddíl! Co to znamená? Že zkrátka onen donedávna "Rozšířený oddíl", kde byly namačkané další "Logické svazky", se tváří jako běžný, byť neznámý primární oddíl. Cool!
Po rebootu se už ani nenahodila nabídka GRUBu, neboť ten, překvapivě, také nedokáže najít stage2 a konfiguraci grub.conf na logickém oddíle (ex)rozšířené partition. Ještě lepší!

Vytahuji záchranné CD Fedory, ovšem ani to žádnou Fedoru nenašlo (je tu přece jenom NTFS oddíl Windowsů, pak nový čistý oddíl a pak neznámý 110GB oddíl!) - super!
Zkouším ABC Linuxu Live CD, abych se podíval, co o uspořádání disku říká QtParted. Uhodne někdo co mi pověděl? :e)

Tak jsem zkusil magickou příkazovou řádku a cfdisk. A tím bylo jasno - ten Neznámý oddíl má Id 1F, a je v Partition Table na druhém místě, zatímco nově vytvořený primární oddíl, byť je na disku fyzicky PŘED tímto Extended, má pořadové číslo 3. Tudíž příkaz GRUBu "hide (hd0,1)" neskryl nově vytvořený primární oddíl, jak jsem si myslel, ale skryl celý ten rozšířený oddíl, zatímco nově vytvořeného se ani nedotkl!
A cfdisk protestoval, že nemůže "neznámý oddíl" s Id 1F změnit na Extended oddíl s Id 0F. Proč to jako nemůže udělat, když GRUBu to šlo "úplně samo"?!

Ovšem, stejně tak jako brýle se bez brýlí špatně hledají, příkazy GRUBu se bez funkčního GRUBu špatně spouští! Tak jsem začal hledat nějaké linuxové LiveCD, které by v sobě mělo GRUB, čili konzoli, které řeknu, aby zase unhidnul ten (hd0,1), v praxi pouze přepsal Id 1F na 0F... to jsem našel až na nějakém stařičkém Knoppixu, příkaz spustil, a... zazvonil zvonec, a pohádky byl konec, a všichni žili šťastně až do smrti! Všechny výskyty (hd0,1) jsem změnil na (hd0,2) a všechno šlape jako nové hodinky.
Připadal jsem v ten okamžik jako nějaký James Bond, který odhaduje, který drátek bomby přestřihnout, aby to nebouchlo :) Tady za vším taky mohl jeden jediný BIT, který "jen" znepřístupnil nějakých těch sto gigabajtů dat... Celé to umocnilo nahlédnutí na obal DVD s posledními zálohami a na datum napsaný na něm...

Četlo: 4236
pridej.cz

Komentáře#


1. brozkeff# | 28.10.06, 18:04
To je zmatek, když zvířata mají svátek

partition = oddíl = svazek
rozšířený = extended

:o)


2. gogo# | 28.10.06, 20:31

čekal jsem, jak tahle bondovka dopadne!!!:) asi by mě nasralo přijít o tolik dat. a na datum poslední zálohy se radši nekoukám, páč je určitě ještě z doby kamenný.


3. Non_E# | 03.11.06, 14:54 | http://rada.borec.cz | Non_E#rada.borec.cz
S oddíly je legrace

Tohle je asi nejlepší historka co jsem s oddíly poslední dobou slyšel. Mě moje patálie donutily používat fdisk místo omalovánek typu qtparted a podobně. Poslední poznatek byl, že když fdisk napíše restartuj pc, tak to mám udělat, protože si jinak můžu pěkně rozhasit partition table. Tak teď mám bokem uložený mbr a spím hned klidněji. Tobě by to možná taky pomohlo (i když to by nebyla taková Bondovka, kdybys měl zálohu :-) )


4. Agila77.com# | 31.01.07, 15:20 | http://www.agila77.com | agila007#seznam.cz
Skrytá partition

koupil jsem si nový disk a tohle se mě přihodilo poradí mě někdo jak to zvrátit zpět jedná se o disk na notebooku a ten druhý je připojen pomocí usb protože teď nabootovat nejde http://xchat-plzen.wz.cz/gif/acer-20.jpg


5. brozkeff# | 31.01.07, 18:37

To vypadá na jednoduché řešení: Jelikož systém ten oddíl normálně nalezne, dokonce určí že je to FAT32 a je "V pořádku", jediný problém je že ten svazek nemá přiřazeno žádné "písmenko" (např. E:).

1) Otevři správce disků
2) Pravým tlačítkem klikni na ten neviditelný oddíl a vyber "Změnit písmeno jednotky a cestu"
3) V okně co se objeví klikni na tlačítko Přidat
4) Vyber variantu "Přiřadit písmeno jednotky" a vyber si nějaké písmenko
5) všechno potvrď a je to


Vložit nový komentář#

— Aby se komentář odeslal, políčka Jméno, Komentář a správná odpověď na antispamovou otázku musí být vyplněna!
— phpBB tagy ani jiné syntaxe tu nefungují, proto je nepoužívej – komentář jen bude plný balastu.