APFS Volume does not increase in size

apfsbackupbig surdiskutilsparsebundle

I have an issue with an APFS volume that resides inside a SparseBundle.
I tried to increase its size (similar to this: Is it possible to increase size of an APFS volume?), but failed.
Unfortunately, I have no idea what else to do (except for recreating the whole thing, copying all data, and put it in the place of the existing one).


added (2020-12-08):

I noticed that during the last step of my actions an error occurred and I assume that my problem exists because of the error.

The error happened during "Increase APFS Container" diskutil apfs resizeContainer disk2s2 0

    error: (oid 0xa67b) apfs_root: btn: invalid o_cksum (0x5824c5de98a6fb78)
    fsroot tree is invalid
    The volume /dev/disk2s2 could not be verified completely

Setup

The setup I have an issue with is like this, however I think the relevant part is within the APFS part:

  • On Mac OS (now Big Sur)
  • SMB network share, usually mounted to /Volumes/Backup/
  • On /Volumes/Backup/ there is a SparseBundle (/Volumes/Backup/iTunes_iOS_Backup/Backup_sparse_bundle/itunes_backup.sparsebundle)
  • Inside the SparseBundle there is a APFS container with one APFS volume,
    the volume mounts to /Volumes/itunes_backup/
  • On ~/Library/Application\ Support/MobileSync/ I have a link to the mounted volume
    lrwxr-xr-x 1 user staff 29 Oct 14 2017 Backup -> /Volumes/itunes_backup/Backup

What I wanted to do was increase the size of the APFS Volume which resides inside the SparseBundle.

Steps I took to increase the APFS volume

  1. Increased the size of the SparseBundle with this command:
    hdiutil resize -size 1500g /Volumes/Backup/iTunes_iOS_Backup/Backup_sparse_bundle/itunes_backup.sparsebundle
    As far as I could see, no error was thrown.

  2. To check, ran hdiutil imageinfo /Volumes/Backup/iTunes_iOS_Backup/Backup_sparse_bundle/itunes_backup.sparsebundle

    Class Name: CSparseBundleDiskImage
    Size Information:
        Total Bytes: 1610822492160
        Compressed Ratio: 1
        Sector Count: 3146137680
        Total Non-Empty Bytes: 0
        Compressed Bytes: 1610822492160
        Total Empty Bytes: 1610822492160
    Checksum Type: none
    Format: UDSB
    partitions:
        partition-scheme: GUID
        block-size: 512
        partitions:
            0:
                partition-name: Protective Master Boot Record
                partition-start: 0
                partition-synthesized: true
                partition-length: 1
                partition-hint: MBR
            1:
                partition-name: GPT Header
                partition-start: 1
                partition-synthesized: true
                partition-length: 1
                partition-hint: Primary GPT Header
            2:
                partition-name: GPT Partition Data
                partition-start: 2
                partition-synthesized: true
                partition-length: 32
                partition-hint: Primary GPT Table
            3:
                partition-name: 
                partition-start: 34
                partition-synthesized: true
                partition-length: 6
                partition-hint: Apple_Free
            4:
                partition-UUID: 131BB16B-9C17-4ADE-BA9C-19A43E3F42F3
                partition-name: EFI System Partition
                partition-hint-UUID: C12A7328-F81F-11D2-BA4B-00A0C93EC93B
                partition-start: 40
                partition-number: 1
                partition-length: 409600
                partition-hint: C12A7328-F81F-11D2-BA4B-00A0C93EC93B
                partition-filesystems:
                    FAT32: EFI
            5:
                partition-UUID: D528609D-5A45-4146-92A8-871B833293BD
                partition-name: disk image
                partition-hint-UUID: 7C3457EF-0000-11AA-AA11-00306543ECAC
                partition-start: 409640
                partition-number: 2
                partition-length: 3145728000
                partition-hint: Apple_APFS
                partition-filesystems:
                    APFS: Untitled
            6:
                partition-name: 
                partition-start: 3146137640
                partition-synthesized: true
                partition-length: 7
                partition-hint: Apple_Free
            7:
                partition-name: GPT Partition Data
                partition-start: 3146137647
                partition-synthesized: true
                partition-length: 32
                partition-hint: Backup GPT Table
            8:
                partition-name: GPT Header
                partition-start: 3146137679
                partition-synthesized: true
                partition-length: 1
                partition-hint: Backup GPT Header
        burnable: false
    Format Description: sparse
    Checksum Value: 
    Properties:
        Encrypted: false
        Kernel Compatible: false
        Checksummed: false
        Software License Agreement: false
        Partitioned: false
        Compressed: no
    Segments:
        0: /Volumes/Backup/iTunes_iOS_Backup/Backup_sparse_bundle/itunes_backup.sparsebundle
    Backing Store Information:
        URL: file:///Volumes/Backup/iTunes_iOS_Backup/Backup_sparse_bundle/itunes_backup.sparsebundle/
        Name: itunes_backup.sparsebundle
        Class Name: CBundleBackingStore
    Resize limits (per hdiutil resize -limits):
     min     cur     max 
    1679163392  3145728000  18014398509072303
    
  3. Mount SparseBundle
    hdiutil attach /Volumes/Backup/iTunes_iOS_Backup/Backup_sparse_bundle/itunes_backup.sparsebundle

    /dev/disk2              GUID_partition_scheme           
    /dev/disk2s1            EFI                             
    /dev/disk2s2            Apple_APFS                      
    /dev/disk3              EF57347C-0000-11AA-AA11-0030654 
    /dev/disk3s1            41504653-0000-11AA-AA11-0030654 /Volumes/itunes_backup
    
  4. Increase APFS Container: diskutil apfs resizeContainer disk2s2 0
    added: I noticed that during this step an error occurred

    Started APFS operation
    Aligning grow delta to 510.612.738.048 bytes and targeting a new physical store size of 1.610.612.736.000 bytes
    Determined the maximum size for the targeted physical store of this APFS Container to be 1.610.611.707.904 bytes
    Resizing APFS Container designated by APFS Container Reference disk3
    The specific APFS Physical Store being resized is disk2s2
    Verifying storage system
    Performing fsck_apfs -n -x /dev/disk2s2
    Checking the container superblock
    Checking the space manager
    Checking the space manager free queue trees
    Checking the object map
    Checking volume
    Checking the APFS volume superblock
    The volume itunes_backup was formatted by newfs_apfs (748.1.47) and last modified by apfs_kext (1677.50.1)
    Checking the object map
    Checking the snapshot metadata tree
    Checking the snapshot metadata
    Checking the extent ref tree
    Checking the fsroot tree
    error: (oid 0xa67b) apfs_root: btn: invalid o_cksum (0x5824c5de98a6fb78)
    fsroot tree is invalid
    The volume /dev/disk2s2 could not be verified completely
    Storage system check exit code is 0
    Growing APFS Physical Store disk2s2 from 1.099.999.997.952 to 1.610.612.736.000 bytes
    Modifying partition map
    Growing APFS data structures
    Finished APFS operation
    
  5. diskutil apfs list

    APFS Containers (2 found)
    |
    +-- Container disk1
    |   +-< Physical Store disk0s2
    |   +-> Volume disk1s1 
    |   +-> Volume disk1s2 
    |   +-> Volume disk1s3 
    |   +-> Volume disk1s4 
    |   +-> Volume disk1s5 
    |
    +-- Container disk3 E79238FB-8BB4-44AB-AFD9-4990B9B70F23
        ====================================================
        APFS Container Reference:     disk3
        Size (Capacity Ceiling):      1610612736000 B (1.6 TB)
        Capacity In Use By Volumes:   845079302144 B (845.1 GB) (52.5% used)
        Capacity Not Allocated:       765533433856 B (765.5 GB) (47.5% free)
        |
        +-< Physical Store disk2s2 D528609D-5A45-4146-92A8-871B833293BD
        |   -----------------------------------------------------------
        |   APFS Physical Store Disk:   disk2s2
        |   Size:                       1610612736000 B (1.6 TB)
        |
        +-> Volume disk3s1 424805EF-477B-4C7B-9688-9A46612478D9
            ---------------------------------------------------
            APFS Volume Disk (Role):   disk3s1 (No specific role)
            Name:                      itunes_backup (Case-sensitive)
            Mount Point:               /Volumes/itunes_backup
            Capacity Consumed:         844815552512 B (844.8 GB)
            Sealed:                    No
            FileVault:                 No
    

The trouble

The issue I have is that the volume seems not be enlarged or at least the space is not usable. When I tried to copy data to the drive it failed due to not enough space.

When I check with df -h /Volumes/itunes_backup/ I see

    Filesystem     Size   Used  Avail Capacity iused       ifree %iused  Mounted on
    /dev/disk3s1  1.5Ti  787Gi  285Gi    74%  647844 15727992156    0%   /Volumes/itunes_backup

Any ideas how I can proceed to increase also the APFS volume would be much appreciated

Best Answer

The accepted answer you reference did not include the -imageonly option in the hdiutil command shown in step 3.

I am using High Sierra. Here is an Example.

First, I create a sparse bundle.

Marlin-3:~ davidanderson$ hdiutil create -type SPARSEBUNDLE -size 100g -fs APFS -volname MyAPFS -attach ~/Desktop/test
/dev/disk1              GUID_partition_scheme           
/dev/disk1s1            EFI                             
/dev/disk1s2            Apple_APFS                      
/dev/disk2              EF57347C-0000-11AA-AA11-0030654 
/dev/disk2s1            41504653-0000-11AA-AA11-0030654 /Volumes/MyAPFS
created: /Users/davidanderson/Desktop/test.sparsebundle
Marlin-3:~ davidanderson$ diskutil list disk1
/dev/disk1 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +107.4 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                 Apple_APFS Container disk2         107.2 GB   disk1s2

Next, I eject.

Marlin-3:~ davidanderson$ diskutil eject disk1
Disk disk1 ejected

Here, is the resize command.

Marlin-3:~ davidanderson$ hdiutil resize -size 200g -imageonly ~/Desktop/test.sparsebundle
nx_kernel_mount:1359: : checkpoint search: largest xid 5, best xid 5 @ 9
nx_kernel_mount:1359: : checkpoint search: largest xid 5, best xid 5 @ 9
nx_kernel_mount:1359: : checkpoint search: largest xid 5, best xid 5 @ 9
nx_kernel_mount:1359: : checkpoint search: largest xid 5, best xid 5 @ 9

Next, I mount.

Marlin-3:~ davidanderson$ hdiutil attach ~/Desktop/test.sparsebundle
/dev/disk1              GUID_partition_scheme           
/dev/disk1s1            EFI                             
/dev/disk1s2            Apple_APFS                      
/dev/disk2              EF57347C-0000-11AA-AA11-0030654 
/dev/disk2s1            41504653-0000-11AA-AA11-0030654 /Volumes/MyAPFS
Marlin-3:~ davidanderson$ diskutil list disk1
/dev/disk1 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +214.7 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                 Apple_APFS Container disk2         107.2 GB   disk1s2

Finally, I increase the size of the APFS container.

Marlin-3:~ davidanderson$ diskutil apfs resizecontainer disk1s2 0
Started APFS operation
Aligning grow delta to 107,374,182,400 bytes and targeting a new physical store size of 214,538,608,640 bytes
Determined the maximum size for the targeted physical store of this APFS Container to be 214,537,580,544 bytes
Resizing APFS Container designated by APFS Container Reference disk2
The specific APFS Physical Store being resized is disk1s2
Verifying storage system
Performing fsck_apfs -n -x /dev/disk1s2
Checking volume
Checking the container superblock
Checking the space manager
Checking the object map
Checking the APFS volume superblock
Checking the object map
Checking the fsroot tree
Checking the snapshot metadata tree
Checking the extent ref tree
Checking the snapshots
Verifying allocated space
The volume /dev/disk1s2 appears to be OK
Storage system check exit code is 0
Growing APFS Physical Store disk1s2 from 107,164,426,240 to 214,538,608,640 bytes
Modifying partition map
Growing APFS data structures
Finished APFS operation
Marlin-3:~ davidanderson$ diskutil list disk1
/dev/disk1 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +214.7 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                 Apple_APFS Container disk2         214.5 GB   disk1s2