diskutil: ottiene correttamente lo spazio totale e disponibile su macOS

1

Su macOS High Sierra, con formattazione SSD con APFS, ho:

   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

**********

Ho solo un SSD da 512 GB.

Quindi, il mio problema è come analizzare correttamente per ottenere:

  • Spazio totale
  • Spazio disponibile

Dall'output, non posso sommare semplicemente tutte le righe che iniziano con:

Volume Total Space e Volume Free Space ; sembra che entrambi elencino la stessa cosa:

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

Provando df -H, l'output è:

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

Ancora una volta, ci sono 2 linee (per / dev / disk1s1 e / dev / disk1s4) che mostrano:

Size 500G e Avail 189G

So che in qualche modo questo comportamento è legato alla cosa di APFS; ma ancora, ho bisogno di un po 'di logica per filtrare la voce duplicata .

Voglio solo usare uno o più comandi CLI, che in qualche modo mi permettono di rispondere a questa domanda:

Quanto spazio c'è su TUTTI i dischi (somma) su questo host e quanto è disponibile su TUTTI i dischi (somma)?

    
posta Javier Castro 18.05.2018 - 03:12
fonte

3 risposte

2

Entrambe le seguenti soluzioni elencano la dimensione totale del disco e lo spazio disponibile sulla riga successiva di un filesystem HFS:

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) }'

Per il filesystem APFS prova:

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) }'

EDIT: la capacità di tutti i filesystem montati e lo spazio totale disponibile.

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"
}'
    
risposta data 18.05.2018 - 15:12
fonte
0

dovresti usare diskutil info /dev/disk1

diskutil info --all fornisce più del necessario, mostrando anche i volumi utilizzati per ripristinare il sistema ecc.

df non è utile qui, perché non fornisce informazioni sul volume fisico.

    
risposta data 18.05.2018 - 11:32
fonte
0

Un altro modo più semplice per ottenere informazioni è selezionare unità e clic destro, quindi selezionare Ottieni informazioni. Si apre una piccola finestra con varie informazioni. Elencherà i numeri di capacità, disponibili e usati per l'unità. Non capisco cosa stiano usando per il numero disponibile ma puoi prendere il numero di capacità e sottrarre la quantità utilizzata da esso. Questo dovrebbe darti un numero preciso per la quantità di spazio disponibile.

    
risposta data 20.05.2018 - 20:42
fonte

Leggi altre domande sui tag