This e-mail is a perfect illustration of the need for MBRFIX, so here it is for everyone
to see; it's been edited to clarify its use, and the client's identity has been removed.
---------- Original Message ----------
To: TheStarman <killallspam@localhost.net>
From: Concerned Reader <killallspam@localhost.net>
Subject: Netbook woes
Date: Wednesday, 08 July 2009
Hi,
I've recently purchased a second-hand "netbook" preloaded with Win XP (Home) on its 4GB SSD. It works well, but I wanted to try out a small Linux distro (Puppy) on the Secondary 8GB SSD. It installed GRUB and all is working well,
but I've decided to return to the original configuration (i.e., booting from WinXP and using the 8GB SSD for data storage only). My concerns: "What changes has GRUB made to the first MBR, and if I delete/format the 8GB SSD will
I be able to boot at all?" To make matters worse, I do not have the original Windows install CD, so can't use Windows XP's fixmbr.
I have found and downloaded "MbrFix.exe", but before I use it I would like to know which command to use. Will fixmbr [under MbrFix.exe; if one adds "/Vista" it will use the Vista
MBR code instead] be the command to use?
At the moment I cannot even access the BIOS setup, because the PC boots immediately into the GRUB menu.
Your assistance is very much appreciated.
[I have no idea why he couldn't access the BIOS, but here's my detailed reply about MbrFix]:
==================================
To: Concerned Reader <killallspam@localhost.net>
From: "The Starman" <killallspam@localhost.net>
Date: Wed, 8 Jul 2009
Subject: Re: Netbook woes
Hi Reader,
I appreciate very much that you thought to ask ahead of time, rather than after trying to fix a system you were unsure of what to do with, and having to look for help later.
I'm assuming you can still boot-up into either of your operating systems, and are most likely using Windows XP right now, correct?
Please confirm: Is the MBRFIX.EXE you have from this site:
http://www.sysint.no/nedlasting/mbrfix.htm
And/or that you Downloaded version 1.0.9; probably from here:
http://www.sysint.no/Download/tabid/162/Default.aspx
Right? If not, please do so, as this is the PROGRAM I'm commenting on here!
-----------------------------------------------------------------------------
Oh, if you don't have it, I recommend getting a copy of HxD, the free File
and Disk Hex Editor, so you can visually see any changes you make both BEFORE
and AFTER you reboot your computer! NOTE (on changing MBR code and its data):
None of the changes you make to your MBR sector will have any effect while your
OS is still running, only when you reboot; UNLESS there's a power failure,
or you decide to reboot the computer without remembering you were still working
on your MBR or did not make sure you made the right choice(s) when changing it!
BUT until the PC actualy shuts down/reboots, you can make all the changes you
want to.
You can get the latest copy of HxD here: http://www.mh-nexus.de/hxd/
-----------------------------------------------------------------------------
Run MBRFIX.EXE with the "-h" switch to see all of its commands (it's in a 'Tools' folder on this box):
C:\Tools> mbrfix -h
MbrFix.exe Copyright (C) 2004-2009 Systemintegrasjon AS
http://www.sysint.no
Usage:
MbrFix /drive <num> { command } { /yes } { /verbose }
Commands:
MbrFix /? Display help page and license
MbrFix /drive <num> driveinfo Display drive information
MbrFix /drive <num> drivesize Returns size in MB as return value
MbrFix /drive <num> listpartitions Display partition information
MbrFix /drive <num> savembr <file> Save MBR and partitions to file
MbrFix /drive <num> restorembr <file> Restore MBR and partitions from file
MbrFix /drive <num> fixmbr {/vista|/win7} Update MBR to W2K/XP/2003 (default),
Vista or Windows 7
MbrFix /drive <num> clean Delete all partitions on drive
MbrFix /drive <num> readsignature {/byte} Read disk signature from MBR
MbrFix /drive <num> generatesignature Generate disk signature in MBR
MbrFix /drive <num> writesignature <bytes> Write disk signature in MBR
MbrFix /drive <num> readstate Read state from byte 0x1b2 in MBR
MbrFix /drive <num> writestate <state> Write state to byte 0x1b2 in MBR
MbrFix /drive <num> readdrive <startsector> <sectorcount> <file>
Save sectors from drive to file
MbrFix /drive <num> /partition <part> fixbootsector <os>
Update Boot code in boot sector
MbrFix /drive <num> /partition <part> getpartitiontype
Get partition type
MbrFix /drive <num> /partition <part> setpartitiontype <typenum>
Set partition type
MbrFix /drive <num> /partition <part> setactivepartition
Set active partition
MbrFix /drive <num> getactivepartition Get active partition
MbrFix volumeinformation driveletter Get volume information for partition
MbrFix flush {driveletter(s)} Flush files to disk for partition
MbrFix listpartitiontypes List partition types
Now run the info command to be sure whether it's disk "0" or "1" that is the actual hard disk you want to change. E.g., on a nearby Win XP system,
I entered the following at a Commnad-Line prompt for the folder containing mbrfix.exe, and got the following:
C:\Tools> MBRFIX /drive 0 driveinfo
Drive 0
Cylinders = 38913
Tracks (heads) per cylinder = 255
Sectors per track = 63
Bytes per sector = 512
Disk size = 320070320640 (Bytes) = 298 (GB)
This is a 320 GB SATA-II hard disk; you can also check your partitions using:
C:\Tools> MBRFIX /drive 0 listpartitions
# Boot Size (MB) Type
1 Yes 29996 7 NTFS or HPFS
2 99998 7 NTFS or HPFS
3 175248 15 WIN95: Extended partition, LBA-mapped
4 0 0 None
Kåre (the author MbrFix) does *not* use the usual Hex values for the partition types, but rather ordinary decimal numbers; so "15" is really the "0F" you
might be used to seeing in other partition table utilities (and on the disk). From what you wrote, you should have a single type "7" on each of your disks.
NOW, YOU SHOULD 'BACK UP' THE DATA FROM YOUR EXISTING TABLE BY DOING:
C:\Tools> MBRFIX /drive 0 savembr disk0mbr.bin
which worked just fine on our test system here. You might as well do it for your other disk too; use "disk1mbr.bin" for it. And I'd add it's a good idea
to save at least the first 100 sectors of each disk, so you have a copy of your Volume Boot Record (usually at Sector 63) as well:
C:\Tools> MBRFIX /drive 0 readdrive 0 100 0dsk100s.bin
And maybe for your other disk too; use 1dsk100s.bin (for disk 1 and 100 sectors). BTW, all the file names above are just suggestions; use any you like better.
OK, NOW YOU CAN CHANGE THE MBR WITHOUT ANY WORRIES IN CASE YOU MAKE A MISTAKE (since you could use the
"restorembr" command to make things right again) Proceed as follows:
C:\Tools> MBRFIX /drive 0 fixmbr [Using the MBR code for Windows 2000/XP/2003.]
You are about to Fix MBR,
are you sure (Y/N)? y
Answer 'y' only if you have "backed up" your original data. I just carried out this command on my own computer, compared the before and after MBR sectors
digitally (by saving MBR sector again to dskAmbr.bin), and the results were: "No differences found".
So, whatever fixmbr does, it did not change the partition table, and the code is exactly the same as the WinXP (SP2) machine I tested it on.
Therefore, I can state that I have tested this version of the program, and if used exactly as I did here, you should not have any problems.
Oh, and before you ever reboot a PC after making changes to the MBR sector, I'd check to be sure you have your WinXP OS set to "Yes" (Active boot partition) or it still might not boot up.
Cheers, Daniel.
(aka, TheStarman.)
|