|
| Begynder spørgsmål.. Fra : Thomas Schulz |
Dato : 24-01-01 21:47 |
|
Er der en MBR på hver harddisk?
Og hvis ikke, hvordan vælges hvilken harddisk der styrer MBR (henholdsvis
Linux og Windows - tager den bare hda?).
Når man siger Lilo skal ligge indefor de første 1024 cylindre - hvad menes
der så specifikt med det? Jeg har ledt på nettet, men jeg kunne ikke finde
nogen som helst forklaring (jeg har en rimelig ide om det, men jeg kunne
godt bruge noget mere information).
Er der nogle der har nogle links til forståelse af: hvorledes hardware- og
softwaremæssigt (hvis jeg selv ville skrive et program, der rettede i en
MBR, hvor kan jeg så finder info om hvor jeg skal skrive MBR'en på
harddisken) MBR, partioneringer mv. afgøres.
Mvh.
Thomas Schulz
| |
frank damgaard (25-01-2001)
| Kommentar Fra : frank damgaard |
Dato : 25-01-01 11:01 |
|
Thomas Schulz <dk_sz@hotmail.com> wrote:
> Er der en MBR på hver harddisk?
> Og hvis ikke, hvordan vælges hvilken harddisk der styrer MBR (henholdsvis
> Linux og Windows - tager den bare hda?).
MBR ligger i første sektor, og alle diske har en sådan.
Men det er kun første disks MBR som BIOS gider at hente ved BOOT.
(sådan er det på WinTel-platformen)
> Når man siger Lilo skal ligge indefor de første 1024 cylindre - hvad menes
> der så specifikt med det? Jeg har ledt på nettet, men jeg kunne ikke finde
> nogen som helst forklaring (jeg har en rimelig ide om det, men jeg kunne
> godt bruge noget mere information).
Egentlig forkert.
Lilo bruger BIOS til at hente linux kernen.
Hvis linux kernen helt eller delvist befinder sig over de 1024 cylindre
så kan gamle versioner af Lilo (eller nye lilo men gammel BIOS)
ikke hente kernen , da BIOS kald oprindelig kun havde max 1024 cyl.
Nyere BIOS har udvidede INT 13 kald der kan klare > 1024 cyl,
og Lilo version fra januar 2000 har support for > 1024.
(hvis BIOS har det)
> Er der nogle der har nogle links til forståelse af: hvorledes hardware- og
> softwaremæssigt (hvis jeg selv ville skrive et program, der rettede i en
> MBR, hvor kan jeg så finder info om hvor jeg skal skrive MBR'en på
> harddisken) MBR, partioneringer mv. afgøres.
Jeg har en gammel tyk bog: "The programmers PC source book"
hvor formater for boot sektor og MBR er beskrevet.
Egentlig i princip simpelt. BIOS henter MBR (boot sektor)
og i denne har man lagt lidt program+ partition information.
Dette program skal så lave det videre arbejde i boot-process.
Jeg mener at der også står noget i LILO kildetekst og
i nogle howtos vedr. boot og Lilo (så vidt jeg husker).
--
Frank Damgaard
| |
Thomas Schulz (25-01-2001)
| Kommentar Fra : Thomas Schulz |
Dato : 25-01-01 23:58 |
|
> Men det er kun første disks MBR som BIOS gider at hente ved BOOT.
> (sådan er det på WinTel-platformen)
Er det ikke også dan på Linix + Intel (eller altså samme processer type) så?
Det er vel Bios, der bestemmer det udelukkende?
> Lilo bruger BIOS til at hente linux kernen.
> Hvis linux kernen helt eller delvist befinder sig over de 1024 cylindre
Okay.. Har du muligvis en url om hvad cylindre rent fysisk er på haddisken -
eller evt. bare hvilken betydning de har (fx, hvor mange cylindre har en 8GB
harddisk, svinger antallet, svinger størrelsen af en cylinder etc.)?
> Nyere BIOS har udvidede INT 13 kald der kan klare > 1024 cyl,
Uden at vide helt hvad der ligger i Cylindre, vil det så betyde (dette er et
hypotetisk eksempel), hvis jeg havde en computer fra 1996 (eller altså en
ældre maskine rent bios mæssigt) med Windows installeret i forvejen (og dens
partition fylte udover de 1024 cylindre), så ville jeg ikke kunne installere
Linux?
> Jeg har en gammel tyk bog: "The programmers PC source book"
> hvor formater for boot sektor og MBR er beskrevet.
Guf <grin>. Ej, ok, jeg er egentligt glad og tilfreds med bare at vide det
sådan nogenlunde grundigt, og så selv have et par bookmarks,
hvor jeg kunne læse videre, hvis jeg en dag fik brug for det.
> Egentlig i princip simpelt. BIOS henter MBR (boot sektor)
> og i denne har man lagt lidt program+ partition information.
> Dette program skal så lave det videre arbejde i boot-process.
Dette program bliver så kaldt (og fodret med partition information for den
givne harddisk som bios interesser sig for) for derefter selv at gå ud og
kigge på de andre harddiske og deres MBR (samtidigt skal den også kunne
forstå partione,r som er markeret som "extended", og grave ned i dem) - er
det nogenlunde korrekt, jeg har forstået det?
> Jeg mener at der også står noget i LILO kildetekst og
> i nogle howtos vedr. boot og Lilo (så vidt jeg husker).
Det vil jeg kigge på, når jeg en dag bliver Linux bruger igen. Sidst/første
gang kom jeg til at XKill i administrator mode min desktop mv...så gad det
ikke starte længere.. Jeg tror det er det, der gjorde det i hvert fald.
Mvh.
Thomas Schulz
(btw, mange tak for hjælpen)
| |
frank damgaard (26-01-2001)
| Kommentar Fra : frank damgaard |
Dato : 26-01-01 01:38 |
|
Thomas Schulz <dk_sz@hotmail.com> wrote:
>> Men det er kun første disks MBR som BIOS gider at hente ved BOOT.
>> (sådan er det på WinTel-platformen)
> Er det ikke også dan på Linix + Intel (eller altså samme processer type) så?
> Det er vel Bios, der bestemmer det udelukkende?
Ja, men det er omtrent en defakto standard på hvordan det gøre
m,ed PC'ere/"WinTel".
Men man må da gerne lave en alternativ BIOS, men så er den ikke kompatibel....
>> Lilo bruger BIOS til at hente linux kernen.
>> Hvis linux kernen helt eller delvist befinder sig over de 1024 cylindre
> Okay.. Har du muligvis en url om hvad cylindre rent fysisk er på haddisken -
> eller evt. bare hvilken betydning de har (fx, hvor mange cylindre har en 8GB
> harddisk, svinger antallet, svinger størrelsen af en cylinder etc.)?
Det stod i i lærebøgerne på datalogi kursets første eller andet år.
1 sektor = en klump af NNN bytes. Mindste enhed man henter på disken.
1 spor (track) = N sektorer i en cirkel på disken
1 cylinder = M spor (tracks), hvor alle spor er over hinanden,
dvs. har samme indstilling af hovederne
Hovederne sidder jo på en arm, og når de flyttes så
flyttes alle hoveder. (se det evt. grafisk)
eller: 1 cylinder er samme spornummer på alle overflader.
Med head/hoved angives så hvilket hovede (= overflade) man adresserer.
Men egentlig så burde disse informationer slet ikke stå i BIOS!
Med SCSI adresseres blot løbende sektorer, og man beder blot
om sektor N (f.eks. nummer 234242). Hardisken klarer selv omregning.
Men denne DOS/BIOS/PC er noget at det grimmeste nogensinde lavet.
Det er slet ikke opgaven at softwaren skal vide oplysninger
om head/cyl/sector.
Og desuden i BIOS/DOS oprindelig at afsætte 6 bit til sektor,
10 bit til cylinder og 8 bit til hoveder er jo en besynderlig
begrænsning.
IDE/ATA standarden burde smides væk og ikke bruges, men
det er en helt anden historie.
>> Nyere BIOS har udvidede INT 13 kald der kan klare > 1024 cyl,
> Uden at vide helt hvad der ligger i Cylindre, vil det så betyde (dette er et
> hypotetisk eksempel), hvis jeg havde en computer fra 1996 (eller altså en
> ældre maskine rent bios mæssigt) med Windows installeret i forvejen (og dens
> partition fylte udover de 1024 cylindre), så ville jeg ikke kunne installere
> Linux?
Jo du kan installere linux, men må boot'e via diskette
eller f.eks. loadlin eller lignende.
Men hvis BIOS ikke kan se det > 1024 cylindre så vil det muligvis
også give Windows problemer.
DOS vil helt sikkert få problemer, da den lider af samme begrænsninger
med 10bit (1024) cylindre. Så en DOS vil ikke kunne adresser > 1024 cyl
selv med ny BIOS.
>> Jeg har en gammel tyk bog: "The programmers PC source book"
>> hvor formater for boot sektor og MBR er beskrevet.
> Guf <grin>. Ej, ok, jeg er egentligt glad og tilfreds med bare at vide det
> sådan nogenlunde grundigt, og så selv have et par bookmarks,
> hvor jeg kunne læse videre, hvis jeg en dag fik brug for det.
Jeg har desværre ikke URL's. Men jeg har jo også diverse lærebøger
og så ovenstående opslagsværk fra Microsoft Press.
>> Egentlig i princip simpelt. BIOS henter MBR (boot sektor)
>> og i denne har man lagt lidt program+ partition information.
>> Dette program skal så lave det videre arbejde i boot-process.
> Dette program bliver så kaldt (og fodret med partition information for den
> givne harddisk som bios interesser sig for) for derefter selv at gå ud og
> kigge på de andre harddiske og deres MBR (samtidigt skal den også kunne
> forstå partione,r som er markeret som "extended", og grave ned i dem) - er
> det nogenlunde korrekt, jeg har forstået det?
Hvad boot-loader programmet gør et op til den der har lavet programmet.
Man har kun de INT3 kald som findes til rådighed.
>> Jeg mener at der også står noget i LILO kildetekst og
>> i nogle howtos vedr. boot og Lilo (så vidt jeg husker).
> Det vil jeg
| |
Jens Axel Søgaard (26-01-2001)
| Kommentar Fra : Jens Axel Søgaard |
Dato : 26-01-01 15:58 |
|
frank damgaard <frank.damgaard@no.spam> writes:
>> Uden at vide helt hvad der ligger i Cylindre, vil det så betyde
>> (dette er et hypotetisk eksempel), hvis jeg havde en computer fra
>> 1996 (eller altså en ældre maskine rent bios mæssigt) med Windows
>> installeret i forvejen (og dens partition fylte udover de 1024
>> cylindre), så ville jeg ikke kunne installere Linux?
>
> Jo du kan installere linux, men må boot'e via diskette eller
> f.eks. loadlin eller lignende. Men hvis BIOS ikke kan se det > 1024
> cylindre så vil det muligvis også give Windows problemer. DOS vil
> helt sikkert få problemer, da den lider af samme begrænsninger med
> 10bit (1024) cylindre. Så en DOS vil ikke kunne adresser > 1024 cyl
> selv med ny BIOS.
Kan man ikke nøjes med at placere lilo i de første 1024? Så kan der
vel godt bootes fra harddisken, selvom disken er stor.
Jeg fandt forrresten denne stump info:
Big news: 1023 cylinder barrier broken! John Coffman has added
support for the new (1998) lba32 BIOS extension. If your
motherboard was made (or you upgraded the BIOS) after 1998, the
new Lilo will detect the BIOS extension, and you will be able to
install LILO, kernel, map, and message anywhere on the
drive. Before this, you needed to put them in a cylinder that
ended on cylinder 1023 or lower. If your Linux distribution came
with an old Lilo, install with a boot floppy, get the current
Lilo, install it, and *then* set up Lilo. Don't let your distro
"make your hard drive bootable" unless you are sure it knows how.
Problemet kan derfor også klares med en BIOS-opdatering.
--
Jens Axel Søgaard -- http://www.jasoegaard.dk
A Mathematician is a machine for turning coffee into theorems.
- Paul Erdös
| |
frank damgaard (26-01-2001)
| Kommentar Fra : frank damgaard |
Dato : 26-01-01 18:19 |
|
Jens Axel Søgaard <jensaxel@soegaard.net> wrote:
....
> Kan man ikke nøjes med at placere lilo i de første 1024? Så kan der
> vel godt bootes fra harddisken, selvom disken er stor.
Ja men problemet er ikke Lilo men kernen (vmlinux / bzImage eller
hvad man nu kalder den).
Den gamle lilo med de gamle BIOS kald kan IKKE hente adresser
med cylinder >= 1024 !, og derfor ikke hente en kerne
der er placere helt eller delvis på adresser over denne grænse.
....
> Problemet kan derfor også klares med en BIOS-opdatering.
Og en LILO opdatering til nyeste version.
--
Frank Damgaard
| |
Jes Vestervang (26-01-2001)
| Kommentar Fra : Jes Vestervang |
Dato : 26-01-01 22:24 |
|
"frank damgaard" <frank.damgaard@no.spam> wrote in message
news:g7s5fw.jl@mkb84.ftn...
> Jens Axel Søgaard <jensaxel@soegaard.net> wrote:
> > Kan man ikke nøjes med at placere lilo i de første 1024? Så kan der
> > vel godt bootes fra harddisken, selvom disken er stor.
>
> Ja men problemet er ikke Lilo men kernen (vmlinux / bzImage eller
> hvad man nu kalder den).
> Den gamle lilo med de gamle BIOS kald kan IKKE hente adresser
> med cylinder >= 1024 !, og derfor ikke hente en kerne
> der er placere helt eller delvis på adresser over denne grænse.
>
Jeg løste tidligere problemet ved at have en lille partition ( <10mb)
mountet som '/boot'. Det var da lidt irriterende når windozepartitionen blev
skilt ad, men med windoze skal man jo alligevel leve med så meget :)
--
mvh Jes Vestervang - ICQ#21146256 - http://the.subnet.dk
Mandrake 7.1 og Debian Potato
| |
Thomas Schulz (27-01-2001)
| Kommentar Fra : Thomas Schulz |
Dato : 27-01-01 19:11 |
|
>..
Mange (!) tak til jer alle for svarene og rådene.
Ha en god unix dag.
Mvh.
Thomas Schulz
| |
|
|