Este mensaje de error se produce cuando hay poco o ningún espacio libre justo debajo del contenedor APFS que está intentando ampliar. Por ejemplo, a continuación se muestra el diskutil list disk2
salida de una imagen de disco en la que se ha asignado prácticamente todo el espacio libre a las particiones.
/dev/disk2 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +1.0 TB disk2
1: EFI EFI 209.7 MB disk2s1
2: Apple_HFS tbd 749.9 GB disk2s2
3: Apple_APFS Container disk3 249.8 GB disk2s3
Se puede ver 209.7 MB + 749.9 GB + 249.8 GB = 1.000 TB
. Si se introducen los siguientes comandos, entonces disk2s1
y disk2s2
se convertirá en espacio libre.
diskutil erasevolume free none disk2s1
diskutil erasevolume free none disk2s2
El resultado de diskutil list disk2
Después de introducir los comandos anteriores, se muestra a continuación.
/dev/disk2 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +1.0 TB disk2
1: Apple_APFS Container disk3 249.8 GB disk2s3
El comando dado a continuación puede ser usado para devolver el espacio libre directamente debajo de una partición apfs al contenedor apfs adjunto.
diskutil apfs resizeContainer disk2s3 0
Sin embargo, como todo el espacio libre significativo está por encima de la partición, se genera el siguiente mensaje de error.
Started APFS operation
Error: -69743: The new size must be different than the existing size
La posición exacta y el tamaño del disk2s3
La partición se puede determinar introduciendo el siguiente comando.
diskutil info disk2s3 | grep -e Offset -e Size
En este caso, el comando produce la siguiente salida.
Partition Offset: 750209736704 Bytes (1465253392 512-Byte-Device-Blocks)
Disk Size: 249.8 GB (249790263296 Bytes) (exactly 487871608 512-Byte-Units)
Device Block Size: 512 Bytes
La siguiente suma da como resultado la posición final del disk2s3
partición.
750,209,736,704 bytes 249,790,263,296 bytes = 1,000,000,000,000 bytes = 1.000 TB
Se puede ver que no hay espacio libre apreciable después de la disk2s3
partición, por lo que apareció el mensaje de error.
El tamaño exacto de la imagen de disco puede determinarse introduciendo el siguiente comando
diskutil info disk2 | grep Size
En este caso, la salida se muestra a continuación.
Disk Size: 1.0 TB (1000000020480 Bytes) (exactly 1953125040 512-Byte-Units)
Device Block Size: 512 Bytes
Esto muestra que existen 20480 bytes de espacio después del final del disk2s3
partición. Sin embargo, no todo es espacio libre. Parte de este espacio está ocupado por la copia de seguridad de la tabla de particiones GUID (GPT).
Como se trata de una imagen de disco, se puede introducir el siguiente comando sin tener que desactivar la protección de integridad del sistema (SIP).
gpt -r show /dev/disk2
En este caso, el comando produce la siguiente salida.
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 1465253358
1465253392 487871608 1 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
1953125000 7
1953125007 32 Sec GPT table
1953125039 1 Sec GPT header
Esta salida muestra que en realidad hay 7 sectores de espacio libre después del disk2s3
partición. Como el tamaño del sector (tamaño del bloque del dispositivo) es de 512 bytes, el espacio libre se calcula en 3.584 bytes. Esto es menor que el tamaño de bloque de asignación de 4096 bytes requerido para el diskutil apfs resizeContainer disk2s3 0
para proceder.
Actualmente, el tamaño del bloque de asignación para APFS está fijado en 4096 bytes. En este caso, el tamaño del bloque de asignación se puede confirmar introduciendo el comando que se indica a continuación.
diskutil info disk3s1 | grep Allocation
La salida de este comando se muestra a continuación.
Allocation Block Size: 4096 Bytes
0 votos
Debería tener una partición EFI en disco0s1 . ¿Puedes editar los resultados de
sudo gpt -r show disk0
en su pregunta.0 votos
Obtengo gpt show: unable to open device 'disk0': Operación no permitida
0 votos
Lo siento, olvidé mencionar que necesitas desactivar el SIP para usar
sudo gpt -r show disk0
para su disco de arranque. Vale la pena hacerlo ya que confirmará en qué parte del disco se encuentra su partición.