Clonare Mac OS X: creare la tua “pecora Dolly”. Creazione di un programma di installazione DMG nell'immagine del sistema Mac OS X Mac OS

  • Esercitazione

Saluti agli onorevoli residenti di Habr!

Oggi ti dirò come presentare magnificamente all'utente il programma di installazione del tuo programma. Sicuramente tutti coloro che non utilizzano solo i programmi dell'AppStore si sono imbattuti in bellissime immagini disco .dmg, come ad esempio quelle di Adium. Questa immagine è, per così dire, un programma di installazione interattivo, in cui viene fornito un chiaro suggerimento: trascinare qui l'icona. Tutto è estremamente chiaro e semplice.

Naturalmente, per un coltivatore esperto di papaveri, andrà bene un archivio zip, ma a tutti piace che sia bello e conveniente. Quindi tu ed io, cari lettori, oggi ci occuperemo di creare un'immagine disco così bella per il nostro programma (o quello di qualcun altro).


Ovviamente puoi fare tutto manualmente, ma questo not_our_metodo™, quindi scriveremo uno script di shell per automatizzare questo processo. L'automazione ci sarà utile anche nel caso in cui mettiamo in funzione un server di compilazione, quindi questo server non solo assemblerà il programma dal codice sorgente, ma creerà anche un'immagine del disco per la distribuzione.

Se non hai bisogno di sapere Come Questo script funziona, ma ti serve solo attrezzo- alla fine c'è un collegamento a uno script molto universale, pronto per l'uso.

Piano d'azione in breve:

  • Copia il bundle in una directory temporanea
  • Crea un'immagine del disco da una directory temporanea che sia leggibile e scrivibile
  • Montare l'immagine risultante
  • Personalizza l'aspetto dell'immagine utilizzando AppleScript: crea un collegamento simbolico per /Applicazioni, imposta lo sfondo e la disposizione degli elementi
  • Imposta un'icona per l'immagine del disco
  • Smonta immagine
  • Converti l'immagine in ridonley compresso
  • Pronto! Puoi pubblicarlo sul sito web o nel cast di Sparkle.
IMPORTANTE! Lo script (più precisamente, la parte di esso che utilizza AppleScript) non funzionerà correttamente se installato TotalFinder(o qualcosa di simile), e questo può portare a conseguenze imprevedibili! Sul serio.

Innanzitutto, dobbiamo determinare cosa imballeremo e quale nome dell'immagine otterremo alla fine. Per fare ciò, scriviamo nello script in questo modo:

TMP_DIR="./tmp" APP_BUNDLE_NAME="MyGreatApplication.app" APP_VERSION=`/usr/libexec/PlistBuddy -c "Print:CFBundleShortVersionString" "$(APP_BUNDLE_NAME)/Contents/Info.plist"` APP_BUILD_VERSION=`/usr/libexec /PlistBuddy -c "Print:CFBundleVersion" "$(APP_BUNDLE_NAME)/Contents/Info.plist"` DMG_NAME_BASE=$(APP_BUNDLE_NAME%.*) DMG_NAME_SUFFIX=" $(APP_VERSION).$(APP_BUILD_VERSION)" DMG_NAME="$(DMG_NAME_BASE ) )$(DMG_NAME_SUFFIX).dmg" VOL_NAME=$(APP_BUNDLE_NAME%.*)
Qui impostiamo il nome del pacchetto che impacchetteremo, da esso leggiamo la versione e la build del programma utilizzando l'utilità PlistBuddy e li impostiamo come suffisso per il nome del file della futura immagine del disco. Durante il montaggio, impostiamo il nome dell'immagine semplicemente come nome del bundle senza estensione.

Per creare un'immagine disco temporanea, utilizzare il programma hdiutil chiamandolo con i seguenti parametri

Hdiutil create -ov -srcfolder $(TMP_DIR) -format UDRW -volname "$(VOL_NAME)" "$(DMG_NAME_TMP)"
Qui i parametri TMP_DIR, VOL_NAME e DMG_NAME_TMP sono rispettivamente la directory temporanea, il nome dell'immagine (che verrà visualizzato una volta montata) e il nome del file temporary.dmg. Il parametro -format UDRW specifica il tipo di immagine: immagine UDIF per lettura e scrittura. Abbiamo bisogno della possibilità di scrivere su disco per personalizzare l'aspetto dell'immagine montata. Il parametro -ov dice all'utilità di sovrascrivere l'immagine nel caso in cui non l'abbiamo eliminata l'ultima volta.

Ora montiamo l'immagine risultante (e salviamo il nome del dispositivo per un uso successivo):

Dispositivo=$(hdiutil attach -readwrite -noverify -noautoopen $(DMG_NAME_TMP) | egrep "^/dev/" | sed 1q | awk "(print $1)")
Qui tutto è abbastanza semplice: alleghiamo con diritti di lettura e scrittura, non apriamo automaticamente la finestra del Finder, quindi otteniamo il nome del tipo /dev/disk2 utilizzando egrep, sed e awk, analizzando l'output di hdiutil.

Ora copiamo sull'immagine l'immagine di sfondo e l'icona che si trovano, ad esempio, nelle risorse del nostro bundle (anche se, ovviamente, possono essere prese da qualsiasi altro posto):

BG_FOLDER="/Volumi/$(VOL_NAME)/. background" mkdir "$(BG_FOLDER)" cp "$(APP_BUNDLE_NAME)/Contents/Resources/$(BG_IMG_NAME)" "$(BG_FOLDER)/" ICON_FOLDER="/Volumi/ $(VOL_NAME)" cp "$(APP_BUNDLE_NAME)/Contents/Resources/$(VOL_ICON_NAME)" "$(ICON_FOLDER)/.VolumeIcon.icns"
Successivamente, dobbiamo personalizzare l'immagine montata; questo può essere fatto manualmente tramite Finder, ma faremo qualcosa di più astuto: forzeremo Finder a fare tutto automaticamente tramite AppleScript. Esiste un'utilità per richiamare tali script dalla shell osascript, a cui inseriremo come input il seguente spazio vuoto:

APPLESCRIPT=" indica all'applicazione \"Finder\" indica al disco \"$(VOL_NAME)\" di aprire -- Impostazione delle opzioni di visualizzazione imposta la vista corrente della finestra del contenitore su vista a icone imposta la barra degli strumenti visibile della finestra del contenitore su false imposta la barra di stato visibile della finestra del contenitore su false imposta i limiti della finestra contenitore su ($(WINDOW_LEFT), $(WINDOW_TOP), $(WINDOW_RIGHT), $(WINDOW_BOTTOM)) imposta ViewOptions sulle opzioni di visualizzazione dell'icona della finestra contenitore imposta la disposizione di ViewOptions su non disposte imposta la dimensione dell'icona di theViewOptions su 72 -- Impostazioni sfondo imposta l'immagine di sfondo di theViewOptions sul file \". background:$(BG_IMG_NAME)\" -- Aggiunta di un collegamento simbolico a /Applications crea un nuovo file alias nella finestra contenitore nel file POSIX \"/Applications\" con proprietà (nome:\"Applicazioni\") -- Riapertura chiudi aperto -- Riorganizzazione imposta la posizione dell'elemento \"Applicazioni\" su ($(APPS_X), $(APPS_Y)) imposta la posizione dell'elemento \"$(APP_BUNDLE_NAME) \" a ($(BUNDLE_X), $(BUNDLE_Y)) -- Aggiornamento e sospensione per 5 secondi aggiornamento senza registrazione delle applicazioni ritardo 5 end tell end tell " echo "$APPLESCRIPT" | osascript
Naturalmente, invece di VOL_NAME e altre cose, il nostro script di shell sostituirà le stringhe pre-preparate. Questo AppleScript dice al Finder di aprire il nostro disco montato, impostare i parametri di visualizzazione necessari per esso: rimuovere l'indirizzo e la barra di stato, impostare l'aspetto dell '"icona", impostare la dimensione della finestra, la dimensione dell'icona. Tutti questi parametri verranno salvati in un file .DS_Store. Successivamente impostiamo l'immagine di sfondo copiata in precedenza. Quindi creiamo un collegamento simbolico (alias in termini AS) per /Applicazioni, riapriamo la finestra per applicare le modifiche. Ora impostiamo la posizione delle icone del programma e del collegamento simbolico creato, aggiorniamo e dormiamo per 5 secondi per affidabilità.

Ora impostiamo l'icona per l'immagine utilizzando l'utilità SetFile:

SetFile -c icnC "$(ICON_FOLDER)/.VolumeIcon.icns" SetFile -a C "$(ICON_FOLDER)"
Successivamente, imposta i diritti necessari per l'immagine del disco, sincronizza (due volte per affidabilità) ed estrai l'immagine:

Chmod -Rf go-w /Volumes/"$(VOL_NAME)" sync sync hdiutil detach $(dispositivo)
Questo è tutto, ora puoi creare l'immagine finale del disco!

Hdiutil convert "$(DMG_NAME_TMP)" -format UDZO -imagekey zlib-level=9 -o "$(DMG_NAME)"
Qui utilizziamo hdiutil per convertire l'immagine temporanea nel formato UDZO (compresso UDIF) con livello di compressione 9 (migliore). E alla fine otteniamo un'immagine del disco per la distribuzione che ha un aspetto attraente!

Lo script completo è incluso nel repository su GitHub. Noto che nella versione completa dello script ci sono molti possibili parametri di input (l'analisi dei quali ne aumenta notevolmente le dimensioni), non esiste alcun hardcode (beh, ad eccezione dei parametri predefiniti). Ebbene, l'immagine mostrata all'inizio del post è ottenuta richiamando il mio script nel modo seguente:

$ make_dmg.sh -V -b habr_logo_big.png -i habr_icon.icns -s "800:500" -c 535:345:253:345 "Ciao Habr.app" Abilitazione delle informazioni sulla versione nel dmg risultante Impostazione dello sfondo su habr_logo_big.png Impostazione dell'icona su habr_icon.icns Impostazione delle dimensioni della finestra su 800:500 Impostazione delle coordinate su 535:345:253:345 Nome del pacchetto impostato su Hello Habr.app Nome del volume dmg predefinito su Hello Habr *** Copia Hello Habr.app nella directory temporanea ...Fatto! *** Creazione dell'immagine temporanea del disco dmg......... creato: /Users/silvansky/Projects/habr_demo_dmg/Hello Habr_tmp.dmg *** Montaggio dell'immagine temporanea... fatto! (device /dev/disk1) *** Dormire per 5 secondi... fatto! *** Impostazione dello stile per l'immagine dmg temporanea... * Copia dell'immagine di sfondo... fatto!
* Copia dell'icona del volume... fatta!

Mac OS X ha un modo semplice per distribuire le distribuzioni sotto forma di immagini disco DMG. Un'immagine del disco può essere montata semplicemente facendo doppio clic sul file immagine. Ciò fa sì che Finder apra la cartella principale dell'unità montata in una nuova finestra. Di norma in questa cartella è consuetudine archiviare l'applicazione stessa (.app), un collegamento simbolico alla cartella /Applicazioni ed eventualmente alcuni file Leggimi o testi di licenza. Collegamento simbolico a Applicazioni necessario per “installare” l'applicazione semplicemente trascinandola sull'icona della cartella ( trascina e rilascia). Ciò è possibile grazie alla struttura dell'applicazione Cocoa, che è una cartella con estensione .app, all'interno della quale si trova un file eseguibile e tutti i pezzi di ricambio necessari. Pertanto, dopo aver copiato l'intera cartella, l'applicazione viene installata. La buona notizia è che la visualizzazione dell'immagine dmg nel Finder può essere personalizzata (dargli un aspetto personalizzato). In questo post ho deciso di scrivere, prima di tutto, un piccolo manuale per me su come farlo come fare Bellissimo programma di installazione dmg. Avrai bisogno di ciò per cui stiamo facendo: un programma di installazione, un editor grafico, un'utilità disco ( Utilità Disco- incluso nel pacchetto standard delle applicazioni Mac OS X) e Finder (analogo a Explorer in Windows). E così, passo dopo passo.

1. Avvia l'utilità disco. In esso creiamo una nuova immagine del disco (pulsante Nuova immagine). La dimensione dell'immagine deve essere assegnata in base alla dimensione dell'applicazione. Nel mio caso l'applicazione occupava circa 400Kb, ma devo dire che la dimensione minima del dmg offerta dall'utilità disco è di 512Kb. All'inizio ho scelto 512 Kb, ma poi questo spazio non è bastato (bisogna tenere conto anche della dimensione dell'immagine di sfondo e delle informazioni di servizio), quindi è meglio riservare un paio di centinaia di kilobyte - ai nostri tempi questo non è una taglia in assoluto). C'è un'altra sfumatura. Per rendere un'immagine più piccola di 2 MB, è necessario selezionare il formato volume Mac OS Standard. Il formato dell'immagine (questo è importante) è l'immagine del disco di lettura/scrittura. Lo salviamo con un nome, ad esempio template.dmg.

2. Aprire l'immagine creata (fare doppio clic sul file).

3. Nel menu Finder, vai su Visualizza -> Mostra opzioni di visualizzazione. Successivamente creiamo aspetto il nostro futuro distribuzione, ad esempio, impostiamo dimensione dell'icona(IMHO 104x104 sembra il migliore), dimensione del carattere (14pt - il migliore), posizione del nome del file rispetto all'icona, beh, in generale, c'è spazio per l'immaginazione. Successivamente facciamo lo sfondo. Crea una cartella sul disco di installazione. background: tutti i file e le cartelle in Mac OS X che iniziano con un punto (.) sono nascosti. Inseriamo un file di immagine di sfondo: nel mio caso è una freccia verde, che dice all'utente che sarebbe una buona idea trasferire l'applicazione nella cartella Applicazioni.

Successivamente nella finestra con le opzioni di visualizzazione ( Visualizza opzioni) nella sezione Sfondo, seleziona Immagine, premi Seleziona e qui c'è qualche trucco. Poiché il Finder non mostra cartelle e file nascosti, puoi specificare il percorso di un file in una directory nascosta premendo Cmd-Shift-G. Inserisci nel campo di testo che appare, ad esempio, /Volumes/macmines/. background/

4. Aggiungiamo i file che vogliamo includere nel programma di installazione - ne ho solo uno - nell'applicazione stessa (anche se sarebbe carino allegare una licenza accanto). Puoi utilizzare la finestra di dialogo Mostra informazioni per giocare con l'impostazione di icone diverse per file diversi. A proposito, Mac OS memorizza tutte queste informazioni in files.DS_Store nascosti (analoghi a Thumbs.db in Windows). Puoi personalizzare l'icona dell'immagine stessa allo stesso modo.

5. Imposta le dimensioni della finestra del Finder: con queste dimensioni si aprirà quando l'utente monterà la nostra immagine. È chiaro che poi potrà fare quello che vuole con questa finestra, ma questo sarà per dopo.

6. Rimuovi il disco (puoi farlo in Utility Disco, puoi farlo nel Finder)

7. L'ultimo passaggio è convertire l'immagine nella rappresentazione finale. Lanciamo utilità del disco, seleziona la nostra immagine (template.dmg), fai clic su Converti nella barra degli strumenti, inserisci il nome del file desiderato (con questo nome l'immagine verrà consegnata agli utenti) - ad esempio, macmines_install.dmg, seleziona Compresso nell'elenco Formato immagine, fai clic su Salva.

Riceviamo un'immagine pronta per la distribuzione.

PS. Questo post, infatti, oltre alla funzione di promemoria, è utile anche perché riduce il volume del prossimo post, che sto ultimando e preparando per la pubblicazione.

La maggior parte degli utenti deve affrontare il problema della creazione di un disco di avvio per i computer Apple durante la reinstallazione del sistema.

Queste istruzioni ti aiuteranno a creare un disco di avvio e a ricostruire il tuo sistema da zero.

Prima di iniziare a reinstallare il sistema, assicurati di avere tutto ciò di cui hai bisogno:

  • Unità flash con almeno 8 GB. La chiavetta non dovrebbe contenere file importanti, poiché durante la preparazione dovremo formattarla. Oppure DVD DL (Dual Layer DVD)
  • iLife 11

Se hai acquistato Mac OS X Lion o Mac OS Mountain Lion e non hai un'immagine, non preoccuparti, devi fare clic con il pulsante destro del mouse sul programma di installazione del sistema operativo, che si trova nella cartella del programma, e fare clic su "Mostra" contenuto della confezione”

Il contenuto del programma di installazione si aprirà in una nuova finestra. Vai alla cartella Contenuti->SharedSupport e copia InstallESD.dmg sul desktop. Questa è la tua immagine di avvio.

Tutto il necessario è stato risolto. Ora è necessario eseguire semplici manipolazioni per preparare un'unità flash di installazione o masterizzare l'immagine di installazione su un disco DVD DL.

Creazione di un'unità flash USB avviabile per Mac OS.

1) Apri il programma Utility Disco, che si trova nel percorso Finder->Programmi->Utility

2) Nel menu in alto, fare clic su File -> Apri immagine disco e selezionare l'immagine del sistema di installazione

3) Inserisci l'unità flash e assicurati che venga visualizzata in Utility Disco

4) Fare clic su di esso e andare al menu "Partizione disco".

5) Nel menu a discesa “Schema partizioni”, seleziona “Partizione: 1”

6) Appena sotto c'è il pulsante "Opzioni", fai clic su di esso e seleziona la casella accanto a "Schema partizione GUID"

7) E nella sezione “Formato”, seleziona il formato del disco “Mac OS Extended (Journaled)” come mostrato nell'immagine qui sotto, e inseriscilo a tuo piacimento

10) Fare clic sul pulsante "Applica" per rendere effettive le modifiche. Ti ricordiamo: tutti i dati dall'unità flash verranno eliminati

Ora non ci resta che clonare l'immagine su una chiavetta USB. Per fare questo:

11) Vai alla scheda “Ripristina” e trascina la chiavetta USB sulla voce “Destinazione” e l'immagine sulla voce “Origine”

12) Fare clic sul pulsante "Ripristina".

13) Utility Disco ti avviserà che cancellerà tutti i dati dall'unità flash, accettiamo facendo clic sul pulsante "Cancella"

La copia richiede fino a 20 minuti. Dopodiché puoi iniziare l'installazione del sistema operativo.

Creazione di un disco di avvio di Mac OS.

Oltre a un'unità flash USB avviabile, è possibile creare un disco di avvio con il sistema. In alcuni casi, questa opzione è più semplice, ad esempio se non hai un'unità flash a portata di mano o reinstalli spesso il sistema.

Come scritto sopra per il disco di boot avrete bisogno di:

  • sistema di installazione 10.7 o precedente
  • Disco DVD DL (disco DVD a doppio strato)
  • Ti consigliamo vivamente di avere un disco di installazione con iLife 11 poiché i programmi iPhoto, iMovie, iDVD, GarageBand non vengono installati con il sistema, ma vengono forniti come pacchetto separato.

1) Apri il programma Utility Disco, che si trova nel percorso Finder->Programmi->Utility

2) Dal menu in alto, fare clic sul pulsante "Masterizza" e selezionare l'immagine del sistema di installazione

3) Dopo una breve preparazione e controllo del disco, si accenderà il pulsante "Masterizza", che sarà necessario premere per avviare la registrazione sul disco.

Installazione di Mac OS da zero

Adesso è il momento di passare all'installazione del sistema operativo Mac OS.

1) Spegni il computer.

2) Accendi il computer e tieni premuto il pulsante Alt finché non viene visualizzata una selezione di volumi di avvio.

3) Per eseguire l'avvio dall'unità flash di installazione, fare doppio clic su di essa e attendere che si carichi completamente.

4) 2-3 minuti dopo aver selezionato il volume di avvio, ti verrà chiesto di scegliere una lingua: scegline una conveniente, ad esempio il russo.

5) Dopo alcuni secondi, vedrai una finestra con utilità che ti aiuteranno a reinstallare il sistema operativo.

6) Esegui Utility Disco e formatta il disco, per fare ciò segui i passaggi 4-10 di queste istruzioni, ma non per l'unità flash, ma per il disco interno. Quindi chiudere il programma. Come sempre, devo avvisarti che tutti i tuoi file, dati, programmi, ecc. verranno eliminati. Se desideri salvare i tuoi dati, utilizza le istruzioni Configurare una copia di backup su Mac OS

7) Ora avrai bisogno dell'utilità situata appena sopra - "Reinstalla OS X". Questo è l'ultimo programma che dobbiamo utilizzare nel nostro percorso verso un sistema reinstallato. Avviatelo e seguite le istruzioni che verranno visualizzate sullo schermo.

In caso di difficoltà o domande, faranno ogni sforzo per aiutarti.

Non importa quante persone esperte di hackintosh ci dicono cosa installare Mac OS X sul PC– semplicemente, l’importante è non avere paura, questo processo si rivela quasi sempre complesso, lungo e davvero sconcertante. Scrivo “quasi” perché esiste un metodo davvero veloce che richiede solo due programmi completamente standard. Alcune persone fortunate dicono con gioia di esserci riuscite crea un hackintosh sul tuo computer in soli 10 minuti! Non so come 10, ma in 30 minuti ce l'ho fatta ieri.

Quindi è bello incuriosire, stiamo parlando del solito Distribuire un'immagine OS X già pronta sul tuo computer, installato con successo in precedenza sul PC di qualcuno. In linea di principio potremmo terminare le istruzioni con questa frase, ma esamineremo il processo passo dopo passo.

La prima cosa che devi fare è trovare e scaricare Immagine di Mac OS X, che sarebbe più adatto al tuo computer. L'ideale sarebbe una configurazione one-to-one, in modo da poter trovare installazioni già pronte per i comuni modelli di laptop. Ma l'unica cosa importante è la compatibilità con il processore, tutto il resto può essere modificato in seguito; I possessori di AMD rimarranno leggermente delusi: c'è una piccola selezione di OSX adatti per questa famiglia di processori, e anche piuttosto vecchi. Effettuiamo la ricerca utilizzando le parole chiave “OSX” + “sistema installato” oppure “immagine pronta” oppure “installazione rapida”.

Si consiglia di installarlo su un disco rigido separato, come ultima risorsa: su una partizione del disco rigido. Nel caso di una partizione potrebbero verificarsi difficoltà nel caricamento successivo, ma in linea di principio possono essere risolte. Prepariamo il disco rigido o selezioniamo un disco logico utilizzando qualsiasi utility come Partition Magic.

Successivamente, avrai bisogno di un programma per montare immagini CD ISO virtuali, come Alcohol 120%, e un programma per ripristinare le partizioni del disco rigido dai backup in formato arc. Ho usato Daemon Tools come primo e R Drive Image come secondo, hanno anche analoghi gratuiti. Scarica e installa.

Avvia Daemon Tools e monta l'immagine MacOSX scaricata “nome file.iso”. Immediatamente nel sistema appare un nuovo disco virtuale, accedendo al quale è possibile vedere il file di backup “nome file.arc”.

Esegui R Drive Image come amministratore.

Fare clic su " Ripristina dall'immagine", selezionare il file arc. sul cd virtuale.

Lascia il segno su " Recupera dischi o partizioni».

Seleziona l'oggetto presente nell'immagine con Mac OS X e la sezione dove inserirlo.

Ripristina dall'immagine. La sezione deve essere attiva.

Dopo un paio di minuti, il processo verrà completato e potrai riavviare selezionando il disco desiderato nel menu di avvio.

Consiglierei di eseguire il primo avvio con il parametro –v. Puoi inserirlo nel bootloader, sarà Chameleon o qualcosa del genere. Se sei fortunato con la configurazione, tutto si avvierà normalmente e problemi minori come audio o USB possono essere eliminati aggiungendo kext al sistema. E in caso contrario, con il parametro –v vedrai dove sei bloccato. Ad esempio, ho dovuto estrarre un'unità flash per interrompere l'errore di lettura EBIOS. Per coloro che hanno effettuato l'installazione su un'unità logica (dovevano ancora predisporre un disco rigido separato!), è probabile che venga visualizzato l'errore "Ancora in attesa del dispositivo root". Questo può essere risolto (o non risolto, è probabile che l'errore sia in altri casi) specificando il parametro rd=disk0s2, dove 0 è l'ordine del disco rigido nel sistema, potrebbero esserci altri 1, 2 o 3 e s2 è l'indicazione del numero della partizione logica.