diskutil: Holen Sie sich den gesamten und verfügbaren Speicherplatz auf macOS mit APFS

Auf macOS High Sierra mit mit APFS formatierter SSD habe ich:

   diskutil info -all

   Device Identifier:        disk0
   Device Node:              /dev/disk0
   Whole:                    Yes
   Part of Whole:            disk0
   Device / Media Name:      APPLE SSD SM0512L

   Volume Name:              Not applicable (no file system)
   Mounted:                  Not applicable (no file system)
   File System:              None

   Content (IOContent):      GUID_partition_scheme
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported

   Disk Size:                500.3 GB (500277788672 Bytes) (exactly 977105056 512-Byte-Units)
   Device Block Size:        4096 Bytes

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

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Hardware AES Support:     No

**********

   Device Identifier:        disk0s1
   Device Node:              /dev/disk0s1
   Whole:                    No
   Part of Whole:            disk0

   Volume Name:              Not applicable (no file system)
   Mounted:                  Not applicable (no file system)
   File System:              None

   Partition Type:           EFI
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Volume UUID:              E783267B-A4C3-3556-B751-DBED770EB996
   Disk / Partition UUID:    4C82BF11-A7F4-4477-A189-500D6D646FD2
   Partition Offset:         24576 Bytes (6 4096-Byte-Device-Blocks)

   Disk Size:                314.6 MB (314572800 Bytes) (exactly 614400 512-Byte-Units)
   Device Block Size:        4096 Bytes

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

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Hardware AES Support:     No

**********

   Device Identifier:        disk0s2
   Device Node:              /dev/disk0s2
   Whole:                    No
   Part of Whole:            disk0

   Volume Name:              Not applicable (no file system)
   Mounted:                  Not applicable (no file system)
   File System:              None

   Partition Type:           Apple_APFS
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Disk / Partition UUID:    4A04D2CF-3476-402C-B7F7-891B43239CCA
   Partition Offset:         314597376 Bytes (76806 4096-Byte-Device-Blocks)

   Disk Size:                500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Device Block Size:        4096 Bytes

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

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Hardware AES Support:     No

**********

   Device Identifier:        disk1
   Device Node:              /dev/disk1
   Whole:                    Yes
   Part of Whole:            disk1
   Device / Media Name:      APPLE SSD SM0512L

   Volume Name:              Not applicable (no file system)
   Mounted:                  Not applicable (no file system)
   File System:              None

   Content (IOContent):      EF57347C-0000-11AA-AA11-00306543ECAC
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Disk / Partition UUID:    9A41D8CF-D5B1-4DD6-95B9-9AD553775115

   Disk Size:                500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Device Block Size:        4096 Bytes

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

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Virtual:                  Yes
   Hardware AES Support:     No

**********

   Device Identifier:        disk1s1
   Device Node:              /dev/disk1s1
   Whole:                    No
   Part of Whole:            disk1

   Volume Name:              Macintosh SSD
   Mounted:                  Yes
   Mount Point:              /

   Partition Type:           41504653-0000-11AA-AA11-00306543ECAC
   File System Personality:  APFS
   Type (Bundle):            apfs
   Name (User Visible):      APFS
   Owners:                   Enabled

   OS Can Be Installed:      Yes
   Booter Disk:              disk1s2
   Recovery Disk:            disk1s3
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Volume UUID:              63FC8459-50EA-467F-9808-FE1FDCA3202F
   Disk / Partition UUID:    63FC8459-50EA-467F-9808-FE1FDCA3202F

   Disk Size:                500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Device Block Size:        4096 Bytes

   Volume Total Space:       500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Volume Used Space:        311.0 GB (311046836224 Bytes) (exactly 607513352 512-Byte-Units) (62.2%)
   Volume Free Space:        188.9 GB (188916334592 Bytes) (exactly 368977216 512-Byte-Units) (37.8%)
   Allocation Block Size:    4096 Bytes

   Read-Only Media:          No
   Read-Only Volume:         No

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Hardware AES Support:     No

**********

   Device Identifier:        disk1s2
   Device Node:              /dev/disk1s2
   Whole:                    No
   Part of Whole:            disk1

   Volume Name:              Preboot
   Mounted:                  No

   Partition Type:           41504653-0000-11AA-AA11-00306543ECAC
   File System Personality:  APFS
   Type (Bundle):            apfs
   Name (User Visible):      APFS
   Owners:                   Disabled

   OS Can Be Installed:      No
   Booter Disk:              disk1s2
   Recovery Disk:            disk1s3
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Volume UUID:              D781C0DD-86C5-45D3-AC8E-835B81757689
   Disk / Partition UUID:    D781C0DD-86C5-45D3-AC8E-835B81757689

   Disk Size:                500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Device Block Size:        4096 Bytes

   Volume Total Space:       0 B (0 Bytes) (exactly 0 512-Byte-Units)
   Volume Free Space:        0 B (0 Bytes) (exactly 0 512-Byte-Units)

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (not mounted)

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Hardware AES Support:     No

**********

   Device Identifier:        disk1s3
   Device Node:              /dev/disk1s3
   Whole:                    No
   Part of Whole:            disk1

   Volume Name:              Recovery
   Mounted:                  No

   Partition Type:           41504653-0000-11AA-AA11-00306543ECAC
   File System Personality:  APFS
   Type (Bundle):            apfs
   Name (User Visible):      APFS
   Owners:                   Disabled

   OS Can Be Installed:      No
   Booter Disk:              disk1s2
   Recovery Disk:            disk1s3
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Volume UUID:              E223480E-7D24-4FBD-8936-60AFDD89865B
   Disk / Partition UUID:    E223480E-7D24-4FBD-8936-60AFDD89865B

   Disk Size:                500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Device Block Size:        4096 Bytes

   Volume Total Space:       0 B (0 Bytes) (exactly 0 512-Byte-Units)
   Volume Free Space:        0 B (0 Bytes) (exactly 0 512-Byte-Units)

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (not mounted)

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Hardware AES Support:     No

**********

   Device Identifier:        disk1s4
   Device Node:              /dev/disk1s4
   Whole:                    No
   Part of Whole:            disk1

   Volume Name:              VM
   Mounted:                  Yes
   Mount Point:              /private/var/vm

   Partition Type:           41504653-0000-11AA-AA11-00306543ECAC
   File System Personality:  APFS
   Type (Bundle):            apfs
   Name (User Visible):      APFS
   Owners:                   Enabled

   OS Can Be Installed:      No
   Booter Disk:              disk1s2
   Recovery Disk:            disk1s3
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Volume UUID:              64D2BA51-6B59-4470-A71F-58E051AA54B5
   Disk / Partition UUID:    64D2BA51-6B59-4470-A71F-58E051AA54B5

   Disk Size:                500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Device Block Size:        4096 Bytes

   Volume Total Space:       500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)
   Volume Used Space:        311.0 GB (311046836224 Bytes) (exactly 607513352 512-Byte-Units) (62.2%)
   Volume Free Space:        188.9 GB (188916334592 Bytes) (exactly 368977216 512-Byte-Units) (37.8%)
   Allocation Block Size:    4096 Bytes

   Read-Only Media:          No
   Read-Only Volume:         No

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes
   Hardware AES Support:     No

**********

Ich habe nur eine 512 GB SSD.

Mein Problem ist also, wie ich es richtig analysieren kann, um Folgendes zu erhalten:

  • Gesamtfläche
  • Verfügbarer Platz

Aus der Ausgabe kann ich nicht einfach alle Zeilen zusammenfassen, die mit beginnen:

Volume Total Spaceund Volume Free Space; Es scheint, dass beide dasselbe auflisten:

Volume Total Space: 500.0 GB (499963170816 Bytes) (exactly 976490568 512-Byte-Units)

Wenn Sie df -H versuchen, lautet die Ausgabe:

df -H
Filesystem      Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk1s1    500G   309G   189G    63% 2397390 9223372036852378417    0%   /
devfs           195k   195k     0B   100%     658                   0  100%   /dev
/dev/disk1s4    500G   1.1G   189G     1%       3 9223372036854775804    0%   /private/var/vm
map -hosts        0B     0B     0B   100%       0                   0  100%   /net
map auto_home     0B     0B     0B   100%       0                   0  100%   /home

Auch hier gibt es 2 Zeilen (für /dev/disk1s1 und /dev/disk1s4) zu sehen:

Size 500GUndAvail 189G

Ich weiß irgendwie, dass dieses Verhalten mit der APFS-Sache zusammenhängt; Aber auch hier brauche ich etwas Logik, um den doppelten Eintrag herauszufiltern .

Ich möchte nur einen oder mehrere CLI-Befehle verwenden, mit denen ich diese Frage irgendwie beantworten kann:

Wie viel Platz ist auf ALLEN Festplatten (Summe) auf diesem Host und wie viel ist auf ALLEN Festplatten (Summe) verfügbar?

Was versuchst du zu bekommen? Der freie Speicherplatz des Laufwerks? Warum nicht verwenden df?

Antworten (4)

Die beiden folgenden Lösungen listen die Gesamtgröße der Festplatte und den verfügbaren Speicherplatz in der nächsten Zeile eines HFS-Dateisystems auf:

df -H | awk '/\/dev\/disk1/ {printf("%s\n%s\n", $2,$4)}'

diskutil info /dev/disk1 | awk '
        /Volume Total Space/     { total = $4" "$5 }
        /Volume Available Space/ { avail = $4" "$5 }
        END { printf("%s\n%s\n", total, avail) }'

Versuchen Sie für das APFS-Dateisystem:

df -H | awk '/\/dev\/disk1s1/ {printf("%s\n%s\n", $2,$4)}'

diskutil info /dev/disk1s1 | awk '
        /Volume Total Space/     { total = $4" "$5 }
        /Volume Free Space/      { avail = $4" "$5 }
        END { printf("%s\n%s\n", total, avail) }'

BEARBEITEN: Die Kapazität aller gemounteten Dateisysteme und der insgesamt verfügbare Speicherplatz.

df | awk '/\/dev\/disk*/ && ! /\/private\/var\/vm/ {

        s_byte = $2 * 512            # covert blocks to bytes
        a_byte = $4 * 512
        ts_byte+=s_byte              # add bytes for each device
        ta_byte+=a_byte              # to their total
        }

        END {

        ts_byte=ts_byte/1000000000   # convert bytes to GB
        ta_byte=ta_byte/1000000000

        print "CAPACITY:", ts_byte,"G     AVAILABLE:", ta_byte,"G"
}'
Ihre Lösung ist für eine bestimmte Festplatte. Ich brauche die "globalen" Werte, die Summe aller Platten (gesamt und verfügbar).

Sie sollten verwenden diskutil info /dev/disk1.


diskutil info -allgibt mehr als nötig und zeigt auch Volumes an, die für die Wiederherstellung des Systems usw. verwendet werden.

dfist hier nicht nützlich, da es keine Informationen zum physischen Volumen liefert.

Dies beantwortet nicht die Frage des OP.
Die Frage war: Wie man es richtig analysiert, um Folgendes zu erhalten: Gesamtspeicherplatz, verfügbarer Speicherplatz. dfist hier nicht nützlich, da es keine Informationen zum physischen Volumen liefert. diskutil info --allgibt mehr als nötig und zeigt auch Volumes an, die für die Wiederherstellung des Systems usw. verwendet werden.
Das sind die Informationen, die der Antwort hinzugefügt werden sollten. Gute Antworten erklären, warum sie gut oder besser als andere Antworten sind und warum sie die Frage beantworten. Es wäre großartig, wenn Sie Ihre Antwort bearbeiten könnten , um diese Informationen hinzuzufügen. Siehe AntwortenWeitere Informationen
tnx für den Tipp, fsb

Die Antwort von @fd0 war nützlich, hat aber bei Big Sur für mich nicht funktioniert - also hier eine aktualisierte Version dieses Skripts. Es funktioniert für eine einzelne interne SSD, würde aber Änderungen für externe Festplatten erfordern, um jede separat zu überprüfen.

Getestet auf Big Sur 11.4:

#!/bin/bash
set -euo pipefail

# Only use macOS versions of df, awk, etc
PATH=/bin:/usr/bin

# This works for a single internal disk that contains root FS 
# - tested on 11.4 Big Sur
df / | sed '1d' |
    awk '
        /^\/dev\/disk1s1s1/ {
            size_byte = $2 * 512            # df uses 512 byte blocks
            avail_byte = $4 * 512
            total_size_gb = size_byte / 1000000000
            total_avail_gb = avail_byte / 1000000000

            printf "Size: %.1f GB     Free: %.1f GB\n", total_size_gb, total_avail_gb
        }
    '

Beispielausgabe:

$ disk-space-mac 
Size: 500.0 GB     Free: 424.8 GB

Dieser Befehl ist nützlich, um die APFS-Volumes anzuzeigen, die sich alle denselben freien Speicherplatz auf der enthaltenden /dev/disk1virtuellen Festplatte teilen:

$ diskutil list virtual 
/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +500.0 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume ⁨Macintosh HD⁩            15.3 GB    disk1s1
   2:              APFS Snapshot ⁨com.apple.os.update-...⁩ 15.3 GB    disk1s1s1
   3:                APFS Volume ⁨Macintosh HD - Data⁩     48.7 GB    disk1s2
   4:                APFS Volume ⁨Preboot⁩                 591.0 MB   disk1s3
   5:                APFS Volume ⁨Recovery⁩                622.9 MB   disk1s4
   6:                APFS Volume ⁨VM⁩                      9.7 GB     disk1s5

Eine weitere einfachere Möglichkeit, Ihre Informationen zu erhalten, besteht darin, Laufwerk auszuwählen und mit der rechten Maustaste zu klicken und dann Informationen zu erhalten. Es öffnet sich ein kleines Fenster mit verschiedenen Informationen. Es listet Kapazität, verfügbare und verwendete Nummern für das Laufwerk auf. Ich verstehe nicht, was sie für die verfügbare Nummer verwenden, aber Sie können die Kapazitätsnummer nehmen und den verwendeten Betrag davon abziehen. Dies sollte Ihnen eine genaue Zahl für den verfügbaren Speicherplatz geben.