macOS 27 manda in pensione hdiutil: cosa cambia per script e automazioni

Apple avvia l'accantonamento di hdiutil in macOS 27 Golden Gate e indica diskutil image come successore. Il nuovo comando è più veloce, supporta ASIF, ma presenta ancora differenze importanti per script e backup.

Apple prepara un cambiamento che potrebbe in molti casi passare inosservato agli utenti comuni, ma che interessa da vicino sviluppatori, amministratori e chiunque automatizzi la gestione delle immagini disco su Mac. Con macOS 27 Golden Gate, la storica utilità da Terminale hdiutil entra ufficialmente nello stato di dismissione definitiva: Apple indica diskutil image come interfaccia da utilizzare d’ora in avanti per creare, collegare, ridimensionare e interrogare le immagini disco.

hdiutil accompagna macOS fin dalle prime generazioni di Mac OS X e negli anni è diventato un componente quasi invisibile di moltissimi flussi di lavoro. Dietro la creazione di un file DMG, il montaggio automatico di un’immagine durante l’installazione di un’applicazione o alcuni sistemi di backup ci sono spesso script che invocano proprio questa utilità. La documentazione Apple dedicata alla distribuzione del software Mac, per esempio, continua ancora a mostrare hdiutil create per generare un’immagine destinata alla distribuzione.

La novità emerge però con chiarezza dal manuale incluso nelle versioni beta di macOS 27: hdiutil è da considerarsi ormai accantonato. Continuerà a funzionare ma non rappresenta più l’interfaccia su cui costruire nuovi strumenti e in una futura versione del sistema operativo potrebbe essere addirittura rimosso.

Perché hdiutil è molto più importante di quanto sembri

Un file DMG non è semplicemente un archivio compresso: macOS lo tratta come un contenitore capace di rappresentare un dispositivo a blocchi, eventualmente partizionato e dotato di uno o più file system. Quando si apre un DMG mediante Finder avvengono due passaggi distinti: il sistema collega l’immagine come dispositivo e successivamente Disk Arbitration individua i file system presenti e monta i relativi volumi.

hdiutil ha storicamente riunito molte di queste operazioni in un unico strumento; può generare immagini a partire da una directory, proteggerle mediante cifratura, convertirle tra diversi formati e restituire informazioni strutturate utilizzabili dagli script.

Il suo utilizzo non riguarda soltanto chi digita comandi nel Terminale. Un’applicazione può richiamare hdiutil in maniera trasparente, così come può farlo uno script, un programma di distribuzione software o un sistema che monta automaticamente i DMG scaricati.

Un esempio significativo arriva da Homebrew: nella gestione dei cask (pacchetti con cui Homebrew gestisce l’installazione di applicazioni macOS distribuite come DMG, PKG o altri formati), le immagini DMG rappresentano uno dei formati più comuni e la migrazione verso diskutil image ha già richiesto modifiche al codice.

diskutil image è il successore indicato da Apple

La nuova organizzazione sposta le operazioni sulle immagini disco sotto diskutil image, estendendo un comando che da anni svolge un ruolo centrale nella gestione di dischi, volumi e file system di macOS.

Apple fornisce anche una tabella di corrispondenza. hdiutil attach diventa diskutil image attach; la creazione di un’immagine vuota passa a diskutil image create blank, mentre create -srcfolder, create -srcdevice e convert confluiscono nelle varianti di diskutil image create from. Per il ridimensionamento c’è diskutil image resize, per ottenere informazioni diskutil image info e per cambiare la password di un’immagine cifrata diskutil image chpass.

Il fatto è che la compatibilità non appare ancora perfettamente sovrapponibile, soprattutto per gli script più sofisticati.

La maggior parte delle opzioni principali trova un corrispettivo, ma esistono differenze che possono diventare importanti quando il comando non è usato interattivamente bensì richiamato da un programma.

Come evidenziato, una delle assenze di maggior rilievo riguarda -puppetstrings. hdiutil può infatti produrre tramite questa opzione un indicatore di avanzamento pensato appositamente per la lettura e la successiva elaborazione da parte di un altro software. diskutil image mostra comunque la percentuale durante alcune operazioni, ma non vi è ad oggi un sostituto perfettamente equivalente della precedente configurazione.

Ci sono poi opzioni legate a hdiutil create -srcfolder che non risultano riproposte nello stesso modo: sono parametri piuttosto specialistici, ma proprio per questo tendono a comparire nei processi automatizzati più delicati.

Al netto dei problemi di compatibilità e di alcune anomalie nella gestione di cartelle il cui contenuto, con hdiutil, era gestito senza tentennamenti, il nuovo strumento diskutil image ha mostrato prestazioni nettamente migliori.

ASIF spiega la direzione presa da Apple, almeno in parte

Una delle ragioni tecniche più evidenti per la nuova interfaccia riguarda ASIF, Apple Sparse Image Format. Il manuale di macOS 27 chiarisce che hdiutil non supporta queste immagini e che le nuove funzionalità e i nuovi formati arriveranno esclusivamente tramite diskutil image.

Apple utilizza ASIF anche insieme alle proprie tecnologie di virtualizzazione. La documentazione del framework Virtualization mostra, per esempio, la creazione di un’immagine ASIF attraverso diskutil image create blank; DiskImageKit, introdotto nelle release di macOS 27, offre inoltre API Swift dedicate alla creazione e alla gestione di immagini ASIF e RAW, comprese configurazioni destinate alle macchine virtuali.

Apple sta spostando lo sviluppo delle immagini disco verso strumenti e API più recenti, lasciando hdiutil come interfaccia compatibile con la lunga storia dei formati UDIF e delle procedure nate nei primi anni di macOS.

Cosa conviene fare con gli script che usano hdiutil

Non c’è motivo di abbandonare immediatamente hdiutil sui Mac. macOS 27 lo include ancora e Apple non ha indicato una versione precisa nella quale il comando scomparirà. Sarebbe però rischioso ignorare l’avviso, soprattutto per software destinato a rimanere operativo per diversi anni.

Il primo passo consiste nel cercare riferimenti all’utilizzo di hdiutil negli script di build, installazione e backup.

Conviene poi iniziare a verificare quali comandi e opzioni sono realmente utilizzati, provare la migrazione verso diskutil image e verificare il comportamento degli errori. In presenza di software distribuito a molti utenti, conviene mantenere per un certo periodo un percorso compatibile con entrambe le utilità, selezionandole in base alla versione di macOS.

Ti consigliamo anche

Link copiato negli appunti