Как написать локализованный загрузочный сектор NTFS?

8

Малоизвестный факт: загрузочные секторы NTFS поставляются на разных языках. Они могут сказать « BOOTMGR is missing» и « Press Ctrl+Alt+Del to restart», но они также могут сказать то же самое на других языках. Это зависит от локали системы Windows, которую вы используете при создании и форматировании разделов.

Из-за беспорядка вредоносного ПО мне пришлось переписать загрузочный сектор NTFS моего системного диска, который скрывал руткит; Я сделал это с помощью bootsect.exeинструмента на установочном DVD, том же установочном DVD на итальянском языке, который я использовал для первоначальной установки Windows; там же был хороший файл bootsect.exe.mui в папке it-IT. Но инструмент говорил по-английски, и мой загрузочный сектор NTFS теперь тоже говорит по-английски (и, конечно, раньше этого не было).

Я знаю, что это чисто косметическая вещь, но я хотел бы знать: как создать локализованный загрузочный сектор NTFS (конечно, без переформатирования раздела в локализованной системе)?

Massimo
источник
3
Я подозреваю, что fixmbr из консоли восстановления в вашей установке может быть локализован. Это, вероятно, должно сделать это.
Гном
(+1) Очень хороший вопрос, Массимо. :) Добавлено в мой список избранных.
Гном
1
В Windows 7 нет «fixmbr» ... самые близкие вещи - это bootsect.exe и bootrec.exe; Я пытался использовать их с установочным DVD (который является локализованным), но в итоге с загрузочным сектором на английском языке. Я попробую еще раз из консоли восстановления.
Массимо
Протестировал их обоих, запустив их из локализованной среды восстановления Windows. И bootsect.exe, и bootrec.exe создадут загрузочные секторы на английском языке.
Массимо
Есть два способа использования bootsect. Вы можете использовать только букву диска, и загрузчик будет записан в раздел, или вы можете использовать параметр / mbr, который записывает его в MBR. Вы пробовали оба? И, честно говоря, действительно ли язык имеет значение? В этом крошечном коде загрузчика есть только несколько строк, и вы даже не видите их большую часть времени. Я полагаю, ваше меню выбора ОС отображается правильно?
billc.cn

Ответы:

1

Разные сообщения приходят из разных мест. Но если вы замените загрузочные файлы, такие как bootmgr, BCD (из системы с точно такой же конфигурацией загрузки), bootsect.dat, boot.sdi или любой другой комбинацией файлов, я думаю, вы найдете сообщения в ваш выбранный язык.

Абраксас
источник
Загрузчик говорит правильный язык; это загрузочный сектор, которого нет.
Массимо
Строго говоря, код в VBR также является загрузчиком.
JdeBP
загрузчики находятся в загрузочных секторах. загрузочные сектора - это не код, а локации.
jiggunjer
1

В моей Vista загрузочный сектор написан на английском, хотя у меня польская система. Я установил с оригинальных дисков Microsoft. Возможно, ваш загрузочный сектор был взломан OEM.

kinokijuf
источник
Официальный образ Microsoft ISO, загруженный с MSDN.
Массимо
Мой тоже официальный.
кинокиф
0

Загрузочный сектор довольно маленький (всего 512 байт), так что вы можете просто разобрать его (используя что-нибудь от NDISASM до IDA), исправить сообщения и затем собрать его снова (NASM сделает).

Это требует немного навыков программирования, а также, возможно, чтения некоторых учебников по x86-ассемблеру, но, конечно, если вы приложите достаточно усилий, то, конечно же, ничего.

Михаил Купчик
источник
2
не 512, а 446 байт. другие байты зарезервированы для таблицы разделов.
Эйр Ним
Суть этого комментария верна, но утверждения, которые он делает, - нет. Загрузочный сектор не MBR. MBR составляет 512 байт (446 без таблицы разделов), тогда как загрузочный сектор по меньшей мере на порядок или два больше и значительно сложнее для обратного проектирования и понимания. Насколько мне известно, полное обратное проектирование загрузочного сектора NTFS не доступно для последних версий Windows. (И все же я проголосовал за этот ответ.)
Махмуд Аль-Кудси
@ MahmoudAl-Qudsi bootsect.exeрассматривает код в MBR и VBR как загрузчик. Проблема языка, на которую ссылается OP, действительно заключается в большей части VBR.
jiggunjer
0

1) Подключите диск, содержащий раздел NTFS, к машине под управлением Linux, используйте редактор диска / шестнадцатеричного кода или команду dd; или 2) Загрузите Linux на CD / DVD, а затем то же самое; или 3) Сделайте то же самое с системой Windows, но редактируемый том NTFS должен быть отключен в Windows Vista и более поздних версиях. У вас есть 4 строки сообщений, закодированные в ascii, с начальными смещениями (относительно смещения 100h в Volume Boot Record), заданными в байтах с 1F8h по 1FBh. Область со смещения от 180h до 1F7h, по-видимому, доступна для этих сообщений. Копия Volume Boot Record находится в самом конце раздела.

kreemoweet
источник
0

Вы можете попробовать это, (если ваша установка Windows находится в разделе C:)

bcdboot c:\Windows /l it-it

или, с помощью bcdedit

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

или с bcdedit в зависимости от вашей конфигурации (узнайте свою конфигурацию, набрав bcdedit)

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

вы можете найти документацию по команде 'bcdboot' здесь:

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

и 'bcdedit' здесь:

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

скажите нам, какой из них работает для вас, если это работает ..!

Риад Крым
источник
Обе эти команды влияют на менеджер загрузки, а не на загрузочный сектор ...
Массимо