Estoy intentando cambiar el tamaño de una partición que es demasiado pequeña para mis necesidades. Aquí está la salida de diskutil list
:
~> diskutil list
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 500.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 400.0 GB disk0s2
3: Apple_APFS Container disk2 100.0 GB disk0s3
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +400.0 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 234.4 GB disk1s1
2: APFS Volume Preboot 23.6 MB disk1s2
3: APFS Volume Recovery 518.1 MB disk1s3
4: APFS Volume VM 6.4 GB disk1s4
/dev/disk2 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +100.0 GB disk2
Physical Store disk0s3
1: APFS Volume Mojave Beta 90.2 GB disk2s1
2: APFS Volume Preboot 46.3 MB disk2s2
3: APFS Volume Recovery 512.3 MB disk2s3
4: APFS Volume VM 3.2 GB disk2s4
Miré esta publicación de MacObserver y probé esto:
sudo diskutil apfs resizeContainer disk0s3 150G
También eché un vistazo a esta publicación, también re: diskutil
documentación.
La salida de la consola es la siguiente:
Comenzó la operación de APFS Alineando el delta de crecimiento a 49 999 994 880 bytes y apuntando a un nuevo tamaño de almacenamiento físico de 149 999 996 928 bytes Se determinó que el tamaño máximo para el almacenamiento físico de destino de este contenedor APFS es de 100 000 002 048 bytes Error: -69519: el disco de destino es demasiado pequeño para esta operación , o se requiere un espacio en su mapa de particiones que falta o es demasiado pequeño, lo que a menudo se debe a un intento de hacer crecer una partición más allá del comienzo de otra partición o más allá del final del espacio utilizable del mapa de particiones
Sé que tengo 50 gigas en el otro disco, pero ¿cómo puedo recuperarlo Macintosh HD
y dárselo al Mojave Beta
disco? Gracias por leer. Doy la bienvenida a sus sugerencias.
Actualizar
Solo para S y G, intenté hacer el disco grande más pequeño y ver qué pasaba .
Estado actual:
Shrinking APFS Physical Store disk0s2 from 399,963,168,768 to 349,999,996,928 bytes
Shrinking APFS data structures
[ - 0%..10%..20%..30%..40%............................... ] 45.0%
Actualización 2
No volé mi disco duro, pero no funcionó... bueno, funcionó... así es como se ve diskutil list
ahora después de ese intento:
~> diskutil list
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 500.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 350.0 GB disk0s2
3: Apple_APFS Container disk2 100.0 GB disk0s3
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +350.0 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 234.4 GB disk1s1
2: APFS Volume Preboot 23.6 MB disk1s2
3: APFS Volume Recovery 518.1 MB disk1s3
4: APFS Volume VM 6.4 GB disk1s4
/dev/disk2 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +100.0 GB disk2
Physical Store disk0s3
1: APFS Volume Mojave Beta 90.3 GB disk2s1
2: APFS Volume Preboot 46.3 MB disk2s2
3: APFS Volume Recovery 512.3 MB disk2s3
4: APFS Volume VM 3.2 GB disk2s4
Así que encogemos el grande y luego intentamos agrandar la pequeña partición. No tengo ni puta idea de dónde fueron los otros 50 conciertos, pero está ahí en alguna parte. Miré la aplicación Disk Utility y muestra una partición de 350 GB, una partición de 100 GB y 50 GB de espacio libre.
Si Apple supervisa esto, simplifique el cambio de tamaño de las particiones. Este es un PITA enorme y no debería serlo.
Apple no proporciona una forma de hacer lo que quieres hacer. Hay herramientas de terceros que pueden mover una partición, pero la última vez que lo comprobé, no funcionarán con particiones de contenedores APFS.
Las particiones se almacenan en un disco de forma contigua. Esto significa que no puede simplemente agregar espacio libre a una partición. El espacio libre debe existir directamente debajo de la partición. Permítame mostrarle un ejemplo similar a su situación.
Primero está la salida del comando diskutil list disk1
. La unidad a continuación es una imagen de disco escasa. Creé la imagen para ayudar a ilustrar mi respuesta. La imagen se divide bastante cerca de su archivo disk0
.
Marlin:driveinfo davidanderson$ diskutil list disk1
/dev/disk1 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +500.3 GB disk1
1: EFI EFI 314.6 MB disk1s1
2: Apple_APFS Container disk3 400.0 GB disk1s2
3: Apple_APFS Container disk4 100.0 GB disk1s3
Aquí está la salida de sudo gpt -r show /dev/disk1
. Este comando muestra el almacenamiento de valores en la tabla de particiones GUID (GPT). En este caso, las unidades son bloques de 512 bytes.
Marlin:driveinfo davidanderson$ gpt -r show /dev/disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 614448 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
614488 781250000 2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
781864488 195283952 3 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
977148440 5
977148445 32 Sec GPT table
977148477 1 Sec GPT header
Dado que disk0
es su unidad de arranque, no puede usar el gpt
comando sin una sudo
Protección de integridad del sistema (SIP) desactivada. Una alternativa al gpt
comando es una herramienta de terceros llamada driveinfo . Si usa esta herramienta, no necesitará deshabilitar SIP o usar un archivo sudo
. A continuación se muestra el resultado de este comando. Aquí, las unidades están en bytes.
Marlin:driveinfo davidanderson$ ./driveinfo -rd disk1
Code Size Type Identifier Mounted Name
---- --------------- -------------- ---------- ------- ----
512 PMBR
512 Pri GPT header
16,384 Pri GPT table
3,072 Free Space
314,597,376 EFI disk1s1 No EFI
400,000,000,000 Apple_APFS disk1s2 No
99,985,383,424 Apple_APFS disk1s3 No
2,560 Free Space
16,384 Sec GPT table
512 Sec GPT header
A continuación, ingresaré el siguiente comando para crear 50 GB de espacio libre. Esto es similar a lo que hiciste.
sudo diskutil apfs resizeContainer disk0s2 350G
Los resultados se muestran a continuación.
Marlin:driveinfo davidanderson$ diskutil list disk1
/dev/disk1 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +500.3 GB disk1
1: EFI EFI 314.6 MB disk1s1
2: Apple_APFS Container disk3 350.0 GB disk1s2
3: Apple_APFS Container disk4 100.0 GB disk1s3
Marlin:driveinfo davidanderson$ sudo gpt -r show disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 614448 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
614488 683593744 2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
684208232 97656256
781864488 195283952 3 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
977148440 5
977148445 32 Sec GPT table
977148477 1 Sec GPT header
Marlin:driveinfo davidanderson$ ./driveinfo -rd disk1
Code Size Type Identifier Mounted Name
---- --------------- -------------- ---------- ------- ----
512 PMBR
512 Pri GPT header
16,384 Pri GPT table
3,072 Free Space
314,597,376 EFI disk1s1 No EFI
349,999,996,928 Apple_APFS disk1s2 No
50,000,003,072 Free Space
99,985,383,424 Apple_APFS disk1s3 No
2,560 Free Space
16,384 Sec GPT table
512 Sec GPT header
Los 50 GB de espacio libre se crearon inmediatamente después
disk1s2
. Para agregar este espacio libre adisk1s3
, el espacio tendría que aparecer inmediatamente después dedisk1s3
.
Entonces, para agregar los 50 GB de espacio libre, disk0s3
primero tendría que mover esta partición 50 GB. No creo que exista actualmente un software que pueda mover un contenedor APFS. Por lo tanto, no puede mover espacio de un contenedor APFS a otro contenedor APFS.
Las soluciones alternativas podrían incluir:
disk0s3
en disk0s2
. Consulte la respuesta de Geoff Nixon para conocer una de esas formas de clonar los contenidos.disk0s2
, luego use la aplicación Asistente de migración para copiar datos importantes de disk0s3
. Debo advertirle que no tengo conocimiento si el Asistente de migración funcionará con dos particiones de contenedor APFS en la misma unidad.disk0s3
en otra unidad utilizando Time Machine o algún otro medio. A continuación, puede intentar restaurar adisk0s2
La implementación de cualquiera de las soluciones anteriores le permitiría eliminar disk0s3
y cambiar el tamaño disk0s2
para contener el espacio ocupado originalmente por ambas particiones.
A menudo, un usuario necesita conocer la partición de una unidad. En particular, donde está el espacio libre. El diskutil list disk0
comando muestra las particiones en orden ascendente y el tamaño de cada partición. Sin embargo, este comando no muestra espacio libre. La aplicación Disk Utility muestra ocasionalmente espacio libre, pero el valor suele ser incorrecto y no muestra dónde está el espacio libre con respecto a las otras particiones.
Entonces, ¿dónde se muestra el espacio libre? Aquí hay algunas formas de determinar dónde está el espacio libre.
sudo gpt -r show /dev/disk0
comando mostrará los bloques de sector lógico utilizados por cada partición. El comando también mostrará el espacio libre entre cada partición en unidades de bloque de sector lógico. En los días de OS X, podía ejecutar este comando en las unidades de arranque. A partir de macOS, la Protección de integridad del sistema (SIP) debe estar deshabilitada para hacer esto.diskutil info -plist disk0s#
comando para recuperar #
los valores de bytes de tamaño e inicio del número de partición. Debe repetir el comando para cada partición en una unidad. A continuación, puede compilar una tabla similar a la salida del gpt -r show /dev/disk0
comando. Básicamente, el espacio libre es cualquier espacio no asignado a una partición, el registro de arranque maestro protegido (PMBR) y las tablas de particiones GUID (GPT).Escriba un script BASH que automatizaría el camino número 2. Se puede descargar un script gratuito desde este sitio . Suponiendo que sus descargas vayan a la Downloads
carpeta predeterminada, puede obtener el espacio libre ingresando el comando que se muestra a continuación. Nota: No necesita ingresar sudo
o deshabilitar SIP.
~/Downloads/driveinfo-1.0.1/driveinfo -r disk0
No es normal tener dos particiones de contenedor APFS en la misma unidad. Al hacerlo, derrota una de las principales razones para la creación de la APFS. Si necesita dos volúmenes APFS diferentes, debe crear cada volumen en la misma partición de contenedor APFS. Esto también es cierto, si desea tener dos o más versiones diferentes de High Sierra y/o Mojave instaladas.
Cuando desee eliminar un volumen APFS, el espacio libre se devuelve automáticamente al contenedor APFS. No debería necesitar ingresar un sudo diskutil apfs resizeContainer disk0s# 0
comando. Si elimina un volumen que contiene una versión de macOS, es necesario realizar una limpieza adicional. Los pasos de limpieza necesarios se describen en la respuesta aceptada a la pregunta: ¿ Eliminar macOS de un contenedor APFS?
No estoy siguiendo gran parte de la discusión anterior. Parece que tiene suficiente espacio para consolidar.
Recupere sus 50G en la primera partición física.
diskutil ap resizeContainer disk0s2 0
Restaure la partición lógica que desea conservar del segundo contenedor APFS a una partición lógica adicional en el primer contenedor.
asr restore --source /dev/disk2s1 --target /dev/disk1
.
Esto puede llevar algún tiempo si necesita desfragmentarse. (Si esto le causa algún problema (durante la inversión), es posible que deba destruir ( diskutil ap deleteVolume
) las particiones de prearranque, VM y recuperación en el segundo contenedor. Supongo que está bien para usted, y en realidad no he visto que eso sea un problema durante algún tiempo.)
Monte su nueva partición lógica "Mojave Beta", la que ahora está en el primer contenedor . Asegúrate de que se vea bien.
Deshágase del segundo contenedor APFS:
diskutil ap deleteContainer disk0s3
; luego elimine la partición física por completo: diskutil eraseVolume free free disk0s3
.
Y finalmente, recupere el resto del disco en el primer (único) Contenedor APFS una vez más:
diskutil ap resizeContainer disk0s2 0
.
¿No? ¿Me estoy perdiendo de algo?
systemsetup -setstartupdisk
para cambiar los "roles" de volumen (puede ser impredecible al cambiar el disco de inicio a través de las Preferencias del sistema). Ver eclecticlight.co/2018/08/30/…FYI, debe especificar el contenedor (en su caso, "disk2", por lo que el comando debería ser:
Por ejemplo, para aumentar el tamaño del disco Mojave Beta (disk2):
sudo diskutil apfs resizeContainer disk2 150G
No estoy seguro si tiene que reducir otro volumen o no.
También debe validar la configuración de su Time Capsule para asegurarse de que no tiene demasiado historial (para limitar el espacio).
Adrián
sudo diskutil apfs resizeContainer disk0s3 0
, pero dice que no hay suficiente espacio. Creo que voy a bombardear todo el viaje y comenzar de nuevo si no puedo descifrarlo esta noche :)david anderson