8

Little unknown fact: NTFS boot sectors come in different languages. They can say "BOOTMGR is missing" and "Press Ctrl+Alt+Del to restart", but they can also say the same thing in other languages. This depends on the locale of the Windows system you are using when you create and format the partitions.

Due to a malware messing around, I had to rewrite the NTFS boot sector of my system drive, which was hiding a rootkit; I did this using the bootsect.exe tool on the installation DVD, the same italian-language installation DVD I used to install Windows originally; there was also a nice bootsect.exe.mui file in a it-IT folder around there. But the tool was speaking English, and my NTFS boot sector is now speaking English, too (and, of course, it didn't before).

I know this is a purely cosmetic thing, but I'd like to know: how to create a localized NTFS boot sector (without re-formatting the partition in a localized system, of course)?

8
  • 3
    I'm suspecting fixmbr from the recovery console in your installation may be localized. That should probably do it.
    – A Dwarf
    Jul 12, 2011 at 23:23
  • 1
    There's no "fixmbr" in Windows 7... the closest things are bootsect.exe and bootrec.exe; I tried using them from the installation DVD (which is localized), but ended up with an English boot sector. I'll try again from the Recovery Console.
    – Massimo
    Jul 13, 2011 at 6:02
  • 1
    Tested both of them, running them from a localized Windows Recovery Environment. Both bootsect.exe and bootrec.exe will create English-language boot sectors.
    – Massimo
    Jul 14, 2011 at 20:00
  • 1
    There are two ways to use bootsect. You can use a drive letter alone and the boot loader will be written to the partition or you can use the /mbr option which writes it to the MBR. Have you tried both? And frankly, does the language really matter? There are only a few strings in that tiny boot loader code and you don't even see them most of the time. I assume your OS selection menu displays correctly?
    – billc.cn
    Aug 1, 2011 at 0:35
  • 1
    Do you have a picture or screenshot of this in any language other than English? I've honestly never come across this before. Jan 21, 2016 at 12:37

5 Answers 5

1

Different messages come from different places. But if you replace the boot files, like bootmgr, BCD (from a system with the exact same boot configuration), bootsect.dat, boot.sdi, or whatever combination of files that you have, I think you'll find the messages in your chosen language.

3
  • The boot loader speaks the correct language; it's the boot sector which doesn't.
    – Massimo
    Jul 17, 2011 at 12:21
  • Strictly speaking, the code in the VBR is also a boot loader.
    – JdeBP
    Jul 19, 2011 at 14:31
  • the boot loaders reside in boot sectors. boot sectors aren't code, they're locations.
    – jiggunjer
    Jan 21, 2016 at 10:19
1

On my Vista, the boot sector is in English, even though I have Polish system. I installed from the original Microsoft disks. Perhaps your bootsector was an OEM hacked one.

2
  • Official Microsoft ISO image, downloaded from MSDN.
    – Massimo
    Nov 16, 2011 at 22:18
  • Mine is official too.
    – kinokijuf
    Dec 4, 2011 at 19:22
1
  1. Plug the drive containing the NTFS partition into a machine running linux, use a disk/hex editor, or the dd command; or
  2. Boot into some linux on CD/DVD, and then ditto; or
  3. Do the same with a Windows system, but the NTFS volume to be edited must be unmounted in Windows Vista and later. You have 4 message strings, ascii encoded, with starting offsets (relative to offset 100h in Volume Boot Record) given in bytes 1F8h thru 1FBh. The area from offset 180h thru offset 1F7h seems to be available for these messages. There is a copy of the Volume Boot Record at the very end of the partition.
0

Boot sector is pretty small (just 512 bytes), so you can just disassemble it (using anything from NDISASM to IDA), fix the messages and then reassemble it again (NASM will do).

This requires a bit of programming skills, and maybe also reading some x86 assembler textbooks, but certainly doabe if you strive enough.

3
  • 3
    not 512, but 446 bytes. other bytes are reserved for partition table.
    – Eir Nym
    Nov 4, 2011 at 13:34
  • The essence of this comment is true, but the statements it makes are not. The bootsector is not the MBR. The MBR is 512 bytes (446 without partition table), whereas the bootsector is at least an order or two of magnitude larger and considerably more complicated to reverse engineer and understand. To my knowledge, no complete reverse-engineered study of the NTFS bootsector is available for the latest versions of Windows. (And yet, I upvoted this answer.) Oct 12, 2013 at 17:04
  • @MahmoudAl-Qudsi bootsect.exe treats the code in the MBR and in the VBR as the bootloader. The language problem the OP is referring to is indeed in the larger VBR part.
    – jiggunjer
    Jan 21, 2016 at 10:22
0

You can try this, (if your windows installation is in C: partition)

bcdboot c:\Windows /l it-it

or, with bcdedit

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

or, with bcdedit depending of your configuration (know your configuration by typing bcdedit)

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

you can find documentation about 'bcdboot' command here:

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

and 'bcdedit' here:

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

tell us which one works for you, if it does..!

1
  • Both of these commands affects the boot manager, not the boot sector...
    – Massimo
    Feb 6, 2012 at 23:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .