Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

share|improve this question
3  
I'm suspecting fixmbr from the recovery console in your installation may be localized. That should probably do it. –  A Dwarf Jul 12 '11 at 23:23
    
(+1) Very good question btw, Massimo. :) Added to my list of favs. –  A Dwarf Jul 12 '11 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 '11 at 6:02
    
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 '11 at 20:00
    
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 '11 at 0:35

5 Answers 5

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.

share|improve this answer
    
The boot loader speaks the correct language; it's the boot sector which doesn't. –  Massimo Jul 17 '11 at 12:21
    
Strictly speaking, the code in the VBR is also a boot loader. –  JdeBP Jul 19 '11 at 14:31

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.

share|improve this answer
    
Official Microsoft ISO image, downloaded from MSDN. –  Massimo Nov 16 '11 at 22:18
    
Mine is official too. –  kinokijuf Dec 4 '11 at 19:22

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.

share|improve this answer
2  
not 512, but 446 bytes. other bytes are reserved for partition table. –  Eir Nym Nov 4 '11 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.) –  Mahmoud Al-Qudsi Oct 12 '13 at 17:04

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.

share|improve this answer

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..!

share|improve this answer
    
Both of these commands affects the boot manager, not the boot sector... –  Massimo Feb 6 '12 at 23:06

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.