I have an old XP drive, that has some programs I would still like to be able to run. The drive is dual boot with Ubuntu, but the Ubuntu file system is corrupted.
The drive boots, but it is old. I want to clone that drive and move load it on another disk. So far I have had no luck, using Clonezilla because it requires a drive of equal size or larger. I have a 500gb drive now. The XP partition is on the new drive sitting side by side with a Linux Mint install. The GRUB2 loader sees Mint and XP. It boots Mint, but XP is stuck with the flashing underline.
What I am going to do is “Live Blog” my problem solving process for this.
Step 1: Google Search – GRUB XP won’t boot – I take the third result which is:
I have Linux Mint, not Ubuntu, but both are Debian based distros, and I think that Mint is specifically derived from Ubuntu. So let’s see what the page says.
UPDATE: Might need the Win XP disk to repair the boot record. I have a disk, but I think it is in a CDROM Drive not installed in a computer. I will need a small pin or paper clip to manually open the drive.
UPDATE2: Got the disk. Need to restart to boot from the disk. However need to research before I restart.
UPDATE3: GRUB2 is installed on the hard drive’s Master Boot Record (MBR). If I overwrite, at the very least Linux won’t boot, and the last time I did it, XP still wouldn’t boot. What I am learning is that the entire drive has more than one set of boot instructions. The MBR is the first instruction set read from the drive after the BIOS loads. Additionally, a partition on the drive can contain bootable code. This secondary code does the job of bootstrapping the OS on that partition into RAM. So, I need to leave GRUB2 in place and try to fix the XP partition boot record. This is sometimes called the PBR, but with windows it can be called the Windows Boot Record or WBR.
The previous information I picked up here:
Fix Unbootable Systems with Bootsect – Windows IT Pro
With this new information I am going to instead try to use Windows 7 and the bootsect utility to repair the WBR of the first partition. That command is this:
bootsect /nt52 C: /mbr
/nt52 means XP Here is the Microsoft Manual for bootsect
UPDATE4: Windows 7 could not read the C drive. I thought it did read it before. I am checking the FS in Linux with GParted.
UPDATE5: Gparted not liking the file system. Hmmm
UPDATE6: The issue was Clonezilla. The secondary partition had errors in the filesystem and clonezilla would not restore it. I’m sure I could have told CZ to ignore that issue. So one of the restored partitions was successful and one was not. So I used cat to restore the secondary partition and then everything was happy. I did cat /dev/sda2 /dev/sdb2 and then I was able to boot.
Final Question: Why did GRUB require the secondary partition be in place to boot anything? In other words, why couldn’t GRUB boot the first partition, /dev/sda1 (WinXP) without the requirement that the Linux partition on /dev/sda2 ? Possible answer? Grub need files from that partition like a grub config file.
You notice I don’t spam you with all kinds of crazy ads. If you need hosting you can support me by signing up with Hostgator. I’ve been with them for almost a decade and many many of my students have hosted with them. Try them for one month for just a penny!