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)?

Massimo
źródło
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.

Abraxas
źródło
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.

kinokijuf
źródło
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.

Michaił Kupczik
źródło
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.

kreemoweet
źródło
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 ..!

Riad Krim
źródło
Oba te polecenia wpływają na menedżera rozruchu, a nie na sektor rozruchowy ...
Massimo,