![]() |
Wat maakt een volume opstartbaar? |
||
Opstartbaarheid komt neer op een aantal eenvoudige regels:
- De harde schijf moet het opstarten van een Macintosh ondersteunen (alleen van toepassing op externe harde schijven)
- De computer moet opstarten ondersteunen vanaf de gebruikte interface voor het koppelen van de harde schijf (bijv. USB, Firewire, eSATA)
- De computer moet opstarten ondersteunen van de partitie-indeling van de harde schijf (bijv. APM vs GPT vs MBR)
- Het gekloonde bestandssysteem moet alle vereiste componenten hebben van Mac OS X
- Het gekloonde besturingssysteem moet correct zijn "gezegend"
Wanneer u een externe schijf koopt die u wilt gaan gebruiken om uw Mac mee op te starten, let u dan goed op -- niet alle schijven zijn in staat om een Mac op te starten (of willekeurig welke machine overigens). Controleer of de maker of leverancier het opstarten van een Mac ondersteunt. U moet zelfs wellicht opletten of ze uw specifieke architectuur ondersteunen (bijv. PowerPC vs. Intel). Sommige Western Digital schijven kunnen geen Mac opstarten. Als u geen aantoonbaar bewijs kunt vinden dat u met een bepaald kastje uw Mac kunt opstarten: niet kopen.
De gebruikte interface om de harde schijf te koppelen aan uw Mac heeft ook effect op de opstartbaarheid. PowerPC Macintoshes kunnen niet worden opgestart met schijven die via USB zijn aangesloten. Intel-gebaseerde Macs kunnen worden opgestart vanaf harde schijven verbonden via Firewire of USB. Beide platforms kunnen worden gestart via de eSATA-interface en vanaf intern geïnstalleerde harde schijven.
Als u eenmaal uw nieuwe harde schijf hebt (extern of geïnstalleerd in uw computer), moet u a) een partitie-indeling toepassen en b) één of meer volumes op de schijf wissen (formatteren). Zelfs als u niet van plan bent de schijf te "partitioneren", dat wil zeggen opdelen van de schijf in kleine volumes, dan moet u nog steeds de juiste partitie-indeling toepassen op de schijf. Elke schijf heeft een partitie-indeling, zelfs als het maar één volume heeft. Ik ga hier uitgebreid op in deze sectie van de documentatie, dus ik zal het hier niet nog eens herhalen. Het volstaat hier te melden dat PowerPC Macs en Intel Macs van verschillende partitie-indelingen opstarten en beide van een andere partitie-indeling dan waarmee de overgrote meerderheid van de harde schijven mee wordt geleverd.
Regels #1 en #2 staan buiten de functionaliteit van CCC. CCC zal geen partitie-indeling toepassen op uw schijf en zal ook geen invloed hebben op uw partitie-indeling of deze wijzigen*. Als uw harde schijf Mac OS X niet wil starten, dan is er geen softwareoplossing voor dit probleem. Als u zeker weet dat u zich houdt aan regel #1 en #2, dan kunnen we door naar regel #3.
* OK, er is een klein addertje onder het gras voor complete transparantie. Bij een kopie op blokniveau, zal CCC het doelvolume opnieuw wissen (formatteren). Als gevolg daarvan moet CCC het doelvolume-onderdeel in de partitietabel bijwerken. Functioneel echter heeft CCC geen substantieel effect op de indeling van uw schijf.
Regel #3 is redelijk intuïtief -- als u wilt dat uw besturingssysteem opstart, dan moet het compleet zijn. Als u zich houdt aan regel #2, zal CCC u vertellen of uw doel alle benodigde componenten heeft voor het opstarten van Mac OS X. Ik moet erbij vertellen dat dit niet uitputtend is -- CCC zal controleren of de volgende onderdelen aanwezig zijn op de bron en volledig worden gekopieerd naar het doelvolume:
/Bibliotheek
/Systeem
/bin
/etc
/mach_kernel
/private
/sbin
/tmp
/usr
/var
Dus als u bijvoorbeeld besluit om /Programma's of /Gebruikers weg te laten, zal het gekloonde volume waarschijnlijk nog steeds opstarten. Hoeveel functionaliteit u dan nog hebt is een ander verhaal. Hetzelfde geldt als het bron-OS niet compleet is en als gevolg daarvan niet opstartbaar, dan zal CCC geen uitgebreide analyse uitvoeren om te kijken of het kan opstarten. Het komt erop neer dat CCC een behoorlijke goede indicatie kan geven of uw doelvolume de juiste OS-componenten zal hebben om mee op te starten.
Regel #4 wordt wellicht het minste begrepen, dus ik zal mijn best doen om het hier uit te leggen. Wanneer een Macintosh opstart, gebeurt er het volgende:
- De computer voert een "Zelftest bij opstarten" uit (Power On Self test). Als die test succesvol verloopt, hoort u het karakteristieke Macintosh opstartgeluid.
- De computer's pre-opstart firmware (software die in een chip zit op het moederbord van de computer) zorgt voor de aanwezige hardware, bouwt een boomstructuur van apparaten op en bepaalt welke hardware van gestart moet worden (meer hierover later). Laten we, om het eenvoudig te houden, aannemen dat een machine is ingesteld om op te starten van een bepaald volume op een bepaalde harde schijf.
- De firmware van de computer benadert het bestandssysteem van dat volume en bepaalt de locatie van het bestand, of map met het bestand, dat is "gezegend" om het besturingssysteem te initiëren.
- Dit bestand wordt gestart door de firmware en de controle over de hardware wordt overgedragen vanuit de firmware naar het opstartbestand.
- Het opstartbestand start de kernel van het besturingssysteem en laadt alvast een cache voor kernelextensies.
- De kernel initieert de rest van het opstartproces (voornamelijk door launchd te starten)
De clou van dit alles is dat elk opstartbaar volume, de locatie van de systeemmap aan moet geven. Het pad van de map blijkt irrelevant te zijn, omdat het HFS+ bestandssysteem simpelweg de "inode" bewaart van deze map. De inode is in essentie zoiets als een huisadres voor de map: het geeft aan waar op de schijfplaat de map staat. Deze informatie wordt bewaard in de HFS+ Volume Header, maar u kunt eenvoudig de huidige status van deze informatie zien met het commando "bless" in het programma Terminal. Bijvoorbeeld:
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
De relevante informatie is in dit geval dat de gezegende systeemmap zich bevindt op inode 116 en dat pad (voor de menselijke lezer) is /Systeem/Bibliotheek/CoreServices. PowerPC-gebaseerde Macs hebben alleen dit stukje informatie nodig om op te starten. PPC Open Firmware zoekt deze map op, en start vervolgens het bestand genaamd "BootX" binnen deze map. Intel-gebaseerde Macs gebruiken ook "Blessed System File" informatie. In dit geval is dat het bestand op inode 546345 en (wederom voor de menselijke lezer), bevindt dat bestand zich hier /Systeem/Bibliotheek/CoreServices/boot.efi.
Als u ooit een volume handmatig moet "zegenen" (bijvoorbeeld als CCC heeft aangegeven dat het het volume niet kon zegenen), dan kunt u dit commando in het programma Terminal starten:
sudo bless -folder "/Volumes/Backup/System/Library/CoreServices"
Het is belangrijk om op te merken dat het zegenen van een volume anders is dan het instellen van een opstartapparaat. Zegenen van een volume werkt alleen de informatie bij in de HFS Volume Header die aangeeft waar de gezegende systeemmap en het bestand zich bevinden. Aan de andere bewaart de computer, wanneer u een bepaald volume instelt als opstartschijf, een verwijzing naar dat volume in het "Non volatile RAM" -- een klein stukje RAM waarvan de inhoud niet verloren gaat als de machine zonder stroom raakt, of wordt uitgezet. Het belang van dit verschil en alle vier regels wat dat betreft, is dat het simpelweg instellen van een volume als opstartschijf mogelijk niet genoeg is om echt op te starten.