Wie schreibe ich einen lokalisierten NTFS-Bootsektor?


8

Wenig unbekannte Tatsache: NTFS-Bootsektoren gibt es in verschiedenen Sprachen. Sie können " BOOTMGR is missing" und " Press Ctrl+Alt+Del to restart" sagen , aber sie können dasselbe auch in anderen Sprachen sagen. Dies hängt vom Gebietsschema des Windows-Systems ab, das Sie beim Erstellen und Formatieren der Partitionen verwenden.

Aufgrund einer Malware musste ich den NTFS-Bootsektor meines Systemlaufwerks neu schreiben, in dem ein Rootkit versteckt war. Ich habe dies mit dem bootsect.exeTool auf der Installations-DVD gemacht, der gleichen Installations-DVD in italienischer Sprache, mit der ich Windows ursprünglich installiert habe. Es gab auch eine schöne Datei bootect.exe.mui in einem it-IT-Ordner. Aber das Tool sprach Englisch und mein NTFS-Bootsektor spricht jetzt auch Englisch (und natürlich vorher nicht).

Ich weiß, dass dies eine rein kosmetische Sache ist, aber ich möchte wissen: Wie erstelle ich einen lokalisierten NTFS-Bootsektor (natürlich ohne die Partition in einem lokalisierten System neu zu formatieren)?


3
Ich vermute, dass fixmbr von der Wiederherstellungskonsole in Ihrer Installation lokalisiert ist. Das sollte es wahrscheinlich tun.
Ein Zwerg

(+1) Sehr gute Frage übrigens, Massimo. :) Zu meiner Liste der Favoriten hinzugefügt.
Ein Zwerg

1
Es gibt kein "fixmbr" in Windows 7 ... die nächsten Dinge sind bootsect.exe und bootrec.exe; Ich versuchte , sie von der Installations - DVD mit (was ist lokalisiert), aber mit einem englischen Bootsektor endete. Ich werde es erneut über die Wiederherstellungskonsole versuchen.
Massimo

Beide wurden getestet und in einer lokalisierten Windows-Wiederherstellungsumgebung ausgeführt. Sowohl bootect.exe als auch bootrec.exe erstellen englischsprachige Bootsektoren.
Massimo

Es gibt zwei Möglichkeiten, bootect zu verwenden. Sie können nur einen Laufwerksbuchstaben verwenden und der Bootloader wird in die Partition geschrieben, oder Sie können die Option / mbr verwenden, die ihn in den MBR schreibt. Hast du beides versucht? Und ehrlich gesagt, spielt die Sprache wirklich eine Rolle? Dieser winzige Bootloader-Code enthält nur wenige Zeichenfolgen, die Sie die meiste Zeit nicht einmal sehen. Ich gehe davon aus, dass Ihr Betriebssystemauswahlmenü korrekt angezeigt wird.
billc.cn

Antworten:


1

Unterschiedliche Nachrichten kommen von unterschiedlichen Orten. Wenn Sie jedoch die Startdateien wie bootmgr, BCD (von einem System mit genau derselben Startkonfiguration), bootect.dat, boot.sdi oder eine beliebige Kombination von Dateien ersetzen, finden Sie die Meldungen wahrscheinlich in Ihre gewählte Sprache.


Der Bootloader spricht die richtige Sprache. Es ist der Bootsektor, der dies nicht tut.
Massimo

Genau genommen ist der Code im VBR auch ein Bootloader.
JdeBP

Die Bootloader befinden sich in Bootsektoren. Bootsektoren sind kein Code, sondern Speicherorte.
Jiggunjer

1

Auf meinem Vista ist der Bootsektor auf Englisch, obwohl ich ein polnisches System habe. Ich habe von den ursprünglichen Microsoft-Festplatten installiert. Vielleicht war Ihr Bootssektor ein von OEM gehackter.


Offizielles Microsoft ISO-Image, heruntergeladen von MSDN.
Massimo

Meins ist auch offiziell.
Kinokijuf

0

Der Bootsektor ist ziemlich klein (nur 512 Byte), daher können Sie ihn einfach zerlegen (mit NDISASM bis IDA), die Nachrichten korrigieren und dann wieder zusammenbauen (NASM reicht aus).

Dies erfordert ein wenig Programmierkenntnisse und vielleicht auch das Lesen einiger x86-Assembler-Lehrbücher, aber auf jeden Fall doabe, wenn Sie genug streben.


2
nicht 512, sondern 446 Bytes. andere Bytes sind für die Partitionstabelle reserviert.
Eir Nym

Das Wesentliche dieses Kommentars ist wahr, die Aussagen jedoch nicht. Der Bootssektor ist nicht der MBR. Der MBR ist 512 Bytes (446 ohne Partitionstabelle), während der Bootsektor mindestens ein oder zwei Größenordnungen größer und erheblich komplizierter zu rekonstruieren und zu verstehen ist. Meines Wissens ist für die neuesten Windows-Versionen keine vollständige, rückentwickelte Studie des NTFS-Bootsektors verfügbar. (Und doch habe ich diese Antwort positiv bewertet.)
Mahmoud Al-Qudsi

@ MahmoudAl-Qudsi bootsect.exebehandelt den Code im MBR und im VBR als Bootloader. Das Sprachproblem, auf das sich das OP bezieht, liegt tatsächlich im größeren VBR-Teil.
Jiggunjer

0

1) Schließen Sie das Laufwerk mit der NTFS-Partition an einen Computer unter Linux an, verwenden Sie einen Disk / Hex-Editor oder den Befehl dd. oder 2) Booten Sie Linux auf CD / DVD und dann dito; oder 3) Machen Sie dasselbe mit einem Windows-System, aber das zu bearbeitende NTFS-Volume muss in Windows Vista und höher nicht gemountet sein. Sie haben 4 Nachrichtenzeichenfolgen, ASCII-codiert, mit Start-Offsets (relativ zum Offset 100h im Volume Boot Record) in Bytes 1F8h bis 1FBh. Der Bereich von Versatz 180h bis Versatz 1F7h scheint für diese Nachrichten verfügbar zu sein. Ganz am Ende der Partition befindet sich eine Kopie des Volume Boot Record.


0

Sie können dies versuchen (wenn sich Ihre Windows-Installation in der Partition C: befindet)

bcdboot c:\Windows /l it-it

oder mit bcdedit

bcdedit /set {bootmgr} locale it-IT
bcdedit /set locale it-IT

oder mit bcdedit abhängig von Ihrer Konfiguration (kennen Sie Ihre Konfiguration durch Eingabe von bcdedit)

bcdedit /set {default} it-IT
bcdedit /set {current} it-IT 

Dokumentation zum Befehl 'bcdboot' finden Sie hier:

http://technet.microsoft.com/en-us/library/cc731245%28WS.10%29.aspx

und 'bcdedit' hier:

http://technet.microsoft.com/fr-fr/library/cc709667%28WS.10%29.aspx

Sagen Sie uns, welches für Sie funktioniert, wenn ja ..!


Beide Befehle betreffen den Boot-Manager, nicht den Boot-Sektor ...
Massimo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.