Carbon Copy Cloner Icon   

Cosa rende un disco avviabile?

 

L'avviabilita' dipende da alcune semplici regole:

  1.  Il disco rigido deve supportare l'avvio di un Macintosh (vale solo per hard disk esterni)
  2.  Il computer deve supportare l'avvio dall'interfaccia utilizzata per collegare il disco fisso (ad esempio USB, FireWire, eSATA)
  3.  Il computer deve supportare l'avvio dalle varie tipologie di partizione del disco fisso (ad es APM o GPT o MBR)
  4.  Il filesystem clonato deve avere tutti i componenti necessari per Mac OS X
  5. Il sistema operativo clonato deve essere debitamente  "blessed"(reso in grado di fare l'avvio)

Quando si acquista un disco esterno da utilizzare per avviare il Mac, caveat emptor (dal latino:attento compratore) non tutti i dischi esterni possono avviare un Mac (o qualsiasi altro computer in ogni caso). Assicuratevi di controllare dal produttore o venditore che il disco supporti l'avvio di un Mac. Fare anche attenzione al fatto che supporti una determinata architettura (ad esempio PowerPC o Intel). Alcuni dischi esterni della Western Digital non riescono ad avviare un  Mac. Non comprate niente fino a quando non riuscite ad avere risposte certe.

Anche il tipo di interfaccia che viene utilizzata per collegare il disco esterno al vostro Mac influisce sull'avviabilità.  Un Macintosh PowerPc non può essere avviato da dischi collegati tramite USB. Mentre i Mac con processore Intel possono essere avviati da dischi con interfaccia sia FireWire che USB. Entrambe le piattaforme si possono avviare tramite l'interfaccia esterna eSATA e da hard disk interni.

Una volta che avete la vostra nuova unità disco (esterno o interno), si deve a) applicare uno schema di partizionamento del disco e b) formattare  uno o più volumi sul disco. Anche se non avete intenzione di "partizionare" il disco, cioè, dividere il disco in piccoli volumi, è comunque necessario applicare il giusto schema di partizionane del disco. Ogni disco ha uno schema di partizionane, anche se ha solo un unico volume. Sarò piu' dettagliatoi in questa sezione della documentazione, per cui non mi ripeto qui. Basti dire che i Mac PowerPC e quelli Intel usano differenti schemi di partizione per il boot, ed entrambi questi schemi sono comunque differenti da quello usato dalla stragrande maggioranza dei dischi rigidi.

Le regole 1 e  2 sono indipendenti dalla funzionalità di CCC. CCC non applica uno schema di partizione sul disco, né  modifica in alcun modo il vostro schema di partizione *. Inoltre, se un hard disk esterno non  avvia Mac OS X, non c'è soluzione software che possa risolvere il problema. Una volta che queste 2 regole vi sono chiare, possiamo occuparci della regola 3.

* OK, c'è un piccolo avvertimento a voler essere proprio precisi. Nel fare una clonazione a livello di blocco, CCC riformatta il volume di destinazione. Per conseguenza, deve aggiornare la voce della tabella delle partizioni per il volume di destinazione. Dal punto di vista funzionale, tuttavia, CCC non produce alcun effetto sostanziale sul partizionamento del disco.

La Regola  3 è abbastanza intuitiva - se si desidera un sistema operativo di avvio, deve averne tutti i requisiti. Se vi è chiara la regola  2, CCC vi dirà se il vostro disco di destinazione possiede tutti i requisiti necessari per l'avvio di Mac OS X. Dovrebbe essere chiaro che questo non è esaustivo - CCC verificherà che i seguenti elementi siano presenti sul disco origine e che saranno copiati nella loro interezza sul  volume di destinazione:

/Library
/System
/bin
/etc
/mach_kernel
/private
/sbin
/tmp
/usr
/var

Quindi, se si sceglie di escludere /Applicazioni  o /Utenti, per esempio, il volume clonato, molto probabilmente, potrebbe ancora essere di avvio. Se sarà un sistema funzionale, è un'altra storia. Allo stesso modo, se il SO del volume di origine non è completo e, di conseguenza, non avviabile, CCC non farà un'analisi approfondita del sistema operativo per confermare se possa diventare di avvio. In linea di massima, però, CCC darà una indicazione abbastanza buona sul fatto se il vostro volume di destinazione avrà i giusti componenti di SO per effettuare il boot.

La Regola 4 è forse la meno comprensibile (e più tecnica), quindi farò del mio meglio per spiegarla qui. Quando si avvia un Macintosh, ecco cosa accade:

  1. Il computer esegue un test di Power On (accensione). Quando questo test riesce, si sente il caratteristico suono di avvio del  Macintosh.
  2. Il firmware pre-boot del computer (il software che è integrato in un chip sulla scheda madre del computer) tiene conto dei componenti hardware presenti, costruisce un albero dei dispositivi, e determina da quale dispositivo hardware avviarsi (più o meno in un secondo). Per motivi di semplicità, supponiamo che una macchina è configurata per l'avvio da un particolare volume presente su un particolare disco fisso.
  3. Il firmware del computer accede al filesystem di quel  volume e determina la posizione del file o la cartella contenente il file, che è stato "incaricato" di avviare il sistema operativo.
  4. Questo file viene eseguito dal firmware e il controllo del hardware è consegnato dal firmware al Booter.
  5. Il Booter esegue il kernel del sistema operativo e pre-carica una cache delle estensioni del kernel.
  6. Il kernel avvia il resto del processo di boot (in primo luogo mediante l'esecuzione di launchd)

Il nocciolo di tutto questo è che ogni volume di avvio deve indicare il percorso della cartella di sistema. Il percorso della cartella risulta essere irrilevante, in quanto il file system HFS + memorizza semplicemente l' "inode" di questa particolare cartella. L'inode è fondamentalmente l'indirizzo del file, esso indica in quale punto del piatto del disco si trova la cartella. Queste informazioni vengono memorizzate nel Header del volume HFS +, ma si può facilmente vedere lo stato attuale di queste informazioni utilizzando il comando "bless" nel Terminale. Per esempio:

bash-3.2# bless --info /
finderinfo[0]: 116 => Blessed System Folder is /System/Library/CoreServices
finderinfo[1]: 546345 => Blessed System File is /System/Library/CoreServices/boot.efi
finderinfo[2]: 0 => Open-folder linked list empty
finderinfo[3]: 0 => No OS 9 + X blessed 9 folder
finderinfo[4]: 0 => Unused field unset
finderinfo[5]: 116 => OS X blessed folder is /System/Library/CoreServices

L'informazione più rilevante in questo caso è che la cartella di sistema incaricata dell'avvio(blessed) è al inode 116, e che il percorso (per noi umani) è /System/Library/CoreServices. I Mac basati su PowerPC hanno solo bisogno di questo pezzo di informazione per l'avvio. PPC Open Firmware troverà quella cartella, quindi eseguirà il file denominato "BootX" che si trova all'interno. Anche  i Mac basati su Intel utilizzano lo stesso sistema di informazioni. In questo caso, è il file di inode a 546345  e (di nuovo, per i lettori umani), detto  file si trova in /System/Library/CoreServices/boot.efi.

Nel caso ci sia bisogno di fare manualmente il "bless" di un volume  (ad esempio, se CCC ha indicato che non è riuscito a rendere avviabile il volume), è possibile eseguire questo comando da Terminale:

sudo bless -folder "/Volumes/Backup/System/Library/CoreServices"

E 'importante notare che fare il "bless" di un volume è diverso da specificare un dispositivo di avvio. Il bless di un volume aggiorna semplicemente le informazioni contenute nel Header HFS del volume, che indica dove si trova la cartella di sistema e il file. Quando si specifica un volume particolare come disco di avvio, al contrario invece, il computer memorizza un riferimento a tale volume nella "RAM non volatile" - praticamente una piccola sezione di RAM il cui contenuto non si perde quando la macchina si spegne. L'importanza di questa distinzione, e di tutte e quattro le regole relative al problema, è che, impostare semplicemente un volume come disco di avvio, può non essere sufficiente a renderlo effettivamente tale .