# Installation de Ubuntu sur S/390 {{INLINETOC}} ## Limitations S/390 Pour exécuter le système d’installation sur s390x, une configuration réseau performante est nécessaire et une session ssh est recommandée. Le processus de démarrage commence par une configuration réseau qui invite à spécifier plusieurs paramètres réseau. Si la configuration initiale réussit, on pourra se connecter au système en lançant une session SSH qui lancera le système d’installation standard (on peut également utiliser la console, ce qui est moins confortable). ## Paramètres de démarrage S/390 Sur s390x, on peut pouvez ajouter des paramètres de démarrage dans le fichier `Parm`. Ce fichier peut être au format ASCII ou EBCDIC. Il doit avoir une largeur fixe de 80 caractères par ligne. Un exemple de fichier `parmfile.ubuntu` est fourni avec les images d'installation, situé dans le dossier `/boot`. Si un paramètre est trop long pour tenir dans la limite de 80 caractères, on peut simplement le poursuivre dans la première colonne de la ligne suivante. Toutes les lignes sont concaténées sans espaces lorsqu'elles sont passées au noyau. Au total, 11 lignes (plus 10 caractères supplémentaires sur la 12ème ligne) peuvent être utilisées. On peut démarrer le programme d'installation dans une partition logique (LPAR) ou une machine virtuelle (z/VM) où de nombreux périphériques sont visibles, on peut demander au noyau de limiter la liste à un ensemble fixe de périphériques. Ceci est conseillé pour le processus de démarrage de l'installateur si de nombreux disques sont visibles, le plus souvent en mode LPAR. L'option “cio_ignore” supporte à la fois une liste noire (pour interdire seulement quelques appareils) et une liste blanche (pour n'autoriser que des appareils spécifiques): ``` # liste noire: ignorer les deux périphériques 300 et 301 cio_ignore=0.0.0300-0.0.0301 # liste blanche: ignore tout sauf 1150, FD00, FD01 et FD02 cio_ignore=all,!0.0.1150,!0.0.fd00-0.0.fd02 ``` les chiffres hexadécimaux de tous les numéros de périphériques doivent être spécifiés en minuscules. De plus, si ce paramètre de démarrage est utilisé, tous les périphériques doivent être répertoriés: cela inclut au moins les disques, les périphériques réseau et la console. Pour être pris en compte lors du processus de démarrage de l'installateur, l'option ci-dessus doit être ajoutée à `parmfile.ubuntu`. # Installation avec Debian-Installer L'installation sur s390x nécessite au moins un noyau d'installation et un fichier initrd. Cela provient généralement de l'image officielle du CD-ROM Ubuntu (voir le dossier ./boot) ou peut être directement téléchargé à partir de la page d'archive Ubuntu - soit la version de main ou (si disponible) une version de la mise à jour. Le moyen le plus simple est probablement de télécharger l’image (CDROM), car les fichiers dont la plupart des gens ont besoin se trouvent sur l’image. Les sous-sections ci-dessous détaillent les images à obtenir pour chaque moyen d’installation possible. ## Amorcer depuis un CDROM Tout d'abord, télécharger l'image de votre architecture et la graver sur un CD/DVD. Pour installer s390x à partir d'un CD/DVD-ROM, insérer le CD/DVD dans le lecteur de CD/DVD de la console HMC et exécuter sur la console HMC, la tâche `Load à partir du support amovible ou du serveur`, puis sélectionner `CD/DVD ROM`.... L'installation à partir d'une clé USB sur s390x est très similaire (et non comparable à d'autres architectures). Dans ce cas, copier simplement l'image sur un lecteur USB, connecter la clé à la console HMC, exécuter la tâche `Load sur le support amovible ou sur le serveur` et sélectionner `Hardware Management Console Lecteur de mémoire flash USB `... - le lecteur USB doit déjà être inséré avant d'exécuter la tâche, sinon les options du lecteur USB ne sont pas répertoriées. ## Amorcer depuis le réseau Il est également possible de démarrer l'installateur Ubuntu complètement à partir du net. Les différentes méthodes pour netboot dépendent de l'architecture et de la configuration netboot. L’image CD / DVD doit être extraite et rendue disponible via FTP. Il est essentiel que le serveur FTP lui-même soit accessible par la console HMC, le SE et l'invité LPAR ou z/VM à installer. Un réseau dédié est généralement configuré uniquement à cette fin. Une fois cette infrastructure en place, le démarrage du programme d'installation à partir de FTP peut être démarré avec l'exécution de la tâche `Load sur le support amovible ou le serveur`, en sélectionnant `Source FTP` et en spécifiant le `serveur FTP`(généralement spécifié par l'adresse IP), `l'ID de l'utilisateur FTP`, son `Mot de passe`, le `Compte` (facultatif) et `l'emplacement du fichier` (facultatif). Le FTP anonyme est également possible. ## Amorcer à partir du disque CMS (z/VM) Sur z/VM, le moyen habituel de démarrer le programme d'installation consiste à utiliser le puncher (virtuel). Les fichiers `initrd.ubuntu` et `kernel.ubuntu` sont nécessaires. Ces fichiers doivent être soigneusement transférés sur un disque CMS z/VM à l'aide du mode binary/bin et `locsit fix 80`. Il est recommandé de télécharger `parmfile.ubuntu` et `ubuntu.exec` également, mais en utilisant le mode ascii. Correctement transférés sur le CMS, les fichiers d'installation peuvent être démarrés en exécutant simplement le script REXX `ubuntu.exec`. Sinon, on peut également exécuter manuellement les étapes du script. ``` / * REXX EXEC TO IPL Ubuntu pour * / / * z Systèmes DU LECTEUR VM. * / / * * / 'CP CLOSE RDR' 'PURGE RDR ALL' 'SPOOL PUNCH * RDR' 'PUNCH KERNEL UBUNTU * (NOHEADER') 'PUNCH PARMFILE UBUNTU * (NOHEADER') 'PUNCH INITRD UBUNTU * (NOHEADER') 'CHANGER RDR TOUT GARDER NOHOLD' 'CP IPL 000C CLEAR' ``` # Installations automatisées du serveur Ubuntu sur s390x avec préconfiguration L’une des options avancées du programme d’installation de Debian (d-i) est le mode d’installation automatisé via preseed - une combinaison de paramètres d’amorçage spéciaux et d’un fichier de préconfiguration. Le programme d’installation (d-i) sur s390x s’exécute en mode netboot et comporte deux étapes: * l’étape initiale (avant que la mise en réseau soit établie dans le programme d’installation, généralement exécutée sur la console) * la deuxième étape généralement exécutée via ssh. ## Première étape L'automatisation de l'installation peut s'effectuer de plusieurs manières: * Transmettre les clés de préconfiguration ou les alias via le fichier de configuration: p. Ex. `debian-installer/locale=en_US domain=monhôte` * Ajouter le fichier `preseed.cfg` complet au fichier `initrd.ubuntu` * Présélectionner les informations réseau via `Parmfile` et utiliser `url= parameter` pour réaliser le reste de la configuration sur le réseau. Selon la configuration, on peut préconfigurer certaines ou toutes les clés selon l’une des méthodes ci-dessus ou une combinaison de méthodes. Dans le fichier de paramètres, le format des clés est constitué de simples paires `clé=valeur` séparées par des espaces. Par exemple: `priority=critical local=en_US preseed/url=http://example.com/preseed.cfg ...` Dans les fichiers de préconfiguration extraits par `preseed/url`, `preseed/file` ou ajoutés à `initrd.ubuntu`, la mise en forme debconf standard est légèrement plus détaillée: `d-i debconf/priority string critical d-i debian-installer/locale string en_US ...` ### Les Alias Comme l'invite de démarrage peut devenir assez longue, il existe des formes abrégées disponibles, appelées alias, du moins pour certains paramètres, telles que `locale` au lieu de `debian-installer /locale` ou `url` au lieu de `preseed/url`. Les paramètres de démarrage ainsi que leurs alias forment des paires clé/valeur avec le signe égal '=' en tant que lien. ^ Alias ^ Normal ^ | priority | debconf/priority | | language | debian-installer/language | | country | debian-installer/country | | locale | debian-installer/locale | | theme | debian-installer/theme | | auto | auto-install/enable | | classes | auto-install/classes | | file | preseed/file | | url | preseed/url | | domain | netcfg/get_domain | | hostname | netcfg/get_hostname | | interface | netcfg/choose_interface | | protocol | mirror/protocol | | suite | mirror/suite | | modules | anna/choose_modules | | recommends | base-installer/install-recommends | | tasks | tasksel:tasksel/first | | desktop | tasksel:tasksel/desktop | | dmraid | disk-detect/dmraid/enable | | keymap | keyboard-configuration/xkb-keymap | | preseed-md5 | preseed/file/checksum | Tous les paramètres doivent figurer sur une seule ligne pour une installation de partition logique. Pour une installation d’invité z/VM, ils doivent être placés dans le fichier `PARMFILE`. ### Paramètres debconf spécifiques au système z Pour la phase initiale, qui dépend beaucoup du système, plusieurs paramètres spécifiques à l’architecture z sont disponibles. Il n'y a pas beaucoup de documentation sur ces paramètres, le meilleur moyen de les rechercher est de consulter la [[di-s390-templates|liste des modèles debconf spéciques à zos]]: Les tableaux suivants présentent les paramètres de démarrage les plus pertinents pour s390: #### Paramètres s390-netdevice ^ Clé ^ Valeur ^ Description ^ | s390-netdevice/choose_networktype | selection; choices: ctc, qeth, iucv, virtio | Type de périphérique réseau | | s390-netdevice/ctc/protocol | selection, choices: S/390 (0), Linux (1), OS/390 (3); default: S/390 (0) | Protocole pour cette connexion | | s390-netdevice/qeth/choose | selection, choices: {choices} | OSA-Express QDIO ou périphérique Hipersockets | | s390-netdevice/qeth/port | string, default: 0 | Port relatif | | s390-netdevice/qeth/layer2 | boolean, default: false | Dispositif en mode layer2 | | s390-netdevice/iucv/peer | string | Nom du peer VM | #### Paramètres s390-dasd ^ Clé ^ Valeur ^ Description ^ | s390-dasd/dasd | string | un ou plusieurs périphériques DASD utilisant une virgule ',' pour séparer plusieurs entrées numéro complet d'appareil dasd, incl. zéros non significatifs, séparés par des points '.' | | s390-dasd/auto\_format | boolean | formater automatiquement le périphérique DASD au cas où il ne serait pas formaté à bas niveau | | s390-dasd/force_format | boolean | forcer le format du périphérique DASD même s'il était déjà formaté à bas niveau | #### Paramètres s390-zfcpKey ^ Clé ^ Valeur ^ Description ^ | s390-zfcp/zfcp | string | un ou plusieurs périphériques SCSI utilisant des virgules ',' pour séparer plusieurs entrées chaque entrée consiste en un adaptateur hôte zfcp, éventuellement suivi du WWPN et du LUN, comme suit: 0.0.1234.0.0.5678: 0x2005000e11159c32: 0x1234567800000000 | Pour plus de détails, voir: Template: s390-zfcp ## Deuxième étape Les commandes de préconfiguration de la deuxième étape peuvent être spécifiées en tant que paramètres de démarrage (elles ne possèdent pas le 's390-'), du moins en partie, ou dans un fichier de configuration de préconfiguration, comme `url=http:///preseed.cfg`. Le fichier de configuration de préconfiguration peut être situé sur un serveur FTP, un serveur http ou peut être inclus dans le répertoire racine de initrd. Si un serveur ftp était déjà préparé pour une installation basée sur ftp, le même système peut être utilisé comme serveur de préconfiguration, ce qui garantirait que le fichier de préconfiguration puisse être trouvé pendant le démarrage et l'installation sur le même système. Si les serveurs Ubuntu n’ont pas de connexion directe à Internet, le serveur de mise à jour public ne peut pas être utilisé directement. Par conséquent, le système d’installation et de préconfiguration peut même servir de serveur de mise à jour local. Dans le cas d'une installation entièrement automatisée avec réseau dynamique, certaines ressources supplémentaires sont évidemment nécessaires, telles que DHCP et DNS. Voici un exemple d'un ensemble de paramètres de démarrage: ``` ro locale=en_US s390-netdevice/choose_networktype=qeth s390-netdevice/qeth/choose=0.0.C000-0.0.C001-0.0.C002 s390-netdevice/qeth/layer2=true s390-netdevice/qeth/port=0 netcfg/get_ipaddress=10.245.236.12 netcfg/get_netmask=255.255.255.0 netcfg/get_gateway=10.245.236.1 netcfg/get_nameservers=10.245.236.1 netdevice/qeth/layer2=true netcfg/confirm_static=true netcfg/disable_dhcp=true netcfg/vlan_id=1234 netcfg/use_autoconfig=1 netcfg/get_hostname=ZLIN12 netcfg/get_domain=domain.com network-console/password=0123456789 network-console/password-again=0123456789 url=http://install-server/ubuntu1604/s390x/preseed.cfg ``` utiliser le paramètre `cio_ignore` pour masquer certains périphériques sous Linux, ce qui peut accélérer considérablement le processus de démarrage et d’installation, notamment dans la partition logique. les paramètres de démarrage sont sensibles à la casse (comme 'locale=en_US')! Un environnement local commun, en particulier pour la première étape de l'installation, est d'ailleurs. 'locale=C'. mettre `auto=true priority=critical` devant le paramètre "url = ..." Les adresses IPv6 des serveurs hébergeant des fichiers de configuration de préconfiguration sont possibles. # Installation de guest z/ VM ## Le fichier PARMFILE Dans le cas d’une installation de guest z/VM avec les paramètres d’initialisation requis pour le preseed, le fichier `PARMFILE` standard peut maintenant être modifié ou le fichier existant copié dans un nouveau fichier après quelques modifications. Dans ce dernier cas, le fichier `EXEC` doit également être copié et modifié: l'instruction `PUNCH` doit pointer vers le nouveau nom du fichier `PARMFILE`. Consulter les fichiers pertinents situés dans le dossier de démarrage du fichier iso: `kernel.ubuntu` et `initrd.ubuntu`, mais plus particulièrement `parmfile.ubuntu` et `ubuntu.exec`. Si les fichiers `PARMFILE.ubuntu` et `ubuntu.exec` sont modifiés sur un poste de travail (et non, comme indiqué ci-dessous, sur z/VM CMS), il faut utiliser un **LF** simple à la place de **CR/LF** et transférer les fichiers. en mode `ASCII`, plutôt qu'en mode `BINARY` en combinaison avec le `site fix 80`, requis pour les fichiers `kernel.ubuntu` et `initrd.ubuntu`. Dans ce cas, il est recommandé d'ouvrir les fichiers après le transfert vers le CMS avec xedit pour vérifier le format (EBCDIC) et la fin de ligne (LF). Les étapes suivantes montrent un exemple de procédure. Le nom de fichier change légèrement s’il est transféré du poste de travail au z/VM CMS: ^ Poste de travail ^ Unité centrale ^ | initrd.ubuntu | INITRD UBUNTU A | | kernel.ubuntu | KERNEL UBUNTU A | | parmfile.ubuntu | PARMFILE UBUNTU A | | ubuntu.exec | UBUNTU EXEC A | (La lettre de lecteur `A` peut être différente sur d'autres machines.) Télécharger ces fichiers comme d’habitude sur le serveur FTP - si ce n’est déjà fait. Utiliser du mode `ASCII` pour `parmfile.ubuntu` et `ubuntu.exec` et du mode `BINARY` avec le `site fix 80` pour `kernel.ubuntu` et `initrd.ubuntu`. Copier le paramètre et le fichier exec: ``` COPYfile PARMFILE UBUNTU A PARMFILE UBUAUTO A COPYfile UBUNTU EXEC A UBUAUTO EXEC A edit file 'UBUAUTO EXEC A': xedit UBUAUTO EXEC A and modify the line: 'PUNCH PARMFILE UBUNTU * (NOHEADER' to: 'PUNCH PARMFILE UBUAUTO * (NOHEADER' ``` Maintenant, le contenu du fichier 'PARMFILE UBUAUTO A', qui est vide par défaut, doit être développé avec les paramètres d'amorçage, en tenant compte de la limite de 80 octets du lecteur z / VM. ``` xedit PARMFILE UBUAUTO A ``` Un exemple de `PARMFILE UBUAUTO` peut ressembler à ceci: ``` ro locale=en_US auto=true priority=critical cio_ignore=01ff-0fff url=ftp://server/preseed/preseed.cfg s390-netdevice/choose_networktype=qeth s390-netdevice/qeth/layer2=true s390-netdevice/qeth/port=0 s390-netdevice/qeth/choose=0.0.C000-0.0.C001-0.0.C002 netcfg/get_ipaddress=10.245.236.12 netcfg/get_netmask=255.255.255.0 netcfg/get_gateway=10.245.236.1 netcfg/get_nameservers=10.245.236.1 netdevice/qeth/layer2=true netcfg/confirm_static=true netcfg/use_autoconfig=1 netcfg/disable_dhcp=true netcfg/vlan_id=1234 hostname=ZLIN42 domain=domain.com network-console/start=note network-console/password=password network-console/password-again=password ``` Le fichier de configuration est limité à 11 lignes de 80 caractères chacune.(La limite précise est de 11 lignes avec chacune * 80 caractères plus 10 caractères upplémentaires.) Par conséquent, il est recommandé d'essayer de spécifier plus d'un paramètre par ligne, séparer les paramètres par des espaces et utiliser autant d'alias (raccourcis) que possible (voir ci-dessus). Mais ne pas spécifier un seul paramètre (y compris sa valeur) sur plusieurs lignes! La casse du paramètre ainsi que la séquence importent peu. (Avec cette spécification, le fichier parm ci-dessus peut être encore raccourci ... et si vous avez vraiment besoin de plus de caractères, vous pouvez même omettre complètement la spécification du deuxième mot de passe d'installation: 'console-réseau / mot de passe-nouveau = mot de passe'. ) ## Conseils de préconfiguration ### Génération automatique du mot de passe Le résultat de la commande `mkpasswd -m sha-512` peut être utilisé comme valeur pour la clé de préconfiguration `passwd/user-password-crypted password`. ### Utilisation du journal pour automatiser l'installation le journal de la console affiche la sortie de la console d’une installation de préconfiguration entièrement automatisée, récupéré dans un fichier il peut être utilisé pour rejouer l'installation complète. ### Utilisation des raccourcis des commandes Les commandes commençant par des majuscules suivies de minuscules peuvent être raccourcies en utilisant la partie majuscule, par exemple pour exécuter la commande `COPYfile` on peut saisir uniquement `copy` suivi du nom complet et la version longue du fichier.