Wie sichert ihr euren Masterboot-Record (MBR)?

SilverSurfer99

gehört zum Inventar
Der Hilfeschrei von Devlin nach einer verunglückten Safeguard-
Installation ist mir noch in Erinnerung. Mit vielen Schweiss
treibenden Klimmzügen hat er dann doch noch eine Rekonstruktion
geschafft, dabei wäre es (technisch) so einfach gewesen!

Der MBR ist der erste Sektor (physikalische) auf der Festplatte und
genau 512 Bytes groß, also zum (rechtzeitigen) Sichern braucht man
nur einen Sekundenbruchteil: Head 0 Track 0 Sektor 1 (Sektoren
werden merkwürdigerweise ab 1 gezählt. Bei dieser Gelegenheit
sollte gleich noch der erste Bootsektor mitgesichert werden,
heute ist das meist der Bootmanager mit Verzweigung zu den
Bootsektoren der eigentlichen Betriebssysteme:
Head 1 Track 0 Sektor 1. Diese Logik gilt übrigens für ALLE
Betriebssysteme, die auf PCs lauffähig sind!

Somit zählen diese zweimal 512 Bytes zu den wichtigsten Daten,
die für das Nutzen der Festplatte zwingend sind. Die Zerstörung
der beiden Sektoren ist in der Vergangenheit manchmal auch schon
dadurch erfolgt, dass Plattencontroller fehlerhafte Cachedaten
zurückgeschrieben haben; Western Digital und das Programm
PC-Tools 7.1 waren hierfür berüchtigt. Heute kommen solche
Schäden vereinzelt noch durch MBR-Viren zustande (infizierte
Diskette in Laufwerk_A vergessen und Virenprüfer nicht vorhanden/
Virenprüfer-Monitorprogramm nicht aktiviert.

---------------
Also im Prinzip wird eine DOS-Diskette bis DOS 6.2*) benötigt
und ein Programm, das MBR bzw. 1. Bootsektor von der ersten
Festplatte liest, auf Diskette sichert und im Ernstfall wieder
auf Platte zurücksichern kann. Jede Neupartionierung ändert
jedoch die MBR-Daten, so dass DANACH die beiden Sektoren
für einen zuverlässigen Rückweg neu geschrieben werden
müssen!

Der Virenprüfer F-PROT hatte mal eine solche separate Lösung
im Angebot, die ich (leider) nicht aufgehoben habe, da ich dafür
ein selbstgeschriebenes Platten-Monitorprogramm benutze, was
aber wegen seiner vielfältigen Optionen und damit Fehlermöglich-
keiten für den allgemeinen Gebrauch zu riskant ist.

Früher war http://download.uni-hd.de/ftp/pub/simtelnet/msdos/virus/
eine gute Quelle für solche Speziallösungen, leider habe ich dort
nichts Gescheites mehr gefunden.

Welche allgemein taugliche Lösung setzt ihr ein?
-----
*) Ab DOS 7.x muss vor dem Zurückschreiben der Befehl
'LOCK C:' eingegeben werden, um den MS-Schutz gegen
direktes Schreiben auf die Festplatte aufzuheben.
 
Ich habe mir zuletzt das hier heruntergeladen:
Readme.txt for MBRtool.exe, version 1.10.


This README accompanies MBRtool version 1.10.
Other files in the distribution :
MBRtool.exe - the program
MBRtool_user_manual.htm - the user manual, in HTML

What is MBRtool :
MBRtool allows you to make backups of your MBR, restore them and manipulate
the MBR (master boot record) of your harddisk. The partition tables can be
edited (usually for recovery purposes) and the MBR can be recreated from
scratch if necessary.
All manipulation/edit functions can also be performed on the backups made
with MBRtool, thus allowing recovery to be performed on machines far away
from ground zero. For instance, a MBR can be sent to someone, who fixes the
partition table entries and then sends the backup back to the original sender.
The original sender restores the backup and all should be well.

The program runs in Real mode Windows 9x, or DOS. The program can perform some
of it's functions under Protected mode Windows 9x/Windows ME. Read the manual
for further details.

This program is intended for: - recovery purposes
- preventing data loss caused by corrupted MBR's
- power users

It is adviced to read the manual. Some of MBRtool's features are potentially
very destructive, if the program is not used with caution.

This program is distributed as Freeware.
You are free to distribute the program as long as you follow the rules
as stated in the manual. Please read the manual for further details.

The program is conceived and coded by Tom Kuurstra, for DIYDataRecovery

Please check the manual for version-history information.

Contact information :
E-Mail : DIYddr2@Worldmail.nl
Web-page : www.DIYDataRecovery.nl

Please observe our "e-mail notification" when asking for support. Check the
web-pages.


Enjoy.

