hdiutil queda obsoleto en macOS 27. Su reemplazo ya está aquí.

macOSTahoe ·
hdiutil queda obsoleto en macOS 27. Su reemplazo ya está aquí.

Apple declaró obsoleto hdiutil en macOS 27 en favor de diskutil image. Ese comando ya está en su Mac hoy, y le faltan funciones que probablemente usa.

La página man de macOS 27 Golden Gate incluye ahora una línea que nunca antes había estado ahí:

En macOS 27.0, hdiutil queda obsoleto. Use diskutil image en su lugar para todas las operaciones con imágenes de disco.

hdiutil ha sido la forma de crear, montar, convertir e inspeccionar imágenes de disco en el Mac desde Mac OS X 10.0. Si alguna vez ha distribuido un .dmg, ha escrito un script de instalador, ha construido un job de CI que empaqueta una app de Mac, o ha creado un contenedor cifrado para mantener algo privado, lo ha usado — directamente o a través de algo que lo invocó por usted.

Esta es la parte que la mayoría de la cobertura pasó por alto: el reemplazo no está por llegar. Ya está en su Mac. Abra Terminal en macOS 26 Tahoe ahora mismo y ejecute diskutil image. Responde.

Puntos Clave

  • diskutil image ya funciona en macOS 26. Verificado en macOS 26.5.2 (build 25F84). Puede migrar y probar scripts hoy mismo, antes de que se lance macOS 27.
  • Obsoleto no significa eliminado. hdiutil sigue funcionando en macOS 27. Nada se rompe el primer día. Pero Apple lleva siete años recortándolo, y la página man documenta cada paso.
  • La superficie de comandos es mucho más pequeña. hdiutil expone 23 verbos. diskutil image expone 5 subcomandos.
  • No existe detach. Puede montar (attach) una imagen de disco con diskutil image, pero no desmontarla (detach) — eso pasa a diskutil eject.
  • Algunas cosas realmente no tienen reemplazo todavía, incluyendo verify, compact y makehybrid. Si sus scripts de build usan esos comandos, hoy no tiene una ruta de migración.

Primero: confírmelo en su propio Mac

No se quede solo con mi palabra. Un comando:

diskutil image

En macOS 26.5.2 eso imprime:

OVERVIEW: Manipulate disk images (attach, create, etc)

USAGE: diskutil image [--verbose] [--stdinpassphrase] [--plist] <subcommand>

SUBCOMMANDS:
  attach                  Attach a disk image as a device.
  info                    Print info regarding a disk image.
  create                  Create a disk image. Either blank or from an existing
                          source (disk, disk image or folder).
  resize                  Resize a given image to a specified size if
                          applicable.
  chpass                  Change the passphrase of a given encrypted image.

Cinco subcomandos. Ahora compárelo con lo que ofrece hdiutil, directamente desde su propia página man:

Common verbs include attach, detach, verify, create, convert, and compact.

The rest of the verbs are currently: help, info, burn, checksum, chpass,
erasekeys, imageinfo, isencrypted, mountvol, unmount, plugins, udifrez,
udifderez, resize, segment, makehybrid, and pmap.

Son 23 verbos contra 5 subcomandos. Esa proporción resulta alarmante a primera vista, y también es engañosa, porque una comparación verbo por verbo da la respuesta equivocada. Varios verbos de hdiutil quedaron plegados dentro de diskutil image bajo otros nombres, varios ya estaban obsoletos desde hace años, y uno importante se trasladó por completo a otro comando.

Averiguar cuál es cuál es la migración real, así que hagámoslo bien.

Esto no salió de la nada

Antes de la tabla de migración, algo de contexto que hace que la obsolescencia parezca menos abrupta. La página man de hdiutil contiene una sección de compatibilidad que se lee como un registro de siete años de Apple recortando la herramienta. Esto está en su Mac ahora mismo — ejecute man hdiutil y busque los encabezados de versión:

macOS 10.15

  • Introdujo compresión lzma en el formato ULMO
  • Declaró obsoleto el soporte de archivos de doble fork estilo OS 9 (hdiutil flatten/unflatten)
  • Eliminó el comando obsoleto hdiutil internet-enable y las flags de attach de IDME

macOS 11.0

  • Eliminó el soporte para los formatos DiskCopy42, DART y NDIF
  • Eliminó el soporte para las codificaciones AppleSingle y MacBinary
  • Eliminó el soporte de archivos de doble fork estilo OS 9
  • Cambió el sistema de archivos predeterminado para imágenes nuevas a APFS

macOS 12.0

  • Declaró obsoleto el formato UDBZ (compresión bzip2)
  • Declaró obsoletas las imágenes UDIF segmentadas (hdiutil segment, -segmentSize)
  • Declaró obsoletos hdiutil udifrez/udifderez (incrustar y extraer recursos)

macOS 13.0

  • Eliminó la opción encrypted-encoding-version; todas las imágenes cifradas nuevas usan la versión 2

La página man también señala, en línea, que -passphrase es insegura, que las imágenes segmentadas están obsoletas y que UDBZ está obsoleto.

Leído como un solo arco, la obsolescencia de macOS 27 es el último paso de un proceso que comenzó alrededor de 2019, no una decisión tomada este verano. Eso importa para planificar: Apple elimina cosas de esta herramienta despacio y las anuncia primero en la página man. hdiutil en macOS 27 está obsoleto, no desaparecido, y no hay fecha de eliminación anunciada.

La tabla de migración

Este es el mapa. Probé cada uno de estos en macOS 26.5.2.

Qué quiere hacerhdiutildiskutil image
Montar una imagenhdiutil attach x.dmgdiskutil image attach x.dmg
Desmontar una imagenhdiutil detach /dev/diskNNo está en diskutil image — use diskutil eject /dev/diskN
Crear una imagen en blancohdiutil create -size 1g -fs APFS x.dmgdiskutil image create blank --size 1g x.dmg
Crear una imagen a partir de una carpetahdiutil create -srcfolder ./dir x.dmgdiskutil image create from ./dir x.dmg
Convertir formatohdiutil convert in.dmg -format UDZO -o out.dmgdiskutil image create from in.dmg out.dmg --format UDZO
Inspeccionar una imagenhdiutil imageinfo x.dmgdiskutil image info x.dmg
Comprobar si está cifradahdiutil isencrypted x.dmgdiskutil image info → Is Encrypted:
Redimensionarhdiutil resize -size 2g x.dmgdiskutil image resize
Cambiar la contraseñahdiutil chpass x.dmgdiskutil image chpass x.dmg
Verificar checksumhdiutil verify x.dmgSin equivalente
Compactar una imagen sparsehdiutil compact x.sparsebundleSin equivalente
Crear una imagen híbrida/ISOhdiutil makehybridSin equivalente
Incrustar un acuerdo de licenciahdiutil udifrezSin equivalente (obsoleto desde macOS 12)
Grabar en medios ópticoshdiutil burnSin equivalente

La sorpresa de convert

El error más común que he visto en los primeros comentarios es «no existe convert». Sí existe — simplemente no se llama así.

OVERVIEW: Create a disk image from an existing source (disk, disk image or
folder).

Source and destination disk image can be the same, which will perform the
conversion in place.

diskutil image create from acepta una imagen de disco como origen, así que es hdiutil convert con otro nombre, y además admite conversión in situ, algo que hdiutil convert nunca hizo. Si cuenta verbos en lugar de leer el texto de ayuda, concluirá que se eliminó una capacidad cuando en realidad se amplió.

El vacío de detach es real

Este no es un simple cambio de nombre. No hay detach en ninguna parte de diskutil image:

$ diskutil image detach /dev/disk12
Error: 2 unexpected arguments: 'detach', '/dev/disk12'
Usage: diskutil image [--verbose] [--stdinpassphrase] [--plist] <subcommand>

El reemplazo es el comando diskutil de nivel superior:

$ diskutil eject /dev/disk12
Disk /dev/disk12 ejected

Lo cual funciona bien — pero note lo que le hace a un script. La simetría limpia de hdiutil attach / hdiutil detach se convierte en diskutil image attach / diskutil eject, dos niveles de subcomando distintos del mismo binario. Cualquier función wrapper que tenga y que empareje attach con detach necesita reestructurarse, no un simple buscar-y-reemplazar.

Migrando scripts de imágenes de disco

Qué hace mejor diskutil image

Sería injusto presentar esto como una pérdida pura. Hay tres cosas que mejoran de verdad.

ASIF, algo que hdiutil no puede crear en absoluto

diskutil image admite el Apple Sparse Image Format. hdiutil no. Si quiere ASIF — y para discos de máquinas virtuales sobre APFS es el formato hacia el que Apple ha estado orientando todo — diskutil image es la única herramienta que lo produce.

Vale la pena conocer las listas de formatos:

create blank --format : RAW, ASIF, UDSB          (default RAW)
create from  --format : ASIF, RAW, UDRO, UDSB,
                        UDZO, ULFO, ULMO         (default ULFO)

Monta por HTTP y crea discos RAM directamente

Desde la ayuda de attach:

Supports 'ram://<size>', file paths, http[s].

Crear un disco RAM en macOS ha sido tradicionalmente el incómodo proceso de dos pasos hdiutil attach -nomount ram://<sectors> seguido de newfs_hfs o diskutil eraseVolume. Aquí es un solo argumento para una flag documentada.

Es sustancialmente más rápido

Jeff Johnson, de Lapcat Software, comparó ambos mientras investigaba la obsolescencia a principios de agosto de 2026, y midió que diskutil image completaba una operación de create en 40–45 segundos frente a los 110–115 segundos de hdiutil, produciendo además una imagen más pequeña en el proceso. Eso no es una diferencia de redondeo. Para un job de CI que construye imágenes de disco en cada commit, es significativo.

Qué se romperá de verdad en sus scripts

Las advertencias de obsolescencia no rompen builds. Estas cosas sí lo harán.

1. -puppetstrings no tiene reemplazo

La flag -puppetstrings de hdiutil emite salida de progreso parseable por máquina, que es precisamente lo que un sistema de build necesita. Johnson señala su ausencia como uno de los vacíos notables. diskutil image tiene --plist para resultados estructurados, e imprime progreso legible para humanos como:

[5% completed] [79% completed] [98% completed] [100% completed]
test.dmg created

Si tiene herramientas que parsean líneas PERCENT: de hdiutil, ese parser se queda sin nada a lo que engancharse.

2. Varias opciones de create simplemente desaparecieron

El artículo de Johnson enumera -[no]crossdev, -[no]scrub, -[no]anyowners, -skipunreadable, -[no]atomic y -copyuid como opciones sin contraparte. Si construye imágenes a partir de carpetas de forma controlada — instaladores, capturas forenses, cualquier caso donde la propiedad de los archivos o cuáles se incluyen deba ser exacto — lea esa lista con cuidado. -skipunreadable y -copyuid en particular son estructurales para algunos scripts de empaquetado.

3. El comportamiento de scrubbing cambió en silencio

Johnson reporta que diskutil image excluye automáticamente archivos temporales como las carpetas de papelera, comportándose como si -scrub estuviera siempre activo. hdiutil solo hacía scrub cuando se le pedía. Si espera que el contenido de su imagen sea idéntico byte a byte a un directorio de origen, esto producirá una imagen distinta sin avisarle.

4. El manejo de permisos falla en silencio

Esta es la que probaría primero. Johnson descubrió que donde hdiutil dispara un aviso de autenticación al toparse con archivos propiedad de root, diskutil image no pregunta y simplemente falla. Un script que antes se detenía a pedir credenciales ahora producirá una imagen incompleta y, dependiendo de cómo maneje los errores, puede reportar éxito.

Si construye imágenes a partir de directorios que contienen archivos que no le pertenecen, verifique el resultado en lugar de confiar en el código de salida.

5. El logging es más pobre

La salida verbosa de diskutil image es menos detallada que la de hdiutil. Cuando un build falla a las 3 de la madrugada, es entonces cuando lo descubre.

Cómo migrar sin romper el soporte de macOS 26

La mayoría tendremos que dar soporte a ambos durante un tiempo. La buena noticia, y el punto práctico de todo este artículo, es que no tiene que bifurcar según la versión del sistema, porque diskutil image también existe en macOS 26.

Detecte la capacidad, no la versión:

#!/bin/bash
# Prefer diskutil image; fall back to hdiutil where unavailable.

if diskutil image --help >/dev/null 2>&1; then
  USE_DISKUTIL=1
else
  USE_DISKUTIL=0
fi

make_image_from_folder() {
  local src="$1" dst="$2"
  if [ "$USE_DISKUTIL" -eq 1 ]; then
    diskutil image create from "$src" "$dst" --format UDZO
  else
    hdiutil create -srcfolder "$src" -format UDZO "$dst"
  fi
}

attach_image() {
  local img="$1"
  if [ "$USE_DISKUTIL" -eq 1 ]; then
    diskutil image attach "$img" --nobrowse
  else
    hdiutil attach "$img" -nobrowse
  fi
}

detach_device() {
  # Note the asymmetry: detach is NOT under `diskutil image`.
  local dev="$1"
  if [ "$USE_DISKUTIL" -eq 1 ]; then
    diskutil eject "$dev"
  else
    hdiutil detach "$dev"
  fi
}

Luego verifique el resultado, porque ahí es donde viven las diferencias silenciosas:

# Compare what actually landed in the image against the source.
diskutil image attach build.dmg --nobrowse --mountPoint /tmp/verify_mnt
diff -rq ./src /tmp/verify_mnt/src
diskutil eject /tmp/verify_mnt

Ese diff -rq es el paso que no me saltaría. Entre el scrubbing siempre activo y los fallos silenciosos de permisos, una imagen que se construye con éxito no es lo mismo que una imagen que contiene lo que usted pretendía.

Si está montando un entorno de desarrollo para Mac desde cero, nuestra guía de configuración del entorno de desarrollo para Apple silicon cubre las herramientas relacionadas, y la guía de dominio de Terminal cubre los fundamentos de shell que estos scripts dan por sentado.

Verificando el contenido de la imagen de disco

Un ejemplo trabajado, de principio a fin

Aquí tiene un recorrido completo ejecutado en macOS 26.5.2, para que vea la salida real en lugar de una reconstrucción.

Crear una imagen a partir de una carpeta:

$ mkdir -p src && echo "hello" > src/file.txt
$ diskutil image create from src --format UDZO test.dmg
[5% completed] [79% completed] [98% completed] [99% completed] [100% completed]
test.dmg created

Inspeccionarla:

$ diskutil image info test.dmg
Image Format: UDZO
Format Description: UDIF read-only compressed image (zlib)

	Identity Info:
		UUID: 061189CB-7502-4EA6-BFE3-424442C16D10

	Size Info:
		Empty Bytes: 3437056
		Total Bytes: 4233216

	Compression Info:
		Compressed Bytes: 4124
		Compression Type: zlib

	Encryption Info:
		Is Encrypted: 0

	Master Checksum Info:
		Checksum Type: crc32
		Checksum Value: c4 e3 90 4b

Note que info cubre lo que antes le daban por separado hdiutil imageinfo, isencrypted y parte de checksum. Reporta el checksum almacenado — no lo verifica. Ese es el vacío de hdiutil verify.

Montarla:

$ diskutil image attach test.dmg
/dev/disk12  	GUID_partition_scheme
/dev/disk13s1	Apple_APFS_Volume    	/Volumes/src

Desmontarla — con el comando distinto:

$ diskutil eject /dev/disk12
Disk /dev/disk12 ejected

Imágenes cifradas

Si usa imágenes de disco como contenedores cifrados, la mecánica es sencilla, pero las opciones son más limitadas.

# Create an encrypted blank image
diskutil image create blank --encrypt --size 10g --volumeName Vault vault.dmg

# Provide the passphrase on stdin rather than interactively
printf '%s' "$PASSPHRASE" | diskutil image create blank --encrypt --stdinpassphrase \
  --size 10g --volumeName Vault vault.dmg

# Change the passphrase later
diskutil image chpass vault.dmg

--encrypt está documentado como AES-256 y no hay elección de algoritmo, lo cual es una simplificación más que una pérdida — Apple eliminó la versión de codificación cifrada anterior allá por macOS 13.

La flag --stdinpassphrase es la que debe usar en cualquier script. La propia página man de hdiutil advierte que -passphrase es insegura, por la razón habitual de que una contraseña en la línea de comandos es visible en la tabla de procesos para todos los usuarios de la máquina.

Si depende de las imágenes de disco por privacidad y no por conveniencia, vale la pena leer nuestra guía de seguridad y privacidad en Mac para entender dónde se sitúa una imagen cifrada respecto a FileVault — resuelven problemas distintos, y un .dmg cifrado no protege nada mientras está montado.

Para qué siguen sirviendo las imágenes de disco

Vale la pena preguntarse por qué importa todo esto, porque «imagen de disco» suena a reliquia, y las herramientas a su alrededor son, discretamente, estructurales en varios lugares.

Distribución de aplicaciones. El .dmg sigue siendo la forma estándar de distribuir una app de Mac fuera de la App Store. Una imagen comprimida y de solo lectura que contiene un app bundle y un symlink a /Applications es la convención de arrastrar-para-instalar que los usuarios conocen. Cada una de esas imágenes la construye un script que invoca una herramienta de imágenes de disco.

Contenedores cifrados. Un .dmg cifrado es una bóveda portátil y autocontenida que se monta como un volumen y funciona en cualquier Mac sin software especial. A diferencia de FileVault, que protege un disco completo en reposo, una imagen cifrada protege un conjunto específico de archivos que puede mover de un lado a otro — a una memoria USB, a almacenamiento en la nube, a un colega.

Discos de máquinas virtuales. Aquí es donde ASIF importa y donde la dirección de Apple se vuelve obvia.

Sparsebundles para backup en red. Cuando Time Machine hace backup hacia un destino de red, almacena el backup dentro de un sparsebundle — una imagen de disco dividida en muchos archivos de banda pequeños, de modo que solo hace falta sincronizar las bandas que cambiaron. Cualquiera que haya mantenido uno de estos ha ejecutado hdiutil compact para recuperar espacio de las bandas eliminadas.

Forense y archivo. Una imagen a nivel de bloque de un volumen, con un checksum, es la forma de preservar el estado exacto de un disco. hdiutil verify es la forma de confirmarlo más tarde.

Compare esa lista con la tabla de migración y los vacíos se alinean con comunidades específicas en lugar de ser aleatorios. Los desarrolladores de apps pierden el mecanismo de acuerdo de licencia y -puppetstrings. Los usuarios de backup y sparsebundle pierden compact. Los usuarios de archivo y forense pierden verify. A todo el que hace trabajo rutinario de create-convert-attach le va bien.

ASIF: el formato que solo crea la nueva herramienta

El Apple Sparse Image Format es la señal más clara de por qué Apple quiere alejar a la gente de hdiutil, porque hdiutil no puede producirlo en absoluto.

Una imagen sparse solo ocupa espacio en disco para los bloques que realmente contienen datos. Una imagen sparse de 100 GB que contiene 10 GB de archivos ocupa unos 10 GB en disco y crece a medida que se añaden datos. Los antiguos formatos sparse UDSP y sparsebundle UDSB también hacían esto, con problemas conocidos: los sparsebundles se fragmentan en miles de archivos de banda, y ambos formatos históricamente recuperaban espacio de forma deficiente, que es exactamente por qué hdiutil compact tenía que existir.

ASIF está diseñado sobre APFS en lugar de atornillado encima de él, lo cual deja que el propio soporte de archivos sparse del sistema de archivos haga el trabajo en vez de que el formato de imagen lo emule. En la práctica, el beneficio se nota más en la virtualización, donde el disco virtual de una VM es un archivo grande y en su mayoría vacío que cambia constantemente — el caso que más castigaba a los formatos antiguos.

Puede crear una hoy mismo:

# A 100GB ASIF image that occupies only what it uses
diskutil image create blank --format ASIF --size 100g \
  --volumeName VMDisk vmdisk.asif

# Convert an existing image to ASIF
diskutil image create from old.dmg new.asif --format ASIF

Note que el formato se infiere de la extensión — create blank usa RAW por defecto «a menos que la ruta de la imagen tenga extensión .asif o .sparsebundle». Nombrar el archivo correctamente basta; pasar --format además es solo una precaución extra.

La contrapartida es la portabilidad. ASIF es nuevo, y una imagen ASIF no se abrirá en un macOS más antiguo ni en nada que no sea un Mac. Para un disco de VM o un volumen de trabajo local eso es irrelevante. Para cualquier cosa que le entregue a otra persona, use UDZO y conserve la compatibilidad.

Dónde encaja esto en un pipeline de distribución

Si distribuye una app de Mac fuera de la App Store, el paso de la imagen de disco se ubica en medio de una cadena, y vale la pena ver dónde aterriza el cambio.

#!/bin/bash
set -euo pipefail

APP="build/MyApp.app"
DMG="dist/MyApp.dmg"
STAGE="$(mktemp -d)"

# 1. Sign the app bundle (unchanged by any of this)
codesign --force --options runtime --timestamp \
  --sign "Developer ID Application: Example Inc (TEAMID123)" \
  "$APP"

# 2. Stage the contents the user will see
cp -R "$APP" "$STAGE/"
ln -s /Applications "$STAGE/Applications"

# 3. Build the image — the step this article is about
diskutil image create from "$STAGE" "$DMG" --format UDZO

# 4. Sign the image itself
codesign --force --timestamp \
  --sign "Developer ID Application: Example Inc (TEAMID123)" \
  "$DMG"

# 5. Notarize and staple
xcrun notarytool submit "$DMG" --keychain-profile "AC_NOTARY" --wait
xcrun stapler staple "$DMG"

rm -rf "$STAGE"

Solo cambia el paso 3. La firma, la notarización y el stapling no se ven afectados — operan sobre la imagen terminada y no les importa qué herramienta la produjo.

Hay dos cosas que vigilar en un pipeline real. Primero, verifique que el contenido preparado (staged) llegó correctamente, debido al scrubbing silencioso y al comportamiento de permisos descritos antes — un diff -rq entre $STAGE y el resultado montado es un seguro barato. Segundo, si su script actual incrusta un acuerdo de licencia con hdiutil udifrez, ese paso no tiene reemplazo y está obsoleto desde macOS 12. Mantenga hdiutil para ese paso mientras exista y planifique una alternativa.

Solución de problemas comunes

«diskutil image: command not found» o el subcomando no se reconoce

Problema: Está en una versión de macOS anterior a 26, donde el verbo image no existe.

Solución: Use la comprobación de capacidad mostrada antes en lugar de asumir. diskutil image --help >/dev/null 2>&1 devuelve un valor distinto de cero en los sistemas que carecen de él, lo cual es una bifurcación confiable. No pruebe sw_vers — lo que realmente le importa es la presencia del subcomando.

La imagen se construye pero le faltan archivos

Problema: Dos causas probables. O bien diskutil image omitió archivos que no pudo leer con su usuario y no pidió autenticación, o bien su scrubbing siempre activo eliminó elementos que hdiutil habría incluido.

Solución: Monte el resultado y hágale diff -rq contra el directorio de origen. Si faltan archivos por un tema de propiedad, ejecute el build con los privilegios necesarios en lugar de esperar un aviso. No confíe solo en el código de salida.

El parseo de progreso se rompió en CI

Problema: -puppetstrings no tiene equivalente en diskutil image, así que los scripts que parseaban el progreso legible por máquina de hdiutil se quedan sin nada que leer.

Solución: Use --plist para el resultado estructurado y trate el progreso como no disponible. Si su CI necesita el progreso específicamente, mantener hdiutil para ese paso es legítimo — está obsoleto, no eliminado, y no hay fecha de eliminación anunciada.

No se puede hacer detach — «resource busy»

Problema: Algo todavía tiene el volumen abierto. Esto se comporta igual que siempre.

Solución: lsof +D /Volumes/YourVolume para encontrar quién lo retiene, luego diskutil eject. La indexación de Spotlight y los escáneres antivirus son culpables frecuentes; montar con --nobrowse evita parte del problema manteniendo el volumen fuera de Finder.

Un .dmg con acuerdo de licencia ya no se construye

Problema: El mecanismo de acuerdo de licencia depende de hdiutil udifrez, que Apple declaró obsoleto allá por macOS 12 y que no tiene contraparte en diskutil image.

Solución: No hay ruta de reemplazo. Siga usando hdiutil para ese paso mientras exista, y planifique un método de distribución que no dependa de un acuerdo incrustado. Esto lleva cuatro años avisado, algo que vale la pena saber si apenas lo está descubriendo ahora.

Preguntas frecuentes

¿hdiutil sigue funcionando en macOS 27?

Sí. Está obsoleto, no eliminado. La obsolescencia es Apple señalando una intención y poniendo en marcha un reloj — no es un cambio funcional. Nada de lo que funciona hoy deja de funcionar al instalar macOS 27.

¿Cuándo se eliminará realmente hdiutil?

Apple no lo ha dicho. Al mirar el propio historial de la página man, el patrón de Apple con esta herramienta ha sido declarar obsoleta una función en una versión y eliminarla una o más versiones mayores después — internet-enable y el soporte de doble fork de OS 9 tardaron cada uno al menos un ciclo completo. Cualquiera que le dé una versión específica de eliminación está adivinando.

¿Puedo usar diskutil image en macOS 26 Tahoe?

Sí, y este es el dato más útil de todo el artículo. Verificado en macOS 26.5.2 (build 25F84). Puede migrar sus scripts y probarlos ahora, en el sistema que ya usa, en lugar de esperar a macOS 27.

¿Es diskutil image un reemplazo completo de hdiutil?

No, todavía no. verify, compact, makehybrid y burn no tienen contraparte, y faltan varias opciones de create para controlar exactamente qué archivos se incluyen. Para el camino habitual — create, convert, attach, inspect, resize, encrypt — sí está completo.

¿Por qué hizo esto Apple?

Apple no ha publicado una razón. Lo que se puede observar es que diskutil image es más rápido en benchmarks, produce imágenes más pequeñas, admite el formato ASIF más nuevo que hdiutil no puede producir, y presenta una superficie de comandos mucho más pequeña. Consolidar el manejo de imágenes de disco dentro de diskutil, junto al resto de la gestión de almacenamiento, es una dirección coherente. Esa es una lectura de la evidencia, no una declaración de Apple.

¿Se romperá mi app si invoca hdiutil desde shell?

No en macOS 27. Planifique migrar de todas formas — y use la comprobación de capacidad para que una sola ruta de código cubra ambos casos, lo cual es más fácil de lo que suena, precisamente porque el comando nuevo ya existe en macOS 26.

Conclusión

El titular — se está retirando un comando de Terminal de 25 años — es cierto, pero engañoso en ambas direcciones. Subestima el cambio para cualquiera cuyos scripts de build usen verify, compact, makehybrid o las opciones detalladas de create, porque esas no tienen ruta hacia adelante hoy. Y lo sobreestima para todos los demás, porque hdiutil sigue funcionando en macOS 27, Apple no ha anunciado fecha de eliminación, y la obsolescencia es el último paso de un estrechamiento que ha estado documentado en la propia página man de la herramienta desde macOS 10.15.

Lo genuinamente útil de saber es que el reemplazo no está en el futuro. diskutil image está en su Mac ahora mismo, en macOS 26, con create, attach, info, resize y chpass funcionando. Puede hacer esta migración un martes por la tarde en el sistema que ya tiene, verificarla con diff -rq, y dejar de pensar en ello.

Solo recuerde que detach no está donde lo espera.

Lectura relacionada: Dominio de Terminal en macOS, Configuración del entorno de desarrollo para Apple silicon, y los volúmenes HFS+ cifrados se están eliminando en macOS 28.