broken windows slice in a dual boot system

jrm@

Developer
I have a dual boot laptop with FreeBSD and Windows XP. A few years ago I upgraded FreeBSD and since then Windows stopped booting (I think that's what happened, but my memory is a little fuzzy). Until recently I didn't care about windows, but now I need it, so I'm trying to make it boot again.

The FreeBSD boot manager shows this.
Code:
F1 Win
F2 FreeBSD

F6 PXE

Boot: F2

A disk read error occurred
Press Ctrl+Alt+Del to restart

Here is how the disk is partitioned.
Code:
=>       63  156301425  ad0  MBR  (74G)
         63   20482812    1  ntfs  (9.8G)
   20482875  135813510    2  freebsd  [active]  (64G)
  156296385       5103       - free -  (2.5M)

=>        0  135813510  ad0s2  BSD  (64G)
          0    2097152      1  freebsd-ufs  (1.0G)
    2097152    2097152      2  freebsd-swap  (1.0G)
    4194304    2097152      4  freebsd-ufs  (1.0G)
    6291456    2097152      5  freebsd-ufs  (1.0G)
    8388608  127424902      6  freebsd-ufs  (60G)

I can mount_ntfs /dev/ad0s1 fine and see all the expected windows files. Is it possible to repair the windows slice so it is bootable again without borking the FreeBSD installation?
 
The slice contents should be okay, it's just the boot block. That "disk read error" is not good, and might mean the drive is failing.

Make a full backup first of the whole disk. Then boot with plop and see if you can boot the Windows partition.

If that works, I'd likely try fixboot or fixmbr. After that, only Windows will boot, so use plop again to boot FreeBSD and reinstall the multi-boot loader with boot0cfg(8).
 
Back
Top