FW: bootloader W98 a loopback ve Fedora 2

Miloslav Synek synek na pbtisk.cz
Středa Březen 23 14:17:32 CET 2005


dobry den,

> > > ono to celé nebude zas tak jednoduché,
> > > jde tu podle mého o několik věcí současně,
> > > 1. fdisk /mbr funguje, ale ten pouze provede obnovení
> > >    loaderu v /dev/hda, čili tzv. MBR (master boot record)
> > >    a to ne nějakým opsáním odněkud, ale jeho novým vytvořením,
> > >    a nějaké /dev/hda1 (c: po windowsku) ho vůbec nazajímá.
> 
> ehm, uplne nesouhlasim - melo-li by to byt jak rikate, coz by 

... tak ja pro zmenu rikam ze to tak je, a to za 1. proto, ze to
vim a 2. pokud by to tak nebylo, odkud by si fdisk onen MBR napiskal
na novem disku.

> bylo krasne, musel bych mit uz davno Windowsi loader v MBR. 

... ale toho bohda nebude, ten tam prece nema co delat. V MBR
je pouze trivalni loader, ktery neumi nic jineho, nez z partition
table precist ktera ze partisna je jako prvni nastavena na "active"
a pokud ji najde, nacte jeji bootrecord a do nej preda rizeni a tim
konci jeho zivot, a nebo tu partisnu nenajde a pak zarve nejakou
hlasku ve smyslu "missing operating system".

> To ale nemam. Nejdrive jsem musel v BIOSu vypnout nejakou 
> antivirovou ochranu, ktera Widlackemu fdisku (ktery na rozdil 
> od linuxu zrejme saha na disk pres 
> BIOS) zamezovala zapis do MBR. Pak jsem nabootoval z CDcka 
> W98 a spustil fdisk /mbr. Tou dobou jsem z RH7.3 mel do MBR 
> natazene LILO. Po spusteni fdisk /mbr se najednou zacal misto 
> LILO bootovat GRUB. Windowsi fdisk jej stezi vycetl od nekud 

... a proc by nezacal? Vzdyt na zacatku bylo tusim receno, ze GRUB
byl naistalovan ne do /dev/hda ale do /dev/hda1, coz je po windowsku
bootrecord 1.partisny. A ponevadz fdisk /mbr _spravne_ obnovil funkci
loaderu v MBR, a ta prvni partisna (/dev/hda1) je oznacena jako "active"
tak ten natahne ten grub a spusti ho.
Jinymi slovy, vsechno funguje tak jak ma.

Bohuzel, tady se opet vracime k tomu pravemu problemu - znicenemu
bootrecordu windowsi partisny, protoze v nem totiz neni je nejaky
spustitelny kod, ale nekolik podstatnych udaju o rozvrzeni disku.
Teoreticky je mozne, ze nekde bude existovat zaloha, ale zarucene
to neni. Jedine ji zkusit najit. Muze byt v podstate nekde ve
zbyvajicich sectorech stopy 0 (1.sektor je MBR, ostatni teoreticky
prazdne), pripadne muze byt zasit nekde mezi sektorem 1 stopy 1
(tam je zpravidla bootrecord 1.partisny - /dev/hda1) a zacatkem
1. kopie FAT - velikost tohoto prostoru byva ruzna podle velisti
a geometrie disku, ale zpravidla nejakych 30 sektoru.
A pak posledni varianta, zrekonstruovat bootrecord rucne nebo pomoci
nejakeho k tomu urceneho nastroje (jiz zmineny Nort Disk Editor apod.)
Na to uz je zapotrebi neco malo vedet o strukture toho disku.
(takove ty ptakoviny typu "bytes per sector", "sector per cluster",
"reserved sectors at begin","sector per fat" atd.)
Z vlastnich mnoholetych skusenosti muzu rict, ze to je obcas velika
zabava uchodit takovy spravne nakopnuty disk, hlavne kdyz vam vedle
toho zakaznik breci, jak zivotne dulezity data tam ma (nebo mel).

> partisny. Odtud dedukuji, ze Widle maji schovanou pro pripad 
> havarie kopii bootloaderu jeste v bootsectoru systemove 

... widle tohle bohuzel tusim nedelaji, ale delaji to ruzne softy
tretich firem pouzivane pro udrzbu disku.

> partition, odkud jej v pripade potreby do MBR natahnout onim 
> nedokumentovanym fdisk /mbr. To je - podle me - jedine 
> racionalni vysvetleni, proc se v MBR misto LILO neobjevil W98 
> bootloader, ale GRUB.

... ale on nebude v MBR ale v bootrecordu /dev/hda1 - viz vyse

> 

> MSDOS skutecne moji Widle-systemovou partition neprecte, pac 
> je to FAT32, zatimco ten umi jen FAT16 - aspon bych 
> predpokladal, ze to tak bude.

.... pokud vezmete MSDOS jako takovy (do ver. 6.22 tusim) pak ano,
ale ten co je soucasti Win9x (nekdy oznacovany jako MSDOS 7.x) tak
ten samozrejme fat32 umi, _ale_ jenom kratka jmena (8.3 konvence).
A k tem jak jiz vsichni vime se nedostane, protoze ma prepatlany
bootrecord a nemuze si z nej precist offset od 2.kopie fat k prvnimu
adresarovemu sektoru. (Pozor, na cteni dlouhych jmen to ale nema vliv).

> 
> Radil jsem se s pritele Googlem a mam takove tuseni, ze 
> fsck.vfat byl velmi blizko reseni podobnemu, jako popisuje 
> webova stranka 
> http://support.microsoft.com/?kbid=246146. Jedna se tam sice o nejaky 
> dskprobe.exe, coz me moc nezajima, ale podstana je zminka o  
> kopirovani 
> zalohy bootsectoru. To totiz chtel fsck.vfat taky. Vysypal na 

... ano, tu jste ale musel predtim necim vytvorit (Tusim nejaky nastroj
ve windowsim "Support tools", dale ledacos od Nortonu atd. atd.)

> me dloooouhy 
> seznam rozdilu mezi bootsectorem a jeho backupem. Zatrhnul 
> jsem mu to, 
> protoze jsem vedel o zaloze FATky, ale nikoli o zaloze 
> bootsectoru. Myslite, ze zapisem GRUBu do /dev/hda1 se 
> prepsala jen prvni kopie a backup zustal OK? Pokud ano, mohl 
> by mi fsck.vfat pomoci...

... radeji bych ji ale zkusil hledat rucne (bohuzel fsck jsem
nikdy na oddily FAT nepouzil, takze nevim co umi).

jedine co vam mohu jeste poradit, co hledat:
-hledat sektor ktery bude zacinat nasledujicim retezcem:
0xEB 0x58 0x90 0x4D 0x53 0x57 0x49 0x4E   ...MSWIN
a o kousek dal (offset +0x52) je citelny text "FAT32"
a koncit bude: 0x55 0xAA.

a ten potom tim potom obnovit sektor 1 v /dev/hda1.

S pozdravem

Miloslav Synek 

Kontakt: synek(zavináč)pbtisk(tečka)cz 
------------------------------------------------------------------------
Počítače jsou výborným pomocníkem při řešení těch problémů, které by bez
nich vůbec neexistovaly......



Další informace o konferenci Linux