Why I'm getting "macOS can't repair the disk" [duplicate]

Solution 1:

You can't expand a macOS partition to lower block numbers (i.e. to the "beginning of a disk") with on-board macOS tools.

Basically you have to remove all useless partitions, clone or restore your main macOS drive to a new partition on the same drive and delete the old one.

Preparation:

  • Backup your data.
  • Detach any external drive (especially your external Time Machine backup drive).
  • Restart to Internet Recovery Mode by pressing alt cmd R at startup.
    The prerequisites are the latest firmware update installed, either Ethernet or WLAN (WPA/WPA2) and a router with DHCP activated.
    On a 50 Mbps-line it takes about 4 min (presenting a small animated globe) to boot to a recovery netboot image which usually is loaded from an Apple/Akamai server.
  • Verify and repair your main macOS volume with Disk Utility

Modify partition table:

  • Open in the menubar Utilities/Terminal

    First you should get an overview of your disks and the partition layout:

  • Enter diskutil list
    Example listing:

    /dev/disk0
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        500.1 GB    disk0
       1:                        EFI EFI                    209.7 MB    disk0s1
       2:           Linux Filesystem                        499.1 MB    disk0s2
       3:                 Linux Swap                          2.0 GB    disk0s3
       4:           Linux Filesystem                        247.5 GB    disk0s4
       5:                  Apple_HFS Mac OS X               248.6 GB    disk0s5
       6:                 Apple_Boot Recovery HD            650.0 MB    disk0s6
       7:                  Apple_HFS Recovery HD            650.0 MB    disk0s7
    /dev/disk1
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:     Apple_partition_scheme                         *1.3 GB    disk1
       1:        Apple_partition_map                         30.7 KB    disk1s1
       2:                  Apple_HFS OS X Base System        *1.3 GB    disk1s2
    /dev/disk2-~disk14...
    

    /dev/disk1-~disk14 ...belong to the macOS Base System (your recovery system you booted to previously)

    disk0 is your main internal disk device containing the EFI-partition (dis0s1), some Linux partitions (disk0s2-disk0s4), your main macOS volume (disk0s5) and two Recovery HDs (disk0s6/disk0s7) one of which is useless - probably disk0s7.

  • To get a standard partition layout you have to delete a lot of partitions, create a new partition, dd or asr your main macOS volume to a new one and rearrange your recovery partition:

  • Get an overview:

    gpt -r show disk0
    
  • Remove partitions (which requires to unmount disk0)

    diskutil umountDisk disk0
    gpt remove -i 7 disk0 #remove 2nd recovery partition
    diskutil umountDisk disk0
    gpt remove -i 4 disk0 #remove Linux 2nd partition (main)
    diskutil umountDisk disk0
    gpt remove -i 3 disk0 #remove Linux Swap
    diskutil umountDisk disk0
    gpt remove -i 2 disk0 #remove Linux 1st partition (booter?)
    
  • Create a new partition for a new main macOS with the same size as your old one:

    diskutil umountDisk disk0
    gpt add -i 2 -b 408640 -s 485511600 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
    
  • Get a new updated view of the partition table:

    diskutil list
    

    Example listing:

    /dev/disk0
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        500.1 GB    disk0
       1:                        EFI EFI                    209.7 MB    disk0s1
       2:                  Apple_HFS                        248.6 GB    disk0s2
       5:                  Apple_HFS Mac OS X               248.6 GB    disk0s5
       6:                 Apple_Boot Recovery HD            650.0 MB    disk0s6
    
  • dd your "old" macOS partition disk0s5 to the new partition disk0s2:

    diskutil umountDisk disk0
    dd if=/dev/disk0s5 of=/dev/disk0s2 bs=1m
    

    (use the proper disk identifiers here: disk0s5 may be different)

  • remove your old main macOS partition

    gpt -r show disk0
    diskutil umountDisk disk0
    gpt remove -i 5 disk0 #use the proper index number of your old macOS partition here
    
  • Create a new partition and clone your recovery partition:

    diskutil umountDisk disk0
    gpt add -i 3 -b 485920240 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
    diskutil list #to get the proper device identifiers
    diskutil umountDisk disk0
    dd if=/dev/disk0s6 of=/dev/disk0s3 bs=1m
    gpt -r show disk0
    diskutil umountDisk disk0
    gpt remove -i 6 disk0 #use the proper index number of your old recovery partition here
    
  • Expand your new main volume:

    diskutil verifyVolume /dev/disk0s2
    diskutil repairVolume /dev/disk0s2 #if necessary
    diskutil resizeVolume /dev/disk0s2 499g
    
  • Reboot to your main volume

Always make certain to use the proper device identifiers - either with diskutil list or gpt -r show disk0!


Finally I recommend to download and install a proper system! Your current system seems to be some public beta of Sierra.