1

I have a 2008 Macbook 5,1 (aluminium unibody). I had Bootcamp on it. Then, I replaced the DVD with a SSD and made a DIY fusion drive. It was working properly until this year's May, when I cloned the "regular" HD and I couldn't boot on windows even when the partition and data were still there. I asked here and @DavidAnderson gave me the solution. Here is the post, with all the steps he gave me: Boot Camp does not boot after disk cloning

But last week I updated from Yosemite to El Capitan directly from Mac App Store, and now I have the same problem again: Windows partition is still there, but it doesn't appear when I press ALT when booting. Note than when I upgraded last year to Yosemite I hadn't any problem with bootcamp at all.

Here you have all the commands he asked me to write in Terminal, and what it returns now (witch is the same as in the old post, except the last lines):

sh-3.2# diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *128.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Fusion Drive            127.7 GB   disk0s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk0s3
/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk1
   1:         Microsoft Reserved                         134.2 MB   disk1s1
   2:                        EFI EFI                     209.7 MB   disk1s2
   3:          Apple_CoreStorage Fusion Drive            897.0 GB   disk1s3
   4:                 Apple_Boot Recovery HD             650.1 MB   disk1s4
   5:       Microsoft Basic Data Windows HD              102.0 GB   disk1s5
/dev/disk2 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh FD           +1.0 TB     disk2
                                 Logical Volume on disk0s2, disk1s3
                                 CF615BFD-DE74-4DB6-9048-DDD0C370D6DB
                                 Unencrypted Fusion Drive

sh-3.2# mount
/dev/disk2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
localhost:/ljrmORG7ruxPGjngM9WOSh on /Volumes/MobileBackups (mtmfs, nosuid, read-only, nobrowse)
/dev/disk1s5 on /Volumes/Windows HD (fusefs_txantfs, local, synchronous)
sh-3.2# sudo  gpt  -r  show  /dev/disk1
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34      262144      1  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
      262178        2014         
      264192      409600      2  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      673792  1751953408      3  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  1752627200     1269760      4  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  1753896960      409600         
  1754306560   199217152      5  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  1953523712        1423         
  1953525135          32         Sec GPT table
  1953525167           1         Sec GPT header
sh-3.2# sudo  fdisk  /dev/disk1
Disk: /dev/disk1    geometry: 121601/255/63 [1953525168 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 - 1953525167] <Unknown ID>
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
sh-3.2# sudo  dd  if=/dev/disk1  count=1  |  xxd
1+0 records in
1+0 records out
512 bytes transferred in 0.008874 secs (57697 bytes/sec)
0000000: 33c0 8ed0 bc00 7c8e c08e d8be 007c bf00  3.....|......|..
0000010: 06b9 0002 fcf3 a450 681c 06cb fbb9 0400  .......Ph.......
0000020: bdbe 0780 7e00 007c 0b0f 850e 0183 c510  ....~..|........
0000030: e2f1 cd18 8856 0055 c646 1105 c646 1000  .....V.U.F...F..
0000040: b441 bbaa 55cd 135d 720f 81fb 55aa 7509  .A..U..]r...U.u.
0000050: f7c1 0100 7403 fe46 1066 6080 7e10 0074  ....t..F.f`.~..t
0000060: 2666 6800 0000 0066 ff76 0868 0000 6800  &fh....f.v.h..h.
0000070: 7c68 0100 6810 00b4 428a 5600 8bf4 cd13  |h..h...B.V.....
0000080: 9f83 c410 9eeb 14b8 0102 bb00 7c8a 5600  ............|.V.
0000090: 8a76 018a 4e02 8a6e 03cd 1366 6173 1cfe  .v..N..n...fas..
00000a0: 4e11 750c 807e 0080 0f84 8a00 b280 eb84  N.u..~..........
00000b0: 5532 e48a 5600 cd13 5deb 9e81 3efe 7d55  U2..V...]...>.}U
00000c0: aa75 6eff 7600 e88d 0075 17fa b0d1 e664  .un.v....u.....d
00000d0: e883 00b0 dfe6 60e8 7c00 b0ff e664 e875  ......`.|....d.u
00000e0: 00fb b800 bbcd 1a66 23c0 753b 6681 fb54  .......f#.u;f..T
00000f0: 4350 4175 3281 f902 0172 2c66 6807 bb00  CPAu2....r,fh...
0000100: 0066 6800 0200 0066 6808 0000 0066 5366  .fh....fh....fSf
0000110: 5366 5566 6800 0000 0066 6800 7c00 0066  SfUfh....fh.|..f
0000120: 6168 0000 07cd 1a5a 32f6 ea00 7c00 00cd  ah.....Z2...|...
0000130: 18a0 b707 eb08 a0b6 07eb 03a0 b507 32e4  ..............2.
0000140: 0500 078b f0ac 3c00 7409 bb07 00b4 0ecd  ......<.t.......
0000150: 10eb f2f4 ebfd 2bc9 e464 eb00 2402 e0f8  ......+..d..$...
0000160: 2402 c349 6e76 616c 6964 2070 6172 7469  $..Invalid parti
0000170: 7469 6f6e 2074 6162 6c65 0045 7272 6f72  tion table.Error
0000180: 206c 6f61 6469 6e67 206f 7065 7261 7469   loading operati
0000190: 6e67 2073 7973 7465 6d00 4d69 7373 696e  ng system.Missin
00001a0: 6720 6f70 6572 6174 696e 6720 7379 7374  g operating syst
00001b0: 656d 0000 0063 7b9a 4803 555d 0000 00fe  em...c{.H.U]....
00001c0: ffff eefe ffff 0100 0000 af6d 7074 0000  ...........mpt..
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.
sh-3.2# sudo  gpt  -r  show /dev/disk0
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  249397856      2  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  249807496     262144      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  250069640          7         
  250069647         32         Sec GPT table
  250069679          1         Sec GPT header
sh-3.2# sudo  fdisk  /dev/disk0
Disk: /dev/disk0    geometry: 15566/255/63 [250069680 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -  250069679] <Unknown ID>
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
sh-3.2# sudo  dd  if=/dev/disk0  count=1  |  xxd
1+0 records in
1+0 records out
512 bytes transferred in 0.000864 secs (592573 bytes/sec)
0000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001b0: 0000 0000 0000 0000 0000 0000 0000 00fe  ................
00001c0: ffff eefe ffff 0100 0000 afc2 e70e 0000  ................
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.
sh-3.2# diskutil  info  disk1s1
   Device Identifier:        disk1s1
   Device Node:              /dev/disk1s1
   Whole:                    No
   Part of Whole:            disk1
   Device / Media Name:      Untitled 1

   Volume Name:              Not applicable (no file system)

   Mounted:                  Not applicable (no file system)

   File System:              None

   Partition Type:           Microsoft Reserved
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 SATA
   SMART Status:             Verified
   Disk / Partition UUID:    4DE8F5CA-515E-471A-8176-28E3ADC70B13

   Total Size:               134.2 MB (134217728 Bytes) (exactly 262144 512-Byte-Units)
   Volume Free Space:        Not applicable (no file system)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (no file system)

   Device Location:          Internal
   Removable Media:          No

   Solid State:              No

sh-3.2# ls  -l  "/Volumes/Windows HD/Boot/BCD"
-rwxrwxrwx  1 _unknown  _unknown  32768 17 sep 01:01 /Volumes/Windows HD/Boot/BCD

With this information, @DavidAnderson told me to copy-paste this code in the script editor an run it

use scripting additions
property disk : 1
property mypassword : ""