Ich weiss jetzt nicht, wem ich das geschickt habe - aber ich habe mir einen Batch geschrieben, der von Disk arbeitet und einen MBR speichert und die letzten zwei Stände dazu (LIFO-Prinzip). Recover arbeitet auch so - eins zurück, Rest rückt vor, aktueller wird umbenannt.

Na, hat mich mein Riecher diesmal nicht im Stich gelassen. Es lag bei den anderen Batches. Das ist von einer Idee entstanden die IMO so ähnlich auch bei denen angeboten wird... (HTML-Hilfe ?)
Code:
[color=yellow]@echo off

:menu
cls

echo *********************
echo * Auswahl:          *
echo *  1 - MBR Backup   *
echo *  2 - MBR Restore  *
echo *                   *
echo *  8 - Beenden      *
echo *  9 - Reset        *
echo *********************
echo.

choice /c:123456789 /n
if errorlevel 9 goto reset
if errorlevel 8 goto ende1
if errorlevel 7 goto ende1
if errorlevel 6 goto ende1
if errorlevel 5 goto ende1
if errorlevel 4 goto ende1
if errorlevel 3 goto ende1
if errorlevel 2 goto mbrbak
if errorlevel 1 goto mbrres
goto menu


:mbrbak
rem *** Backup erzeugen ***
rem pruefen auf bereits vorhandene backups
rem wenn ja dann letztes loeschen und umbenennen
rem es werden immer die drei letzten staende des mbr auf disk gespeichert

:rendat
if exist disk01.bak deltree /y disk01.bak
if exist disk03.128 deltree /y disk03.128
if exist disk02.128 ren disk02.128 disk03.128
if exist disk01.128 ren disk01.128 disk02.128

:savdat
mbrtool /x:b /d:0 /f:disk01

goto ende


:mbrres
rem *** Backup schreiben ***
rem pruefen auf vorhandenes backup
rem wenn ja dann letztes wiederherstellen und
rem letztes umbennen und aeltere vorruecken

if exist disk01.128 goto wridat

:nodat
echo.
echo *** Es wurde kein Backup gefunden !!! ***
echo.
goto ende1

:wridat
mbrtool /x:r /d:0 /f:disk01

:rendat1
if exist disk01.bak deltree /y disk01.bak
ren disk01.128 disk01.bak
if exist disk02.128 ren disk02.128 disk01.128
if exist disk03.128 ren disk03.128 disk02.128


:ende
echo.
echo Befehl ausgef³hrt
echo Das System wird jetzt neu gestartet !!!
echo (STRG C f³r Abbruch)
echo ---------------------------------------
pause

:reset
reset

:ende1[/color]

Ach so ja, das ist DOS-ANSI, daher keine Umlaute. benötigt werden weiterhin DELTREE.EXE und RESET.COM
In paar Funktionen sind auf Erweiterung gecodet...
 
@Brummelchen,
ein wunderschöner Batch, hätt's selbst nicht besser machen können :)

nur: wo ich die deltree.exe hernehme, weiß ich, aber die reset.com - wo gibt's die denn?
 
PC reset / reboot (Beispiele)

Hi Ty,

ich hab' mal in meinen (uralten) Sourcen rumgestöbert...

in C -->>

#ifdef __TURBOC__
#define FAR far
#else
#define FAR _far
#endif

short FAR *bios_post = (short FAR *)0x00400072;
void (FAR * boot)(void) = (void (FAR *)())0xffff0000;

void reboot(warm)
{
if (warm)
*bios_post = 0x1234;
else *bios_post = 0;
boot();
}

#include <stdio.h>

void main(void)
{
puts("Kaltstart");
reboot(0);
}

=======================

in Assembler -->>

BIOS_POST equ 0472H ; POST (Warmstart) flag


xor BX,BX ; AL=1 Warmstart, 0 Kaltstart
mov ES,BX
cmp AL,1
jnz @NcB
mov AX,1234H ; vermeide POST
@NcB:
mov ES:[BIOS_POST],AX ; Install flag

cli ; Reboot
xor AX,AX
mov DS,AX
mov ES,AX
mov SS,AX
mov SP,AX
@cP:
in AL,64H ; Warten auf AT Tastatur-Kontroller
test AL,2
jne @cP

xor AL,AL ; Reset lines
out 64H,AL
iodelay
mov AL,0FEh
out 64H,AL
iodelay
mov AX,0002H ; Gehe zu Reset-Vector
push AX ; via IRET
mov AX,0F000H
push AX
mov AX,0FFF0H
push AX
iret
 
@Wolfi,

gut gemeint, aber ich kann mit C gar nix und mit 16-Bit Assembler nicht viel anfangen...
Wenn ich das richtig interpretiere, dann könnte ich mit der debug.exe und dem Assembler-Listing eine reboot.com erstellen,
aber mir fehlt die Syntax dazu, ich habe das noch nie gemacht.... :(
 
Hier habt ihr alles zusammen.

Die reset.com hat nur 11 bytes *g*
 
Zuletzt bearbeitet:
Oben