web-dev-qa-db-fra.com

Boot personnalisé live cd précis via ipxe

J'ai configuré isc-dhcp, ipxe et tftpboot pour pouvoir démarrer via le réseau via PXE. Cela fonctionne, l'image netinstall d'ubuntu est en train de démarrer Nice avec pxelinux.0.

J'ai créé un live cd personnalisé avec ce tutoriel https://help.ubuntu.com/community/LiveCDCustomizationFromScratch . Il démarre bien dans une VM.

Maintenant, je ne veux pas connecter cette image à mon environnement pxe. Le mieux serait de démarrer et d’ajouter le disque via http. Il y a beaucoup de tutoriels. Mais je ne peux pas monter les squashfs. Quelle est la meilleure façon de procéder. Ai-je besoin de pxelinux, ai-je besoin de NFS? Je suis confus à propos de tous les différents chargeurs de démarrage.

L'aide est très appréciée. Je vous remercie.

partie de dhcpd.conf

next-server 10.1.1.1;
if exists user-class and option user-class = "iPXE" {
   filename "menu.ipxe";
} else {
   filename "undionly.kpxe";
}

et menu.ipxe

#!ipxe

set smartos-build 20121004T212912Z

######## MAIN MENU ###################
:start
menu Welcome
item
item --gap -- ------------------------- Operating systems ------------------------------
item cellos-storage     Boot CellOS
item smartos    Boot SmartOS (${smartos-build})
item ubuntu     Boot Ubuntu Precise 12.04 netinstall
item --gap -- ------------------------------ Utilities ---------------------------------
item Shell      Enter iPXE Shell
item reboot     Reboot
item
item exit       Exit (boot local disk)
choose --default cellos-storage --timeout 5000 target && goto ${target}




########## UTILITY ITEMS ####################
:Shell
echo Type exit to get the back to the menu
Shell
set menu-timeout 0
goto start

:reboot
reboot

:exit
exit

########## MENU ITEMS #######################


:cellos-storage
kernel /cellos/storage/cellos-latest/casper/vmlinuz
initrd /cellos/storage/cellos-latest/casper/initrd.lz
#chain http://10.1.1.1/boot/cellos/storage/cellos-latest.iso
boot

# SmartOS Root shadow is "root"
:smartos
kernel /smartos/${smartos-build}/platform/i86pc/kernel/AMD64/unix -B root_shadow='$5$2HOHRnK3$NvLlm.1KQBbB0WjoP7xcIwGnllhzp2HnT.mDO7DpxYA'
initrd /smartos/${smartos-build}/platform/i86pc/AMD64/boot_archive
boot
:ubuntu
kernel /ubuntu/precise/netinstall/ubuntu-installer/AMD64/linux
initrd /ubuntu/precise/netinstall/ubuntu-installer/AMD64/initrd.gz
boot
goto start
2
Johannes

Je l'ai fait avec Linux Mint 13, mais cela devrait être la même chose avec Ubuntu 12.04. J'ai utilisé mintconstructor pour personnaliser mon DVD en direct, mais je devrais utiliser LiveCDCustomizationFromScratch.

J'ai été en mesure de configurer le démarrage net à partir d'un DVD live en utilisant uniquement iPXE (pas de pxelinux).

Pour ce faire, j'ai configuré un serveur http (avec Apache) pour publier du contenu dans/var/www. C'est nécessaire car initrd et vmlinuz doivent être accessibles via http.

J'ai pris l'initrd.lz et vmlinuz du live-dvd et je l'ai mis dans/var/www

A pris tous les fichiers dans/casper (de live-dvd) et les mettre dans/var/www/casper.

Sur votre serveur Web, publiez également un partage NFS de/var/www afin que les fichiers soient également accessibles via NFS. Cela est nécessaire pour accéder au squashfs (dossier casper) via le réseau (ne semble pas fonctionner via http).

Voici mon/etc/exports (NFS)

/var/www *(ro,async)

Votre script iPXE devrait ressembler à ceci (remplacer l'adresse IP en conséquence):

#!ipxe
initrd http://10.54.9.43/initrd.lz
chain http://10.54.9.43/vmlinuz boot=casper netboot=nfs nfsroot=10.54.9.43:/var/www/ initrd=initrd.lz

Cela chargera le noyau et initrd via http, et les squashfs via NFS ...

En ce qui concerne la partie DHCP, j'utilise un serveur Windows DHCP ... je ne peux donc pas vous aider. Suivez la documentation de iPXE. Pour les autres, voici ce que j'ai fait: J'ai configuré un serveur TFTP sur le même serveur (linux). J'ai configuré l'option 66 sur l'IP de ce serveur (sur le serveur DHCP). Je mets undionly.kpxe (iPXE) dans le dossier TFTP de mon serveur pour charger en chaîne iPXE (consultez la documentation iPXE). J'ai configuré l'option 67 comme spécifié dans le doc iPXE pour empêcher une boucle infinie (à cause du chargement en chaîne).

Tout cela a été un peu difficile pour moi à découvrir car il n’ya pas beaucoup de documentation à ce sujet sur le Web.

3
user982443