on fixmbr()

    script tm
        on subtract(x as text, y as text)
            return (x - y) as text
        end subtract
        on add(x as text, y as text)
            return (x + y) as text
        end add
    end script

    script mbr
        property table : {¬
            {id:"EE", guid:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B"}, ¬
            {id:"07", guid:"EBD0A0A2-B9E5-4433-87C0-68B6B72699C7"}, ¬
            {id:"AF", guid:"48465300-0000-11AA-AA11-00306543ECAC"}, ¬
            {id:"AB", guid:"426F6F74-0000-11AA-AA11-00306543ECAC"}, ¬
            {id:"AC", guid:"53746F72-6167-11AA-AA11-00306543ECAC"}, ¬
            {id:"00", guid:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE"}}

        property entry1 : {id:"00", active:"-", start:"0", size:"0"}
        property entry2 : {id:"00", active:"-", start:"0", size:"0"}
        property entry3 : {id:"00", active:"-", start:"0", size:"0"}
        property entry4 : {id:"00", active:"-", start:"0", size:"0"}
        property entry : {entry1, entry2, entry3, entry4}

        on MapGUIDToId(guid as text)
            repeat with pair in table
                if guid is guid of pair then return id of pair
            end repeat
            log "error"
        end MapGUIDToId
        on MapIdToGUID(id as text)
            repeat with pair in table
                if id is id of pair then return guid of pair
            end repeat
            log "error"
        end MapIdToGUID
    end script

    set output to do shell script "gpt -r show /dev/disk" & disk password mypassword with administrator privileges

    set AppleScript's text item delimiters to {" "} --, "GPT part -"}
    set i to 0

    set rows to paragraphs in output
    --showValue of sv for rows
    set foundActive to false
    set j to 0
    repeat with row in rows

        set columns to {}
        repeat with x in text items in row
            if x is not in {""} then
                set end of columns to contents of x
            end if
        end repeat

        if length of columns is 7 and {"GPT", "part", "-"} is in columns then
            --showValue of sv for columns given minCount:12
            set i to i + 1
            set ind to (item 3 of columns) as integer

            if i is not equal to ind then
                log "error"
            else if j is 0 and item 7 of columns is MapIdToGUID("EE") of mbr then
                set j to 1
                --log "found " & i & " for entry " & j

                set partStart to item 1 of columns
                set partSize to item 2 of columns
                set partSize to add(partSize, partStart) of tm
                set partStart to "1"
                set partSize to subtract(partSize, partStart) of tm

                set id of entry1 of mbr to "EE"
                set start of entry1 of mbr to partStart
                set size of entry1 of mbr to partSize
            else if 0 < j and j < 4 then
                set j to j + 1
                --log "found " & i & " for entry " & j
                set entry to item j of entry of mbr

                set id of entry to MapGUIDToId(item 7 of columns) of mbr
                set start of entry to item 1 of columns
                set size of entry to item 2 of columns
                if not foundActive and id of entry is "07" then
                    set active of entry to "*"
                    set foundActive to true
                end if
            end if
        end if
    end repeat

    set i to 0
    set input to {}
    repeat with ent in entry of mbr
        if id of ent is "00" then exit repeat
        set i to i + 1
        set end of input to "edit " & i & linefeed
        set end of input to id of ent & linefeed
        set end of input to "n" & linefeed
        set end of input to start of ent & linefeed
        set end of input to size of ent & linefeed
        if active of ent is "*" then
            set end of input to "flag " & i & linefeed
        end if
    end repeat
    set end of input to "q" & linefeed & "y" & linefeed
    set AppleScript's text item delimiters to {}
    set input to input as text
    --log linefeed & input

    set command to "fdisk -e /dev/disk" & disk & " << EOF" & linefeed & input & "EOF"

    log linefeed & command

    set output to do shell script command with administrator privileges
    log output
    display dialog "The script has finished." buttons {"OK"}
    return 0
end fixmbr
fixmbr()

When I did it in May, it worked. This time I realized that the output from terminal for all the commands is the same as in May, so I tried the same script again, but it returns an error and does nothing. It says:

error "fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory fdisk: /dev/disk1: Operation not permitted" number 1

So I don't know what to do now, but I'm not scared about using the terminal. Does anyone know how to make the bootcamp partition bootable again? Can someone tell me why it have failed, but it didn't failed when updating to Yosemite, if I did it the same way I updated to El Capitan?

Thank you in advance.

3

System Integrity Protection (SIP) is something new with El Captain. This prevents the fdisk command from changing the Master Boot Record (MBR). You will need to temporarily turn SIP off by following the steps below.

  1. Restart the computer.
  2. When the computer restarts, hold down the alt/option key until the menu appears showing boot options.
  3. Select the Recovery HD partition for OS X 10.11.
  4. Once booted, select the Terminal application from the menu bar.
  5. In the Terminal application window, enter the following command.

    csrutil  disable
    
  6. Quit the Terminal application.
  7. Restart the computer to return to El Captain, OS X 10.11.

At this point, you can repair the MBR on /dev/disk1. Once you have finished, you should turn SIP back on.

To turn on SIP, follow the above steps, except substitute the following command.

csrutil  enable
  • 1
    Thank you @DavidAnderson you saved me a lot of time again. BTW, I don't know why but even when the recovery partition is supposed to be there, it doesn't appear when booting since I did the diy fusion drive. Instead of it, it appears the machintosh HD twice when holding alt when booting. I had to make a USB disk bootable to run recovery from it... Anyway, thank you again! – Tirapiedras Oct 14 '15 at 0:05
  • @David, Its Works. Super man... – Jaleel Nazir Feb 25 '17 at 7:18

You must log in to answer this question.

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