diskutil: obtenga correctamente el espacio total y disponible en macOS

1

En macOS High Sierra, con formato SSD con APFS, tengo:

   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

**********

Solo tengo un SSD de 512 GB.

Por lo tanto, mi problema es cómo analizarlo correctamente para obtener:

  • Espacio total
  • espacio disponible

Desde la salida, no puedo simplemente sumar todas las líneas que comienzan con:

Volume Total Space y Volume Free Space ; Parece que ambos listan lo mismo:

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

Intentando df -H, la salida es:

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

De nuevo, hay 2 líneas (para / dev / disk1s1 y / dev / disk1s4) que muestran:

Size 500G y Avail 189G

Sé que de alguna manera este comportamiento está relacionado con el APFS; pero nuevamente, necesito algo de lógica para filtrar la entrada duplicada .

Solo quiero usar uno o más comandos CLI, que de alguna manera me permiten responder esta pregunta:

¿Cuánto espacio hay en TODOS los discos (suma) en este host y cuánto está disponible en TODOS los discos (suma)?

    
pregunta Javier Castro 18.05.2018 - 03:12

3 respuestas

2

Las dos soluciones siguientes enumeran el tamaño total del disco y el espacio disponible en la siguiente línea de un sistema de archivos 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) }'

Para el sistema de archivos APFS intente:

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

EDITAR: La capacidad de todos los sistemas de archivos montados y el espacio total disponible.

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"
}'
    
respondido por el fd0 18.05.2018 - 15:12
0

debes usar diskutil info /dev/disk1

diskutil info --all ofrece más de lo necesario, también muestra los volúmenes que se utilizan para restaurar el sistema, etc.

df no es útil aquí, porque no proporciona información sobre el volumen físico.

    
respondido por el Igor Voltaic 18.05.2018 - 11:32
0

Otra forma más fácil de obtener su información es seleccionar la unidad y hacer clic con el botón derecho, luego seleccionar Obtener información. Una pequeña ventana se abre con información diversa. Mostrará los números de capacidad, disponibilidad y uso de la unidad. No entiendo lo que están usando para el número disponible, pero puede tomar el número de capacidad y restar la cantidad utilizada. Esto debería darle un número preciso para la cantidad de espacio disponible.

    
respondido por el jmh 20.05.2018 - 20:42

Lea otras preguntas en las etiquetas