Jak napisać zlokalizowany sektor rozruchowy NTFS?


8

Mało nieznany fakt: sektory rozruchowe NTFS występują w różnych językach. Mogą powiedzieć „ BOOTMGR is missing” i „ Press Ctrl+Alt+Del to restart”, ale mogą również powiedzieć to samo w innych językach. Zależy to od ustawień regionalnych systemu Windows używanego podczas tworzenia i formatowania partycji.

Z powodu bałaganu złośliwego oprogramowania musiałem przepisać sektor rozruchowy NTFS mojego dysku systemowego, który ukrywał rootkita; Zrobiłem to za pomocą bootsect.exenarzędzia z instalacyjnego dysku DVD, tego samego dysku instalacyjnego DVD w języku włoskim, z którego pierwotnie instalowałem system Windows; był tam również ładny plik bootsect.exe.mui w folderze it-IT. Ale narzędzie mówiło po angielsku, a mój sektor rozruchowy NTFS też teraz mówi po angielsku (i oczywiście nie wcześniej).

Wiem, że jest to kwestia czysto kosmetyczna, ale chciałbym wiedzieć: jak utworzyć zlokalizowany sektor rozruchowy NTFS (oczywiście bez ponownego formatowania partycji w zlokalizowanym systemie)?


3
Podejrzewam, że fixmbr z konsoli odzyskiwania w twojej instalacji może być zlokalizowany. To prawdopodobnie powinno wystarczyć.
Dwarf

(+1) Bardzo dobre pytanie btw, Massimo. :) Dodano do mojej listy ulubionych.
Dwarf

1
W systemie Windows 7 nie ma „fixmbr” ... najbliższymi rzeczami są bootsect.exe i bootrec.exe; Próbowałem ich użyć z instalacyjnego dysku DVD (który jest zlokalizowany), ale skończyło się na angielskim sektorze rozruchowym. Spróbuję ponownie z Konsoli odzyskiwania.
Massimo,

Przetestowałem oba, uruchamiając je ze zlokalizowanego środowiska odzyskiwania systemu Windows. Zarówno bootsect.exe, jak i bootrec.exe utworzą anglojęzyczne sektory rozruchowe.
Massimo,

Istnieją dwa sposoby korzystania z bootsect. Możesz użyć samej litery dysku, a program ładujący zostanie zapisany na partycji lub możesz użyć opcji / mbr, która zapisuje ją do MBR. Próbowałeś obu? I szczerze mówiąc, czy język naprawdę ma znaczenie? W tym niewielkim kodzie programu ładującego jest tylko kilka ciągów znaków i nawet nie widać ich przez większość czasu. Zakładam, że menu wyboru systemu operacyjnego wyświetla się poprawnie?
billc.cn

Odpowiedzi:


1

Różne wiadomości pochodzą z różnych miejsc. Ale jeśli zastąpisz pliki rozruchowe, takie jak bootmgr, BCD (z systemu o dokładnie takiej samej konfiguracji rozruchowej), bootsect.dat, boot.sdi lub dowolna kombinacja plików, które posiadasz, myślę, że znajdziesz wiadomości w twój wybrany język.


Program ładujący mówi w odpowiednim języku; to sektor rozruchowy, który tego nie robi.
Massimo,

Ściśle mówiąc, kod w VBR jest także programem ładującym.
JdeBP,

programy ładujące znajdują się w sektorach rozruchowych. sektory rozruchowe nie są kodem, są lokalizacjami.
jiggunjer

1

W moim systemie Vista sektor rozruchowy jest w języku angielskim, mimo że mam polski system. Zainstalowałem z oryginalnych dysków Microsoft. Być może twój sektor rozruchowy był zhakowany przez producenta OEM.


Oficjalny obraz ISO ISO, pobrany z MSDN.
Massimo,

Mój też jest oficjalny.
kinokijuf,

0

Sektor rozruchowy jest dość mały (zaledwie 512 bajtów), więc możesz go po prostu zdemontować (używając czegokolwiek od NDISASM do IDA), naprawić wiadomości, a następnie ponownie go złożyć (zrobi to NASM).

Wymaga to trochę umiejętności programistycznych, a być może także czytania niektórych podręczników asemblera x86, ale na pewno doabe, jeśli starasz się wystarczająco.


2
nie 512, ale 446 bajtów. inne bajty są zarezerwowane dla tablicy partycji.
Eir Nym,

Istota tego komentarza jest prawdą, ale zawarte w nim stwierdzenia nie są. Bootsector nie jest MBR. MBR ma 512 bajtów (446 bez tablicy partycji), podczas gdy sektor rozruchowy jest co najmniej o rząd wielkości lub wielkości większy i znacznie bardziej skomplikowany w inżynierii wstecznej i zrozumieniu. Według mojej wiedzy, nie jest dostępne pełne badanie inżynierii wstecznej systemu rozruchowego NTFS dla najnowszych wersji systemu Windows. (A jednak głosowałem za odpowiedzią).
Mahmoud Al-Qudsi,

@ MahmoudAl-Qudsi bootsect.exetraktuje kod w MBR i VBR jako bootloader. Problem językowy, o którym mówi OP, jest rzeczywiście w większej części VBR.
jiggunjer

0

1) Podłącz dysk zawierający partycję NTFS do komputera z systemem Linux, użyj edytora dysku / hex lub polecenia dd; lub 2) Uruchom system Linux na CD / DVD, a następnie ditto; lub 3) Zrób to samo z systemem Windows, ale edytowany wolumin NTFS musi zostać odmontowany w systemie Windows Vista i nowszych. Masz 4 ciągi znaków, zakodowane w ascii, z początkowymi przesunięciami (względem przesunięcia 100h w zapisie Boot Volume) podanym w bajtach 1F8h do 1FBh. Wydaje się, że obszar od przesunięcia 180h do przesunięcia 1F7h jest dostępny dla tych komunikatów. Na samym końcu partycji znajduje się kopia rekordu rozruchowego woluminu.


0

Możesz tego spróbować (jeśli instalacja systemu Windows odbywa się na partycji C:)

bcdboot c:\Windows /l it-it

lub z bcdedit

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

lub z bcdedit w zależności od konfiguracji (poznaj swoją konfigurację, wpisując bcdedit)

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

dokumentację dotyczącą polecenia „bcdboot” można znaleźć tutaj:

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

i „bcdedit” tutaj:

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

powiedz nam, który z nich działa dla Ciebie, jeśli działa ..!


Oba te polecenia wpływają na menedżera rozruchu, a nie na sektor rozruchowy ...
Massimo,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.