Le service NetBoot permet de démarrer un Macintosh par le réseau. Pour cela, il faut maintenir la touche N au démarrage de l'ordinateur. La machine va chercher un serveur NetBoot sur le sous réseau et va démarrer en utilisant une image de disque sur ce serveur.
Ce service assure par exemple que tous les utilisateurs d'une salle d'enseignement utilisent exactement le même système. Le poste client peut aussi ne pas avoir de disque dur (Je n'ai pas testé mais il faut au moins un serveur en 10.3.3). Cette solution est très gourmande en ressource réseau car le système et les applications se trouvent sur le serveur. L'image de disque est en lecture seule et est partagée entre les différents utilisateurs. Chaque utilisateur a une image (Shadow system) en lecture écriture pour les fichiers temporaires (/tmp par exemple). Cette image et donc les fichiers temporaires seront perdus au redémarrage. Dans le cas d'un poste avec disque, le fichier de swap peut être situé sur le disque local.
Un deuxième utilisation du NetBoot est la possibilité d'automatiser les installations des postes de travail. Pour cela, au lieu de démarrer sur un système complet, on démarre sur un système minimal qui n'a pas de Finder mais simplement l'outil de formattage de disque, le Terminal et une application qui permet d'installer un système sur le disque du poste client. On parle de NetInstall (Application d'Apple) ou de NetRestore (Application de bbb). Nous allons décrire cette deuxième application.
NetRestore est un utilitaire configurable qui va installer un système sur le disque local du poste de travail. Cet utilitaire offre de nombreuses possibilités comme par exemple une automatisation complète du processus :
Toutes ces fonctionnalités sont facultatives et paramètrables. Il est par exemple possible que l'utilitaire aille chercher l'image à installer sur un serveur de fichier distant via afp ou http. (il semble qu'il y ait une limite à 2 Go en http, les images NetBoot > 2Go sont possibles à partir de MacOS X Server 10.2.4). Il est possible aussi le laisser l'installateur choisir entre plusieurs images si on ne désire pas tout automatiser.
Le service NetBoot permet de démarrer un Macintosh par le réseau. Le NetBoot intervient au démarrage du système avant même le boot sur disque. Cela se passe dans le Firmware qui est inclus dans chaque machine et qui vérifie par exemple les composants matériels.
À l'écriture de cette page, il existe deux versions de NetBoot : 1.0 et 2.0.
La version 1.0 est utilisée par les premières machines compatibles NetBoot (iMac de première génération (avec chargeur de CD manuel), premiers iBook, PowerMac G4 PCI, PowerMac G3 blanc/bleu, PowerBook G3 Bronze). Il est possible d'utiliser MacOS 8.6 en NetBoot. La première version de NetBoot était livrée avec Mac OS X Server 1.0-2 (ou Mac OS X Server 1.2), avant MacOS X. Cette version utilise le protocole bootp. Le client envoit un broadcast, le serveur reconnaît le client par son adresse MAC (Media Access Control). En retour le serveur envoit la configuration IP du client ainsi que le nom et la localisation du système pour effectuer le 'boot'. Si le client décide de démarrer sur ce système, il le télécharge par le protocole TFTP (trivial file transfer protocol) qui fonctionne sur UDP (ports 67, 68 et 69). Le client se connecte en afp à l'image shadow avec les paramètres envoyés par bootp. Encore plus de détails dans l'article 60080 chez Apple.
MacOS X Server 10.3 n'offre pas d'inferface utilisateur conviviale pour NetBoot 1.0 (voir l'article 107902 chez Apple pour le configurer). Il ne peut y avaoir qu'un seul serveur NetBoot 1 sur un sous réseau. Par contre un serveur peut offrir les services NetBoot 1 et 2 sur la même interface.
La version 2.0 est celle des machines à partir des iMac slot loading, PowerMac G4 AGP et de manière générale avec un Firmware 4.1.7 ajoute le DHCP durant la phase de NetBoot. Elle est disponible depuis MacOS X Server 10.0. Avec MacOS X server 10.2, il est possible de faire démarrer des machines en MacOS 9. Avec MacOS X Server 10.2 et 10.3, il est possible de faire démarrer les machine MacOS X. Cette version utilise un protocole propriétaire d'Apple BSDP (Boot Server Discovery Protocol). MacOS X Server 10.3 offre une interface intégrée pour la configuration de NetBoot 2.0.
Pour faire démarrer une machine en NetBoot, appuyer sur la touche N au démarrage. Dans ce cas, la machine démarrera sur le volume NetBoot par défaut. Il faut utiliser Démarrage des Préférences Système. Il est possible de faire démarrer une station en NetBoot à distance grâce à Apple Remote Desktop 1.2.4 ou ultérieure (MacOS X 10.2 ou ultérieure).
Le fichier /var/db/bsdpd_clients contient les images par défaut de boot des clients. Si on veut le supprimer ce fichier, il faut arrêter le service netboot voir même redémarrer le serveur !
Le netBoot ne fonctionne pas entre sous réseaux. Pour cela voir du coté des passerelle avec des option pour faire passer le BootP (Helper ID) ou NetBoot Across Subnets de Mike Bombich qui est une application offrant une interface graphique pour configurer l'Open Firmware.
Lors de linstallation du serveur, il faut utiliser lInterface Ethernet Intégré : adresse fixe, utilisation du répertoire : Serveur Autonome (dans notre cas), les services AFP et NFS doivent être actifs et DHCP si il ny a pas dautre serveur DHCP sur le sous-réseau.
![]() |
Dans l'application Server Admin, configurer NetBoot en indiquant qu'il faut utiliser l'interface ethernet interne et que les images NetBoot seront sur le disque MacOSX (ici c'est le disque de démarrage du serveur mais cela marche très bien sur un autre disque). Cliquer sur Start Service, cela va créer les répertoires dans /Library/NetBoot/. Les images NetBoot (.nbi NetBoot Image) sont ici stockées sur le serveur dans /Library/NetBoot/NetBootSPx/image.nbi. |
Par la suite, il est possible de mettre à jour une image NetBoot (par exemple lors d'une mise à jour de système). Voir article 107352 chez Apple.
Important : Pour créer une image NetBoot, il faut impérativement utiliser un volume HFS Plus (et pas HFS simplement).
NetRestore est un utilitaire configurable qui va installer un système sur le disque local du poste de travail en sappuyant sur ASR (Apple Software Restore).
Dans notre cas, nous allons
Le système (NetInstall-Restore) est fabriqué à partir dun poste de travail récent (contenant un système au moins compatible avec les stations à configurer). On utilise lapplication NetRestore Helper (NRH) qui va fabriquer une image disque contenant une copie minimale du système du poste de travail.
Récupérer le fichier NetRestore 1.5.1.dmg du site de Mike Bombich. (07/2007 version 3.3.6 pour installation intel).
Comme NRH va copier le système que lon utilise et que ce système va être lancé dans lenvironnement des stations à configurer, il faut ne pas oublier de passer en DHCP, modifier les Préférences Système : Économie dénergie et décocher Suspendre lactivité du disque dur dès que possible.
Pour un installation intel, lancer NRH sur une machine intel.
![]() |
|
|
|
||
![]() |
NetRestore Helper crée le répertoire eMacset.nbi, une NetBoot Image contenant le disque de netBoot NetInstall-Restore.dmg.
NetInstall-Restore.dmg contient une copie de NetRestore dans les utilitaires, NRH a copié lutilitaire NetRestore ainsi que le Terminal et l'Utilitaire de disque pour formater le disque local. |
NRH va ensuite lancer lutilitaire NetRestore (dans limage quelle vient de créer) afin que configurer ses paramètres. En particulier les informations sur la localisation du Master à installer.
![]() |
Dans notre cas, nous fabriquons une configuration nommée eMac qui va se connecter au serveur de fichiers afp (ici ladresse est numérique car jai besoin dinstaller les eMac avant que le serveur DNS soit en fonction). On se connecte au serveur de fichiers avec le login install et un mot de passe. On va installer le poste de travail avec une copie du système emac_asr.dmg. Voir plus loin comment configurer le MacOS X serveur pour créer le compte install. Toutes les informations de configuration se trouvent en XML dans les fichiers configurations.plist, et paprameters.plist dans limage netBoot NetInstall-Restore.dmg. Cette image nétant pas en lecture seule, il est possible de les modifier par la suite. |
|
![]() |
Dans notre exemple, nous voulons une automatisation complète de linstallation, ouvrir les Préférences de NetRestore :
Sélectionner la configuration « emac » Cocher :
|
Reste à tester : Post-restore Actions : Cocher : Set the computers open firmware Password to .., Éditer les « machines spécifics data »
Placer le dossier eMacSet.nbi dans le dossier NetBootSP0 sur le Mac OS X Server (600 Mo pour un démarrage 10.4.5 PowerPC, 813Mo pour un 10.4.10 intel). Pour cela se connecter au serveur en admin et monter le volume NetBootSP0. Déplacer le dossier eMacSet.nbi sur le volume NetBootSP0.
Dans l'application Server Admin, configurer NetBoot en indiquant qu'il faut utiliser l'image eMacSet.
Il est possible de mettre plusieurs images, par exemple une PowerPC et une Intel.
Pour l'instant, en essayant une image universelle fabriquée à partir de MacOS X Server Universel, cela plante les PowerPC au moment du montage AFP.
Mettre la machine Master en disque FireWire externe d'une poste de l'administrateur (pour cela démarrer la machine master en appuyant sur la touche T (Target)). Sur le poste de l'administrateur, utiliser Carbon Copy Cloner et configurer les préférences pour Créer une image disque sur la cible, et Prépare pour le programme de retauration d'Apple (Options ASR).
/usr/bin/hdiutil convert /Volumes/HD40/MacOSX.sparseimage -format UDZO -o /Volumes/HD40/MacOSX_asr.dmg -segmentSize 102400m
Préparation du moteur de création dimage...
Lecture de Apple_HFS (0)...
...............................................................................
(CRC32 $466D28A5 : Apple_HFS (0))
Fin du moteur de création dimage...
Ajout de ressources...
...............................................................................
Temps écoulé : 19m 31.844s
(2 tâches, poids 100)
Taille du fichier : 5830189288 octets, Somme de contrôle : CRC32 $24D57943
Secteurs traités : 21098448, 20865505 comprimés
Vitesse : 8.7Moctets/s
Compression : 46.0%
created: MacOSX_asr.dmg
![]() |
![]() |
|
Nous créons un utilisateur "Net Install User" (nom interne install). Cet utsilisateur n'a pas de home ni de shell car il ne se connecteur que par afp pour lire les Masters. | Nous créons un groupe install_group pour cet utilisateur. |
![]() |
![]() |
|
Nous créons un répertoire ImagesNetRestore à partir du Finder directement à la racine du disque du serveur. Ensuite, avec Workgroup Manager, nous indiquons que ce répertoire est un point de partage, qu'il appartient à admin et que les membres du groupe instal_group ont un droit de lecture. | Le Point de partage n'a pas à être accessible depuis un poste Windows. | |
![]() |
![]() |
|
Le Point de partage n'a pas à être accessible en FTP. | Le Point de partage doit être accessible depuis un poste Macintosh en afp. |
Ensuite, il suffit de se connecter en afp (admin) sur le serveur pour mettre un nouveau Master dans le répertoire ImagesNetRestore. En reprenant le même nom, le prochain NetBoot des machines installera la nouvelle version du Master.
Si vous êtes sur place, démarrer en maintenant la touche 'N' appuyée.... ça marche. La machine démarre en NetBoot, son disque se formatte, le système Master se copie dessus, il se vérifie et la machine redémarre.
Bon, ça n'a pas marché du premier coup car, lors du l'installation, une brusque coupure de courant (la 15e machine a fait sauté les plombs) a laissé deux disques dans un drôle d'état. Heureusement, NetRestore possède un menu Utilities permettant de lancer l'utilitaire de formattage de disque. Après formattage, en quittant, on se retrouve sous le terminal. Il suffit de taper reboot.
Pour cela choisir Configurer le disque de démarrage... du menu Gestion. (vous pouvez enseuite l'enregistrer comme Tâche enregistrée pour une prochaine fois.
Indiquer l'adresse IP du serveur et le nom du fichier de NetBoot ici (eMacSet).
Au passage, si vous avez activé le FireWall de MacOS X Server et que vous aviez autorisé Apple Remote Desktop (port 3283), cela ne suffit pas pour la version 2.1 (c'était juste valable jusqu'à la version 1.2 qui utilisait un protocole propriétaire). À partir de la 2.0, en plus du protocole propriétaire, Apple utilise VNC. Il faut donc ouvrir le port 5900 en passant par l'onglet Advanced du FireWall de Server Admin.
Lors du premier essai, sur 15 machines, seules 10 ont réussi. Je suis allé sur place le lendemain pour constater que les 5 autres indiquaient une erreur AppleShare. C'est en discutant avec un enseignant qu'il m'a trouvé l'origine du problème : mon MacOS X Serveur n'avait qu'une licence 10 utilisateurs. J'avais pourtant moins de comptes mais 10 utilisateurs veut dire : pas plus de 10 utilisateurs simultanés qui se connectent en afp ! Par contre, 15 NetBoot simultanés ne posent pas de problèmes.
Pour contourner le problème, deux solutions :
Le moins que l'on puisse dire c'est que MacOS X Server (au moins jusqu'en 10.3) n'est pas au point pour la configuration DHCP d'adresses fixe. Il suffit de lire la note technique IP fixe par DHCP pour s'en rendre compte.
En gros, il faut utiliser Server Admin pour configurer la partie routeur et serveurs de noms et il faut utiliser NetInfo pour les adresses MAC et IP. Du coup, on ne voit plus les machines clientes dans Server Admin mais on les retrouve dans les logs...
Bref, tant qu'à passer par l'interface horrible de NetInfo, autant utiliser le Terminal en root (sudo) :
nicl / -create /machines/ari-31-203-01 name ari-31-203-01
nicl / -create /machines/ari-31-203-01 en_address 00:0a:95:bf:7a:52
nicl / -create /machines/ari-31-203-01 ip_address 132.227.114.1
Vous pouvez contrôler, lire et supprimer par
nicl / -list /machines/
nicl / -read /machines/ari-31-203-01
nicl / -delete /machines/ari-31-203-01
Pour les adresses MAC, il n'est pas nécessaire qu'elles soient en majuscules comme dans l'exemple chez Apple. De plus les octets hexadécimaux peuvent n'ont pas forcément besoin du "0". Par exemple 0:A:95:BF:7A:52
marche très bien.
MàJ : L'interface a été revue avec MacOS X Server v10.4.
Reste à faire : OpenFirmware password. (ça marche manuellement, à tester l'automatisation via NetRestore)
2004- Cette page a été réalisée avec l'aide de Sylvie Rougier
2007 - mise à jour pour installation intel.
|