lundi 30 avril 2018

Installer Windows 10 depuis un PXE Linux

Un certain temps s'est écoulé depuis la rédaction de ce billet expliquant comment installer Windows sur un PXE Linux. Il existe désormais une méthode plus simple grâce au bootloader wimboot, développé par le projet iPXE.

Sur un machine sous Windows, installer le Windows 10 ADK (Assessment and Deployment Kit). Copier les éléments suivants dans un répertoire acessible en TFTP :

  • C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\Media\Boot\boot.sdi
  • C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\Media\Boot\BCD
  • C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\en-us\winpe.wim
  • wimboot


Ajouter un fichier "startnet.cmd" avec la liste des commandes à lancer au démarrage :

wpeinit
net use Y: \\boot\windows10 /user:user pass
Y:\setup.exe


Pour du PXElinux, ajouter une entrée dans le menu :

# Installation de Windows 10
LABEL win10installer
        MENU LABEL Installation de Windows 10 Professionnel 64 bits
        COM32 linux.c32
        APPEND win10installer/wimboot initrdfile=win10installer/startnet.cmd,win10installer/BCD,win10installer/boot.sdi,win10installer/boot.wim

Attention : il faut avoir une version de pxelinux assez récente pour pouvoir lancer wimboot !

dimanche 5 février 2017

Debian : The attempt to mount a file system with type ext4 ... at / failed.

En installant Debian depuis un serveur PXE (netboot), il arrive parfois que l'installeur n'arrive pas à monter la partition où installer l'OS :

The attempt to mount a file system with type ext4 [...] at / failed.


L'explication se trouve ici : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=780812

This is due to kernel and module version mis-match in debian-installer [...] which was built with an older kernel version


Solution : mettre à jour debian-installer sur le serveur PXE, tout simplement. Il suffit de récupérer les derniers noyau et initrd en date :

  • http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
  • http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz

lundi 25 juillet 2016

Reverse proxy Apache pour RDP over HTTPS (Windows Server 2008 R2)

Générer un certificat autosigné :

openssl req -newkey rsa:2048 -nodes -keyout myrdp.mydomain.key -x509 -days 365 -out myrdp.mydomain.crt

openssl pkcs12 -inkey myrdp.mydomain.key -in myrdp.mydomain.crt -export -out myrdp.mydomain.pfx


Importer le certificat dans le magasin "Personnel" du serveur RDS et désactiver tous les rôles sauf "Authentification du serveur".

Installer le rôle "services de bureau à distance" avec les services de rôle "gestionnaire de passerelle"


Config Apache :

<VirtualHost *:443>
        ServerName myRDP.domain
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/myrdp.crt
        SSLCertificateKeyFile /etc/apache2/ssl/myrdp.key
        CustomLog ${APACHE_LOG_DIR}/myrdp.log combined
        ErrorLog ${APACHE_LOG_DIR}/myrdp.log
	#LogLevel info proxy_msrpc:trace2

	SSLProxyEngine On
	SSLProxyCheckPeerCN Off
	SSLProxyCheckPeerName Off
	# Enable RPC over HTTPS
	OutlookAnywherePassthrough On
	#LogLevel info proxy_msrpc:trace2
	
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPass / https://RDPServer/
        ProxyPassReverse / https://RDPServer/
</VirtualHost>

<VirtualHost *:80>
        ServerName myrdp.domain
        Redirect / "https://myrdp.domain/"
        CustomLog ${APACHE_LOG_DIR}/myrdp.log combined
        ErrorLog ${APACHE_LOG_DIR}/myrdp.log
</VirtualHost>

Issue : le certificat doit être reconnu comme CA sur le client.

lundi 18 mai 2015

Échec de l'installation de Mint 17 depuis un live-PXE

Suite à ce billet, je me suis rendu compte que l'installateur plante s'il est lancé depuis un "live-PXE".
À l'origine du problème, la procédure de fabrication du fichier de configuration d'APT (gestionnaire de paquets), qui n'est pas adaptée à un "live-PXE". Néanmions, voici comment le contourner.

Solution 1 : one-shot

Une fois Mint démarré, éditer /usr/lib/ubiquity/apt-setup/apt-setup et trouver la ligne suivante :

mv $ROOT/etc/apt/sources.list.new $ROOT/etc/apt/sources.list

La remplacer par ceci :

if [ -f $ROOT/etc/apt/sources.list.new ]; then
	mv $ROOT/etc/apt/sources.list.new $ROOT/etc/apt/sources.list
fi

Attention : cette modification n'est pas enregistrée. Elle doit donc être faite à chaque redémarrage.

Solution 2 : correction permanente

Cette solution consiste à appliquer le patch ci-avant à l'image SquashFS. Pour ceci, installer les outils squashfs :

apt-get install squashfs-tools

Décompresser le squashfs de Mint :

unsquashfs casper/filesystem.squashfs

Appliquer le patch indiqué précédemment.
Recompresser le squashfs :

mksquashfs squashfs-root/ filesystem.squashfs -noappend -always-use-fragments


3... 2... 1... bootez !

lundi 10 février 2014

Rsync (avec transport SSH) sur un autre port que le 22

rsync -e 'ssh -p 42'
(Sinon j'oublie !)

jeudi 2 août 2012

Linux Mint Live en PXE par NFS

Il est possible, très simplement, de démarrer la distribution Linux Mint depuis un serveur PXE. Cette façon de faire peut être adaptée à d'autres distributions, elle est d'ailleurs inspirée de celle d'Ubuntu (d'où est tirée Mint).

mount -o loop linuxmint-13-mate-dvd-64bit.iso /media/imagecd
mkdir /tftpboot/mint
cp -r /media/imagecd/casper /tftpboot/mint/
umount /media/imagecd
  • Rendre ce répertoire accessible en NFS. Pour cela, installer le serveur NFS et ajouter une ligne d'export au fichier /etc/exports :
apt-get install nfs-kernel-server
echo '/tftpboot/mint *(ro,no_root_squash,no_subtree_check,async)' >> /etc/exports
/etc/init.d/nfs-kernel-server restart
  • Ajouter une entrée dans le fichier <racine TFTP>/pxelinux.cfg/default. Pour ma part j'ai aussi passé l'OS en français :
LABEL mint
     MENU LABEL Mint Live (NFS)
     KERNEL mint/casper/vmlinuz
     APPEND initrd=mint/casper/initrd.lz boot=casper netboot=nfs nfsroot=192.168.1.1:/tftpboot/mint locale=fr_FR keymap=fr console-setup/layoutcode=fr



Mise à jour (21/11/2012) : le réseau fonctionne sous Linux Mint 13, mais plus sous Mint 14. Il faut alors redemander une IP :

sudo dhclient eth0

jeudi 28 juin 2012

Vmware tools pour Ubuntu (et d'autres systèmes :p)

Installer les vmwares tools sur un host linux se résume généralement à monter l'iso fournis avec l'hyperviseur et faire l'installation à la main. Mais il existe une autre solution : les paquets :)

Lire la suite...

mercredi 3 août 2011

Asterisk et Asterisk-GUI sous Debian

(sur Debian Squeeze 64 bits)

Installation de Asterisk

  • apt-get install asterisk

Dans /etc/asterisk/manager.conf :

enabled = yes
webenabled = yes

[admin]
secret = adminpw
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config

Et dans /etc/asterisk/http.conf :

enabled=yes
enablestatic=yes
bindaddr=0.0.0.0 (commenter le 127.0.0.1)

Puis en user normal :

  • svn checkout http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui
  • cd asterisk-gui
  • ./configure
  • make

En root :

  • make install

Petit soucis : les fichiers sont copiés dans /var/lib/asterisk/ alors que l'installation d'Asterisk ous Debian va chercher dans /usr/share/asterisk/.

Heureusement, la solution est trouvable. (Source : http://androus.wordpress.com/2009/12/26/asterisk-gui-2-0-404-url-not-found-fedora/)

  • cp -Rfv /var/lib/asterisk/* /usr/share/asterisk/
  • mv /var/lib/asterisk /var/lib/asterisk_original
  • ln -s /usr/share/asterisk /var/lib/asterisk

Penser à redonner les bons droits :

  • chown -R asterisk:asterisk /usr/share/asterisk

/etc/init.d/asterisk restart et zou :

http://<ip_du_pbx>:8088/static/config/index.html