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

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…

Autor

Martin

Pracuji jako ajťák a grafik na volné noze, zejména ale pro brněnskou firmičku vyrábějící ekodrogerii. Dále působím v brněnském systému místní směny Rozleťse, Českém zahrádkářském svazu, České psychedelické společnosti, spolku Archetypal a Mezinárodní komunitě dzogčhenu. Asi mě baví kumulovat různé funkce a přidávat si spoustu práce. Lidi o mě říkají, že jsem multifunkční, což je asi trochu pravda :-) Chcete mě podpořit? BTC: 37mf2FJR26Ce3DxMkocukJDgB1eVjasnZB, příp. PGP podepsané adresy dalších kryptoměn.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *