bootsektor aus bzw. einlesen

Dieses Thema im Forum "Software allgemein" wurde erstellt von maggu, 9. Mai 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. maggu

    maggu Byte

    Registriert seit:
    12. März 2002
    Beiträge:
    87
    wie kann ich denn von einer cd, diskette, festplatte den bootsektor in eine datei und von dieser wieder auf einen datenträger schreiben?
    geht es ohne weiteres, einen bootsektor von einer cd bzw diskette, diesen auf eine festplatte zu schreiben?
     
  2. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    Nein, mit dem Befehl sicherst du den Bootsektor der C Partition (/dev/hda1)
    In diesem befindet sich der XP BootseKtor - also der Aufruf zu NTLDR.

    Lilo hingegen sitzt im MBR. Ganz was anderes, und deswegen Fdisk /mbr bzw. fixmbr

    J2x
     
  3. maggu

    maggu Byte

    Registriert seit:
    12. März 2002
    Beiträge:
    87
    bin mir da ja jetzt nicht so sicher aber kann es nicht sein, dass wegen punkt 4. und 7. die boot-cd/-disk und der befehl "fdisk /mbr" nicht nötig ist??
    das ist ja die aktive partition, von der normalerweiße gebootet wird und wenn ich diesen sektor sichere und dann späterwieder zurückschreibe... ????????
    hab nämlich da gestern etwas rumprobiert und da hat er dann nämlich (glaub ich jetzt) dann bei einem neustart gleich wieder das winxp bootmenu und nicht erst lilo angezeigt und ich musste den "fdisk /mbr" befehl nicht ausführen
    aber: alle angaben jetzt mal ohne gewähr.
    kann das nicht sein??
     
  4. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    >1. edit /etc/lilo.conf
    >(oder wie man halt die datei bearbeiten will)
    Ja
    >2. mount /dev/hda1 /mnt/hda1
    Wenn C nicht gemountet ist und das Verzeichnis /mnt/hda1 existiert
    >3. cd /mnt/hda1
    ok
    >4. dd if=/dev/hda1 of=alt.bsc bs=512 count=1
    Siehe 7.
    >5. lilo
    Ja
    >6. dd if=/dev/hdb2 of=linux.bsc bs=512 count=1
    Jepp, wenn hdb2 deine Root-Partition ist.
    >7. dd if=alt.bsc of=/dev/hda1 bs=512 count=1
    Die Zeile ist definitiv überflüssig. Warum willst du in 4 den XP-Bootsektor in die alt.bsc schreiben - und in 7 wieder zurück?

    >so müsste ich doch dann nicht extra ne boot-cd benützen, >sondern das system würde starten wie vorher und ich hätte
    >trotzdem den linux-bootsektor als datei.

    Imho führ da kein weg drum herum, Irgendwie must du Lilo ja aus dem MBR kriegen, Ob du das mit der Win98 CD, einer Startdiskette oder der Reperaturkonsole in XP machst, ist egal.

    >habe die lilo.conf mit dem "edit" bearbeitet.
    >dort muss ich ja erst "i" drücken um was einzufügen, bzw
    >anderes zu entfernen, was so lange möglich ist, bis man dieses
    >mit [esc] abbricht. mir war es aber nicht möglich, leerzeilen zu
    >entfernen.

    Hört sich grausam an ;-)
    Es gibt hunderte von Editoren für Linux. Mit manchen kommt man als Dos / Windows Benutzer gut zurecht, bei anderen ist man froh, wenn man wieder rauskommt, ohne die Datei verändert zu haben :D

    Mit dem Midnight Commander (Norton Commander Clone) solltest du Ansich keine Probleme haben.
    Starten kannst du den mit
    mc
    Dann navigierst du in /etc , markierst die Lilo.conf - mit F4 kannst du die dann editieren, mit F2 speichern, mit F10 die Datei schließen.

    Falls der nicht installiert ist, installiere ihn einfach nach,
    bei Mandrake und Debian (auch Knoppix) kannst du das mit dem Befehl
    apt-get install mc

    J2x
     
  5. maggu

    maggu Byte

    Registriert seit:
    12. März 2002
    Beiträge:
    87
    danke für alles, habe es nun hinbekommen. nun nur noch "per-forma-fragen" (um den aufwand zu verkürzen).
    wäre es nicht einfacher, wenn ich ungefähr so vorgehe:

    1. edit /etc/lilo.conf
    (oder wie man halt die datei bearbeiten will)
    2. mount /dev/hda1 /mnt/hda1
    3. cd /mnt/hda1
    4. dd if=/dev/hda1 of=alt.bsc bs=512 count=1
    5. lilo
    6. dd if=/dev/hdb2 of=linux.bsc bs=512 count=1
    7. dd if=alt.bsc of=/dev/hda1 bs=512 count=1
    ???

    so müsste ich doch dann nicht extra ne boot-cd benützen, sondern das system würde starten wie vorher und ich hätte trotzdem den linux-bootsektor als datei.

    und da ich mit linux jetzt erst am anfangen bin noch folgendes:
    habe die lilo.conf mit dem "edit" bearbeitet.
    dort muss ich ja erst "i" drücken um was einzufügen, bzw anderes zu entfernen, was so lange möglich ist, bis man dieses mit [esc] abbricht. mir war es aber nicht möglich, leerzeilen zu entfernen.
    wenn ich nun also die einträge für die windowsartitionen aus lilo entferne, dann würde ich halt "ästetischerweiße" die leerzeilen auch noch weg haben wollen. wie lautet denn da das kürzel dazu?
    mit ":w!" speicher ich denn die datei und beende mit ":q" den editor.

    dann wollte ich noch fragen, mit welchem befehl ich unter linux zwei dateien vergleichen kann (wenn ich z.b. schnell prüfen will, ob zwei in dateien geschriebene bootsektoren gleich sind (wie unter dos "comp" bzw "fc"). und wenn möglich noch ne ausgabe habe, an welcher hex-position sie sich unterscheiden.

    und letzteres erst mal
    wie erstelle ich denn ein script (dos: batch-datei), das mir die oben aufgezählten schritte nacheinander ausführt?
    jaja, fragen über fragen.

    danke euch!!
    [Diese Nachricht wurde von maggu am 14.05.2003 | 12:11 geändert.]
     
  6. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    Pizza :-(

    Nebenan ist ein Hotel, zur Not könnte ich die 33,5m bis zum Tisch noch schaffen.

    J2x
     
  7. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    > wenn man während des Beitragschreibens zum Mittagessen
    >gerufen wird

    Hast du es gut, Meine Frau hat heute irgendwie vergessen hier was Essbares hinzustellen bevor sie zur Arbeit ging :-( Naja, um 20 Uhr 30 ist sie wieder da ...

    (dem der Magen Knurrt)
    J2x
     
  8. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Beitrag unten sollte keine Variante desselben Themas werden, sondern ist nur eine Überschneidung mit Langzeitreaktion, die dann passiert, wenn man während des Beitragschreibens zum Mittagessen gerufen wird :-)

    franzkat
     
  9. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Du solltest zunächst mal lilo in die Bootpartition Deines Linux-System installieren.Das kannst Du z.B. unter Yast2 bei Suse erledigen.

    Anschliessend kannst Du unter Linux den Befehl :

    dd if=/dev/hdax of=linux.lin bs=512 count=1

    ausführen, wobei x für die Nummer der Partition steht, auf der die Bootpartition liegt.
    (Du schreibst, bei Dir wäre die Bootpartition 5.Ich denke, sie müßte eigentlich vor der Systempartition liegen, d.h. bei Dir hdb1, aber das mußt Du überprüfen ). Die Datei linux.lin kannst Du dann auf die Rootebene Deiner Windows-Partition c: (hda1) kopieren.

    Dann bootest Du von der XP-CD und gibst den Befehl fixmbr ein, damit ist Lilo aus dem MBR entfernt und Du startest wieder "normal" über Dein Windows-XP. Zum Schluß mußt Du Deine boot.ini noch um die Zeile :

    c:\linux.lin="Linux"

    ergänzen.Das wär\'s dann.
    Wenn Du das extrahieren der Datei linux.lin unter Linux und das Einbinden der Datei in die boot.ini nicht selbst machen willst, dann kannst Du dafür auch das Programm Bootpart verwenden, welches diesen Teil der Aktion automatisiert.

    franzkat
     
  10. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    Ist nicht weiter schwierig:

    Melde dich auf der Konsole als ROOT an,
    Als erstes must du die Datei /etc/lilo.conf
    Bearbeiten.
    Hier ändesrt du die Zeile
    boot=/dev/hda
    ab, und zwar in die selben Parameter, die bei root stehen.
    z.B.
    boot=/dev/hdb8
    root=/dev/hdb8

    Am Ende kannst du dann auch noch Optional die Windows-Einträge löschen.
    Speichere die Datei und schreibe den Bootsektor in die Root-Partition durch den Konsolen aufruf
    lilo <enter>
    dann wechselst du auf der Konsole auf deine Windows-Platte. Wo sich diese in deinem Dateissystem befindet, findest du Notfalls in der Datei /etc/fstab heraus. Falls diese Partition nicht eingebunden ist, erstelle ein Neues Verzeichnis per

    mkdir /mnt/hda1
    und binde die Partition ein per
    mount /dev/hda1 /mnt/hda1
    per
    cd /mnt/hda1
    gelangst du dann auf die Zielpartition.
    Dann brauchst du noch einen Dateinamen für den Bootsektor. Im Beispiel nehme ich jetzt mal "boot.lin" kannst du aber je nach Geschmack abändern.

    dd if=/dev/hdb8 of=boot.lin bs=512 count=1

    Das /dev/hdb8 must du natürlich durch deine Rootpartition ersetzen, also exakt! die selbe Angabe wie in der "lilo.conf"

    Danach bootest du von einer Win98 Startdiskette/CD ins Dos. Mit
    fdisk /mbr
    deinstallierst du LILO aus dem MBR,
    Mit einer Path Anweisung verschaffst du dir zugriff zu Attrib und Edit
    Path = x:\windows\command

    Das X durch den Laufwerksbuchstaben deines Windows9x ersetzen.

    attrib -s -h -r c:\boot.ini
    edit c:\boot.ini

    Hier fügst du am Ende die Zeile
    C:\boot.lin="Irgendein Linux"
    ein.

    Dann speicherst du die Boot.ini, und kannst optional die attribute wieder setzen per

    attrib s h r c:\boot.ini

    Diskette / CD entfernen und Neustarten.

    BTW: Den Bootsektor must du jedesmal per DD wieder in die Datei boot.lin schreiben, wenn du einen anderen Kernel eingebunden hast!

    J2x
     
  11. maggu

    maggu Byte

    Registriert seit:
    12. März 2002
    Beiträge:
    87
    folgendes:
    primary master = 40gb
    ausgeteilt:
    1. c = fat32 - win98 - 5gb
    2. d = ntfs - winxp - 15 gb
    3. - = frei - 20 gb
    primary secondary = 40gb
    4. - = reiser - linux - ca 8 gb
    5. - = ?? - linux (boot) - ca 16,8mb
    6. - = fat32 - daten - 30gb

    hatte zuerst lilo auf diskette und bei normalem pc-start hab ich das bootmenü von xp so konfiguriert, dass ich zw. winxp und win98 auswählen kann
    wollte unter win98 - dosmodus den bootsektor von der lilo-disk auslesen - nicht lesbar
    hab dann versucht unter linux den bootsector von diskette und dann von der boot-partition auszulesen (mittels "dd" befehl wie er in der pcwelt steht) - diskette nicht lesbar - bei platte hat er immer die kompletten 16mb ausgelesen
    habe nun lilo auf platte, dass zuerst dieser bootmanager kommt und wenn ich dort windows auswähle kommt der von winxp.
    wäre ja akzeptabel - genauso wie wenn ich nur den lilo verwenden würde.
    will aber nur den von xp-verwenden.
    wie muss ich nun also noch vorgehen um an ein boot-image von linux zu kommen, dass ich dann wie das von win98 (das ich durch den debug-befehl bekam) in die "boot.ini" von winxp einbauen kann??
     
  12. maggu

    maggu Byte

    Registriert seit:
    12. März 2002
    Beiträge:
    87
    ????
    zum zurückschreiben dann folgendes
    ????
    debug LW:\Pfad\Dateiname
    W 100 2 0 1
    Q
    ?????????????
     
  13. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Mit Disk Dump ist die Sache ja fast noch leichter. Da benötigt man keine kryptischen debug-Befehle.

    franzkat
     
  14. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    >Hicks
    Du sagst es ;-)
    Sorry

    J2x
     
  15. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
  16. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    @ Bitpicker & Franzkat

    Und wenn der jetzt gar kein Dos / Windows hat?
    Bei Linux z.B. kommst du auch mit Dosemu dabei nicht allzuweit.
    Nur so ein Gedanke.

    Gruß
    J2x
     
  17. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Wenn Dir, was die Festplatte angeht, die direkte Eingabe mit debug zu heikel ist ( einen Fehler sollte man sich dabei möglichst nicht erlauben ), kannst Du folgende Batch benutzen (es gilt natürlich bei Festplatten der Hinweis, den Jörn oben gegeben hat) :

    echo l 100 2 0 1 > boot.tmp
    echo rcx >>boot.tmp
    echo 200 >>boot.tmp
    echo n c:\bootsect.dos >>boot.tmp
    echo w 100 >>boot.tmp
    echo q >>boot.tmp
    echo. >>boot.tmp
    debug < boot.tmp
    del boot.tmp

    Kopiere Dir diese Anweisungen in eine Textdatei und gib ihr den Namen bootcopy.bat.
    Wenn Du auf diese Datei doppelklickst, wird der Bootsektor in die Datei bootsect.dos extrahiert.

    Wenn Du den Bootsektor von einer Diskette extrahieren oder auf diese zurückschreiben möchtest, dann kannst du das Programm mkbt.exe benutzen, welches Du auf der Seite von Bart Lagerwij findest :

    http://www.nu2.nu

    Was Bootsektoren von CDs anbetrifft, ist es am besten, Isobuster zu benutzen.Mit den ausgelesenen Bootsektoren von CDs kannst Du Dir dann bootfähige CDs brennen; also z.B. eine XP-Slipstream-CD mit dem XP-Bootsektor oder eine Win 98-CD mit dem Bootsektot von einer Win 98-CD.

    franzkat
    [Diese Nachricht wurde von franzkat am 09.05.2003 | 20:01 geändert.]
     
  18. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Registriert seit:
    7. April 2001
    Beiträge:
    4.450
    Mh, Mir ist nicht ganz klar was du genau bezwecken möchtest. Einen Bootsektor kannst du sicherlich in eine Datei schreiben - und diese Datei auf Diskette oder CD sichern. Aber funktionieren wird dieser Bootsektor latürnich nur auf der Festplatte, von der er stammt. Nenne mal dein(e) Betriebssystem(e), viele haben die benötigten Werkzeuge schon dabei.

    J2x
     
  19. Nevok

    Nevok Ganzes Gigabyte

    Registriert seit:
    3. Oktober 2002
    Beiträge:
    12.196
    Hallo Markus

    Dafür gibt}s mit Sicherheit spezielle Programme. Einfach mal über http://www.google.de nach einem solchen suchen. Ob es ohne weiters möglich ist, den Bootsektor einer Diskette oder CD auf die Festplatte zu schreiben, kann ich dir leider nicht sagen. Falls du ein Programm gefunden hast, dann schau am besten mal in der Dokumentation zu diesem Programm nach, ob}s möglich ist.

    Gruß
    Patrick
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen