J'ai une machine sur laquelle est stockée une image ISO amorçable et une autre machine vierge sur laquelle je souhaite installer l'image ISO. Ils sont tous deux sur le même réseau local (connecté au même commutateur). Comment procéder pour démarrer la machine vierge à partir de l'image ISO stockée sur mon ordinateur principal?
Je pense que vous voulez un moyen de démarrer pxe à partir d'images ISO. J'ai cherché un petit peu et a trouvé cet article . Je crois que cette méthode devrait fonctionner pour toute image ISO amorçable que vous pourriez avoir. Ceci est un autre article similaire .
Enfin, il apparaît que cet article explique comment procéder à partir d'un serveur PXE (Pre-Boot eXecution Environment) que vous exécutez à partir de Windows.
Oui, c'est très possible. Le type de système que vous pouvez démarrer dépend de son fonctionnement.
Habituellement, vous constaterez que les systèmes très simples (comme DOS ou Win98) et très complexes (comme les distributions Linux modernes) sont: facilement amorçable sur le réseau.
La manière d'accomplir ceci sur les deux types de systèmes est très différente.
Voyons les deux manières plus en détail. Je suppose que vous avez déjà un PXEdémarrageserveurconfiguration ; si vous ne le faites pas, allez-y, c'est assez facile.
J'assume également une configuration dnsmasq
sur un serveur Linux avec le répertoire racine_tft dans /var/lib/tftpboot
, mais vous devriez pouvoir adapter les instructions à toute autre configuration.
Pour les systèmes simples, il vous suffit de charger l'image (ISO) dans la RAM et de faire croire au système qu'il s'agit d'une unité réelle. Cela se fait avec un peu d'aide du BIOS et un module logiciel appelé memdisk .
Le système que vous voulez charger sur le réseau est des freedos:
# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32
Prompt 0
TIMEOUT 0
MENU DEFAULT freedos
LABEL freedos
MENU LABEL FreeDOS
KERNEL /syslinux/memdisk
INITRD /freedos.iso iso
C'est à peu près tout. Les premières lignes sont "menu général"; les bits importants sont les quatre dernières lignes: load memdisk avec l'ISO donné.
Les systèmes modernes dotés d'éléments sophistiqués, comme une bonne gestion de la mémoire et une détection matérielle appropriée, ignorent pratiquement tout ce que le BIOS a à dire.
Ceci rend l'approche memdisk
utilisée plus ou moins inutile, car si vous chargiez l'ISO de cette façon, une fois que le noyau a été lu à partir de l'ISO et chargé en mémoire (cela est fait par le chargeur de démarrage dans l'ISO; les chargeurs de démarrage font attention au BIOS ), les données ISO auraient disparu.
Que faites-vous alors? Eh bien, vous ne chargez pas réellement l'ISO depuis le réseau, mais vous indiquez au système qu'il peut accéder aux fichiers requis à partir de celui-ci.
Pour les systèmes Linux, extrayez le contenu ISO quelque part dans tftproot et chargez directement le noyau et initrd, puis laissez-les à eux-mêmes pour trouver le système de fichiers racine et le monter.
Voici un exemple utilisant l'incroyable System Rescue CD . J'ai en fait extrait l'intégralité de l'ISO à la racine du serveur TFTP, car elle correspond parfaitement à la structure de mon répertoire. Les noyaux sont donc dans /syslinux
.
# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32
Prompt 0
TIMEOUT 0
MENU DEFAULT sysrescd64
LABEL sysrescd64
MENU LABEL 1) SysResCD 4.2.0 (x64)
KERNEL /syslinux/rescue64
APPEND setkmap=us nomodeset netboot=nbd://pxe:sysrcd.dat
INITRD /syslinux/initram.igz
Le bit le plus important ici est la ligne APPEND
name__. Voir le netboot=
à la fin? C'est ainsi que le système d'exploitation sait où se trouve son système de fichiers racine. La syntaxe est <protocol>://<server>:<path>
.
J'avais commodément défini un nom DNS pxe
pour mon serveur. Si vous ne l'avez pas, vous utiliseriez une adresse IP pour le serveur.
De plus, sysresccd est l’un des plus faciles, car il utilise une image squashfs pour son système de fichiers racine, qui peut être facilement téléchargé et chargé dans RAM avec n’importe quelle méthode. Ici j'utilise nbd; vous pouvez aussi tilisez tftp, nfs et http .
Pour d’autres distributions, comme Ubuntu, je pense vous ne pouvez utiliser que nfs.
Pour les systèmes Windows, c'est n peu plus complexe à faire . Le contour est:
Je n'ai jamais essayé cela, et il semble que cela ne fonctionne pas pour certaines personnes. Pour les versions NT antérieures à Vista, je pense que ce n'est même pas possible. Pour Windows pré-NT (95, 98, ME, etc.), vous pouvez utiliser l’approche memdisk, mais leur démarrage est mauvais pour la santé :-p
L'appliance de déploiement ultime offre tout ce dont vous avez besoin. Leur page d'accueil décrit ses fonctionnalités. c'est reformaté ici pour plus de commodité:
Qu'est-ce que l'appliance de déploiement ultime?
Quand utiliseriez-vous cela?
Comment ça marche?
UDA a une chaîne YouTube , où vous pouvez trouver une vidéo d’eux , qui installe Windows 7 à titre d’exemple de l'installation dans UDA à Windows complètement installé.
Je suggère divers outils pour cet emploi si vous êtes intéressé pour prolonger cette recherche: