Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

boot PXE avec un preseed pour une installation automatique de Debian Wheezy

2 réponses
Avatar
Francois Lafont
Bonjour à tous,

Comme indiqué dans le titre, j'essaye de mettre en
place un boot PXE avec un fichier preseed afin d'avoir
une installation 100% automatique d'une Debian Wheezy
amd64. Il s'avère que je bloque sur 2 trucs.

Je mets ma conf en fin de message.

1) Impossible d'avoir le clavier en français sachant
que je veux que ma Debian soit localisé en France
bien sûr (country=FR etc.) mais je souhaite que la
locale installée soit en_US.UTF-8 (car je veux des
messages d'erreur etc. en anglais). Si par exemple,
je décide de mettre la locale fr_FR.UTF-8 et que je
laisse ma conf à l'identique, j'ai bien un clavier
français. Mais le fait que je veuille une locale
« différente » de ma localisation géographique, ça
semble fiche la pagaille.

2) Avec ma conf, j'ai un serveur X qui est installé
automatiquement sur la machine. Par exemple, une fois
que l'installation est terminée, je vois que les paquets
xserver-common, x11-common etc. sont installés.

Perso, quand je fais une installation à la mano (toujours
en mode expert) et que j'installe le minimum (openssh-server
et puis basta), je n'ai pas tous ces paquets qui sont
installés. J'aimerais que ça soit pareil avec mon fichier
preseed car c'est pour un installer un serveur alors
je n'ai que faire d'un serveur X sur la machine.

Merci d'avance pour votre aide.

--
François Lafont


PS : Voici ma conf.

1) Dans mon fichier pxelinux.cfg/default, j'ai mis cette
ligne afin d'ajouter les options de boot nécessaires :

APPEND keymap=fr language=en country=FR locale=fr_FR.UTF-8
netcfg/get_hostname=server netcfg/get_domain=domain.priv
preseed/url=http://192.168.0.2/Preseed/wheezy-preseed-amd64.cfg
initrd=debian-installer/amd64/initrd.gz --


2) Voici mon fichier preseed :

#### Contents of the preconfiguration file (for wheezy)

### Localization
d-i debian-installer/language string en
d-i debian-installer/country string FR
d-i debian-installer/locale string en_US.UTF-8
# Optionally specify additional locales to be generated.
d-i localechooser/supported-locales multiselect fr_FR.UTF-8

d-i keyboard-configuration/xkb-keymap select fr
# d-i keyboard-configuration/toggle select No toggling

### Network configuration
# netcfg will choose an interface that has link if possible. This makes it
# skip displaying a list if there is more than one interface.
d-i netcfg/choose_interface select auto

# Any hostname and domain names assigned from dhcp take precedence over
# values set here. However, setting the values still prevents the questions
# from being shown, even if values come from dhcp.
d-i netcfg/get_hostname string client
d-i netcfg/get_domain string domain.priv

# If you want to force a hostname, regardless of what either the DHCP
# server returns or what the reverse DNS entry for the IP is, uncomment
# and adjust the following line.
d-i netcfg/hostname string client

# If non-free firmware is needed for the network or other hardware, you can
# configure the installer to always try to load it, without prompting. Or
# change to false to disable asking.
d-i hw-detect/load_firmware boolean true

### Mirror settings
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string 192.168.0.3
d-i mirror/http/directory string /ftp.fr.debian.org/debian
d-i mirror/http/proxy string

# Suite to install.
d-i mirror/suite string wheezy

### Account setup
d-i passwd/make-user boolean false

# Root password, either in clear text
d-i passwd/root-password password root
d-i passwd/root-password-again password root
# or encrypted using an MD5 hash.
#d-i passwd/root-password-crypted password [MD5 hash]

### Clock and time zone setup
# Controls whether or not the hardware clock is set to UTC.
d-i clock-setup/utc boolean true

# You may set this to any valid setting for $TZ; see the contents of
# /usr/share/zoneinfo/ for valid values.
d-i time/zone string Europe/Paris

# Controls whether to use NTP to set the clock during the install
d-i clock-setup/ntp boolean true
# NTP server to use. The default is almost always fine here.
d-i clock-setup/ntp-server string 0.debian.pool.ntp.org

### Partitioning
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic

# This makes partman automatically partition without confirmation, provided
# that you told it what to do using one of the methods above.
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

## Controlling how partitions are mounted
# The default is to mount by UUID, but you can also choose "traditional" to
# use traditional device names, or "label" to try filesystem labels before
# falling back to UUIDs.
d-i partman/mount_style select uuid

### Base system installation
# Configure APT to not install recommended packages by default. Use of this
# option can result in an incomplete system and should only be used by very
# experienced users.
d-i base-installer/install-recommends boolean false

# The kernel image (meta) package to be installed; "none" can be used if no
# kernel is to be installed.
d-i base-installer/kernel/image string linux-image-amd64

### Apt setup
# You can choose to install non-free and contrib software.
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
# Select which update services to use; define the mirrors to be used.
# Values shown below are the normal defaults.
d-i apt-setup/services-select multiselect security, updates
d-i apt-setup/security_host string security.debian.org

# By default the installer requires that repositories be authenticated
# using a known gpg key. This setting can be used to disable that
# authentication. Warning: Insecure, not recommended.
#d-i debian-installer/allow_unauthenticated boolean true

xserver-xorg xserver-xorg/autodetect_monitor boolean false

### Package selection
#tasksel tasksel/first multiselect standard, web-server
# If the desktop task is selected, install the kde and xfce desktops
# instead of the default gnome desktop.
#tasksel tasksel/desktop multiselect kde, xfce
tasksel tasksel/first multiselect standard

# Individual additional packages to install
d-i pkgsel/include string openssh-server
# Whether to upgrade packages after debootstrap.
# Allowed values: none, safe-upgrade, full-upgrade
d-i pkgsel/upgrade select full-upgrade

# Some versions of the installer can report back on what software you have
# installed, and what software you use. The default is not to report back,
# but sending reports helps the project determine what software is most
# popular and include it on CDs.
popularity-contest popularity-contest/participate boolean false
# Install grub.
d-i grub-installer/only_debian boolean true

### Finishing up the installation
# Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note

2 réponses

Avatar
Cyprien Nicolas
Salut,

Le 07/11/2013 19:38, Francois Lafont écrivit :
1) Impossible d'avoir le clavier en français sachant que je veux que
ma Debian soit localisé en France bien sûr (country=FR etc.) mais je
souhaite que la locale installée soit en_US.UTF-8 (car je veux des
messages d'erreur etc. en anglais).



Et tu imprimes sur du papier au format US Letter, tu fais tes comptes en
dollars, tu écris les dates MM/JJ/AAAA et tu utilises le système
impérial ? Un système anglophone à peu près Europe-Compatible est
en_IE.UTF-8, mais le format monétaire est différent du notre.

Si c'est juste pour les messages,
# update-locale LANG=fr_FR.UTF-8 LC_MESSAGES=en_US.UTF-8
et hop.

Si par exemple, je décide de mettre la locale fr_FR.UTF-8 et que je
laisse ma conf à l'identique, j'ai bien un clavier français. Mais le
fait que je veuille une locale « différente » de ma localisation
géographique, ça semble fiche la pagaille.



Euh non, d'expérience, la localisation géographique sert juste à la
timezone, le choix de la langue de l'installateur prédéfini beaucoup de
choix, mais j'ai jamais eu de souci pour installer une debian en anglais
en France avec un clavier français (mais pas avec preseed cela dit).

2) Avec ma conf, j'ai un serveur X qui est installé automatiquement
sur la machine. Par exemple, une fois que l'installation est
terminée, je vois que les paquets xserver-common, x11-common etc.
sont installés.



Les paquets *-common ne sont pas le serveur X11, mais plutôt des
fichiers communs utilisé par d'autres bibliothèques.

J'ai l'impression que depuis Wheezy, APT est plus agressif sur les
Recommends qu'avant, et c'est facile de se retrouver avec plein de
bibliothèques graphiques sur un serveur…

Tu peux toujours demander à aptitude le pourquoi de tel paquet, ça aide
souvent à comprendre :

$ aptitude why xserver-common


Je sais que je réponds à côté de la question initiale, mais j'espère
avoir su éclairer quelques points. :-)

--
« Le fromage gratuit ne se trouve que dans les pièges à souris.
- Donc si c'est gratuit, c'est toi la souris ! »
Avatar
Francois Lafont
Bonjour et désolé pour ma réponse super tardive.

Le 08/11/2013 11:20, Cyprien Nicolas a écrit :

Le 07/11/2013 19:38, Francois Lafont écrivit :
1) Impossible d'avoir le clavier en français sachant que je veux que
ma Debian soit localisé en France bien sûr (country=FR etc.) mais je
souhaite que la locale installée soit en_US.UTF-8 (car je veux des
messages d'erreur etc. en anglais).



Et tu imprimes sur du papier au format US Letter, tu fais tes comptes en
dollars,



C'est pour un serveur, pas d'impression, ni de compte à faire donc.

tu écris les dates MM/JJ/AAAA et tu utilises le système
impérial ?



L'impérialisme de l'anglais dans le monde informatique est un fait
indéniable, c'est comme ça. Et vraiment, moi qui suis une quiche
en anglais, ça m'aurait arrangé que ce soit plutôt le français
mais c'est foutu pendant un sacré bout de temps.

Un système anglophone à peu près Europe-Compatible est
en_IE.UTF-8, mais le format monétaire est différent du notre.

Si c'est juste pour les messages,
# update-locale LANG=fr_FR.UTF-8 LC_MESSAGES=en_US.UTF-8
et hop.



J'arrive bien à avoir des locales correctes mais c'est la configuration
du clavier qui n'était pas correcte.

Ce qui me motive pour avoir comme locale par défaut en_US.UTF-8,
c'est que, lorsque j'ai un problème, je préfère avoir des messages
d'erreurs en anglais car ça augmente mes chances de résolution
lors de mes recherches Google. :-)

Si par exemple, je décide de mettre la locale fr_FR.UTF-8 et que je
laisse ma conf à l'identique, j'ai bien un clavier français. Mais le
fait que je veuille une locale « différente » de ma localisation
géographique, ça semble fiche la pagaille.



Euh non, d'expérience, la localisation géographique sert juste à la
timezone, le choix de la langue de l'installateur prédéfini beaucoup de
choix, mais j'ai jamais eu de souci pour installer une debian en anglais
en France avec un clavier français



Sur une installation manuelle, moi aussi je n'ai jamais eu de souci.

(mais pas avec preseed cela dit).



Et voilà ! C'est tout le problème. Avec preseed, je n'y arrivais pas.
Mais la bonne nouvelle, c'est que j'ai fini par y arriver comme ceci.
Dans le fichier de boot PXE, au niveau des options passées au noyau
j'ai mis ceci :

LABEL wheezy-amd64-preseed
MENU LABEL Debian Wheezy amd64: installation with preseed
KERNEL debian-installer/amd64/linux
APPEND keymap=fr language=en country=FR locale=fr_FR.UTF-8 interface=eth0 url=http://pxe/wheezy-preseed-amd64.cfg initrdÞbian-installer/amd64/initrd.gz hostname=server-x domain=domain.tld --

Le truc important étant :

« keymap=fr language=en country=FR locale=fr_FR.UTF-8 »

Et dans le fichier preseed, j'ai mis ça :

# Ne rien mettre d'autres dans le preseed concernant
# pour tout ce qui touche aux locales et la conf du clavier.
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/supported-locales multiselect fr_FR.UTF-8

Et avec ces paramètres là, j'ai bien :

- les deux locales en_US.UTF-8 et fr_FR.UTF-8 qui sont installées;
- la locale en_US.UTF-8 est bien la locale par défaut;
- et surtout j'ai bien au final un clavier un azerty.

Maintenant le fait que ça marche ainsi reste un mystère. D'après la
doc c'est même étrange que ça marche car normalement

d-i debian-installer/locale

est un paramètre qui, dans le fichier preseed, n'est pas pris
en compte lors de l'installation PXE car le fichier preseed est
a priori téléchargé et lu par le client à un stade de l'installation
où la question de la locale est déjà passée. C'est pourquoi le
paramètre "locale=..." (raccourci de "debian-installer/locale=...")
est en principe passé au noyau via le fichier de boot PXE (en résumé,
ce qu'on ne peut pas passer au fichier preseed car celui-ci est
lu trop tardivement dans le processus de l'installation, on le
place en tant qu'option au noyau via APPEND). Maintenant, dans
les faits, j'ai pu simplement constater empiriquement que la ligne
« d-i debian-installer/locale ... » avait pourtant bien une
incidence car si je l'enlève je n'obtiens plus ce que je veux.

J'avoue qu'une fois que j'ai eu la combinaison gagnante
je n'ai pas cherché à comprendre.

2) Avec ma conf, j'ai un serveur X qui est installé automatiquement
sur la machine. Par exemple, une fois que l'installation est
terminée, je vois que les paquets xserver-common, x11-common etc.
sont installés.



Les paquets *-common ne sont pas le serveur X11, mais plutôt des
fichiers communs utilisé par d'autres bibliothèques.



Ok.

J'ai l'impression que depuis Wheezy, APT est plus agressif sur les
Recommends qu'avant, et c'est facile de se retrouver avec plein de
bibliothèques graphiques sur un serveur…



J'ai cette impression aussi. Je crois tout simplement que depuis
Wheezy les paquets signalés comme étant "Recommends" sont installés
par défaut alors que ce n'était pas le cas sur Squeeze.

Tu peux toujours demander à aptitude le pourquoi de tel paquet, ça aide
souvent à comprendre :

$ aptitude why xserver-common



Ok, merci je ne connaissais pas, c'est super pratique je trouve.
J'ai pu voir du coup que la raison de la présence de ce paquet
était à la base due à l'installation de virtualbox-guest-x11.
En fait, l'installateur détectait que j'avais une machine virtuelle
virtualbox et du coup il m'installait automatiquement ce paquet.
J'avais beau jouer sur toute sorte d'options, rien à faire (bon
au moins je savais que ça n'allait pas se produire sur une machine
physique). J'ai fini par trouver sur le web qu'une solution possible
était :

d-i preseed/early_command string rm /usr/lib/pre-pkgsel.d/20install-hwpackages

À mettre dans le preseed. Apparemment, cela empêche l'installateur
de détecter certains matériels spécifiques qui engendrent
l'installation de paquets tout aussi spécifiques. Si j'ai bien
compris cela peut être à double tranchant car cela peut
engendrer la non installation de certains paquets qui peuvent
s'avérer nécessaires au bon fonctionnement de la machine.

Je sais que je réponds à côté de la question initiale, mais j'espère
avoir su éclairer quelques points. :-)



Oui, oui absolument.
Merci.

--
François Lafont