logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak napisać boot managera do bootowania Linuxa z CDROMu?

xarusx 20 Sty 2008 00:54 1685 4
REKLAMA
  • #1 4713397
    xarusx
    Poziom 14  
    Posty: 106
    Pomógł: 11
    Ocena: 1
    Witam...
    Mam problem, muszę napisać boot managera który zainstalowany na dyskietce albo w MBR dysku twardego umożliwi zbootowanie z CDROMu innego systemu(Linux).
    Wiem ze można wykorzystać przerwanie INT 13h ale nie wiem jak się dobrać do informacji o CDROMie ani jak go w ogóle znaleźć, jeżeli ktoś się spotkał z tym zagadnieniem, to proszę o pomoc.
  • REKLAMA
  • #2 4714139
    Sam Sung
    Poziom 33  
    Posty: 2039
    Pomógł: 227
    Ocena: 611
    Czyli ma być możliwość bootowania z CD-ROMu na komputerze, którego BIOS tego nie obsługuje (brak wsparcia dla specyfikacji El-Torito). Kiedyś w dokumentacji boot-managera GRUB czytałem, że zrobienie takiego czegoś jest "non-trivial". Teraz jest już GRUB 2, ale czy to zrobili, nie wiem - chyba nie.
    Jeśli nie jest narzucony sposób wykonania, to możnaby spróbować na około: przygotować coś jak dysk startowy Windows 98 - dyskietkę z normalnym DOSem, nagrać tam sterownik CD-ROMu (.sys), MSCDEX, i LOADLIN do ładowania linuxa. Wtedy mamy widoczny CD-ROM jak normalny dysk z plikami, a LOADLIN załatwia sprawę ładowania jądra linuxa; wystarczy napisać manager który umożliwi wybór jądra i podanie parametrów (które zostaną przekazane do programu loadlin). To jest jednak sposób tylko na Linuxa.
  • REKLAMA
  • #3 4714478
    xarusx
    Poziom 14  
    Posty: 106
    Pomógł: 11
    Ocena: 1
    Mam wrażenie że się nie zrozumieliśmy :D
    Ja mam napisać boot managera od podstaw :cry: ; oczywiście komputer obsługuje el Torito.
    Zadanie jest takie, że po programie POST mój boot manager ¨przejmuje dowodzenie¨ nad procesem bootowania z innych urządzeń a konkretnie z CDROMu. Tworzenie dyskietki startowej, tak jak proponujesz, nie wchodzi zatem w grę.
    Mój plan jest taki, że muszę odczytać z CDROMu sektory odpowiedzialne za bootowanie i je wykonać. Problem leży w tym jak się dobrać do samego urządzenia(np. jeżeli chcę odczytać sektor z HDD to posługuję się funkcją 02h przerwania int 13h a dyskowi przydziela się wtedy numer 80h i sprawa jest prosta). Problem pojawia się gdy trzeba wykryć i odczytać coś z urządzenia CDROM i tu leży właśnie mój problem, bo nie wiem jak to zrobić.
  • REKLAMA
  • #4 4716414
    Sam Sung
    Poziom 33  
    Posty: 2039
    Pomógł: 227
    Ocena: 611
    Jak już pisałem, twórcy GRUB'a uznali to za rzecz nietrywialną.
    Piszesz, że "oczywiście komputer obsługuje El Torito"; niestety chyba nie robi to żadnej różnicy, jeśli trzeba napisać boot manager od podstaw ;)
    Mogę Ci tylko polecić przejrzenie źródeł Smart Boot Managera - wygląda na to, że Twoje zadanie ktoś już wykonał.
    http://btmgr.sourceforge.net/download.html
  • #5 4717550
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Zacznijmy od tego że CDROM to urządzenie 'szeregowe' dla biosu. Czyli wszelkie analogie z HDD mozliwe tylko po załadowaniu drivera 'symulującego' dysk. Przeglądnij sobie specyfikację ATA i listę możliwych komend np. czytanie danych.
REKLAMA