Debian-installer : module ahci non chargé sur certains matériels

Bonjour,

J’utilise le paquet debian-installer-9-netboot-amd64 en version 20170615+deb9u1 pour installer des postes d’un parc informatique. Pour ça, j’y ajoute le preseed suivant :

# Langue et mappage clavier
d-i			debian-installer/locale			select fr_FR.UTF-8
d-i			debian-installer/language		string fr
d-i			debian-installer/country		string FR
d-i			console-keymaps-at/keymap		select fr-latin9
d-i			keyboard-configuration/xkb-keymap	select fr-latin9
# Réseau
## Ces lignes sont ignorées car le preseed arrive après l'initialisation du réseau
## Je les laisse à titre d'information
d-i			netcfg/choose_interface			select auto
d-i			netcfg/get_hostname			string debian
d-i			netcfg/get_domain string		ati33.lan
d-i			hw-detect/load_firmware			boolean false
# Dépôt
d-i			mirror/country				string manual
d-i			mirror/http/hostname			string ftp.fr.debian.org
d-i			mirror/http/directory			string /debian
d-i			mirror/http/proxy			string http://repos.ati33.lan:3142/
d-i			mirror/suite				string stretch
d-i			mirror/udeb/suite			string stretch
d-i			apt-setup/non-free			boolean false
d-i			apt-setup/contrib			boolean false
d-i			apt-setup/services-select		multiselect security, updates
d-i			apt-setup/security_host			string security.debian.org
d-i			apt-setup/source			boolean false
# Utilisateurs et mots de passe
d-i			passwd/root-login			boolean true
d-i			passwd/make-user			boolean false
d-i			passwd/root-password-crypted		password\
				$6$zvedM6l5$jl587hN4NS/0KvISXjkJr/uVqPxyFcES8Mx9ANAoKJ/K7l5r7X7cpCwl95YQUsbXgClY6n8m0Tdcumvr/czKN/
# Horloge
d-i			clock-setup/utc				boolean true
d-i			time/zone				string Europe/Paris
d-i			clock-setup/ntp				boolean true
d-i			clock-setup/ntp-server			string ntp.ati33.lan
# Partitionnement
d-i			partman-auto/method			string regular
## Une seule partition ext4 pour / sur tout le disque
d-i			partman-auto/expert_recipe		string		\
				root ::						\
					4096 4096 -1 ext4			\
						$primary{ }			\
						method{ format }		\
						format{ }			\
						use_filesystem{ }		\
						filesystem{ ext4 }		\
						mountpoint{ / }			\
						label{ nomachanger }		\
						options/discard{ discard }	\
						options/noatime{ noatime }	\
						options/nodiratime{ nodiratime }\
					.
d-i			partman-auto/choose_recipe		select root
d-i			partman-basicfilesystems/no_swap	boolean false
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
d-i			partman-basicmethods/method_only	boolean false
# Système de base
d-i			base-installer/kernel/image		string linux-image-adm64
# Installation des paquets
tasksel			tasksel/first				multiselect standard
## Ajout de paquets en plus
d-i			pkgsel/include				string python3-dialog tftp console-setup
## Configuration du mappage clavier de la console
console-setup		console-setup/fontsize			string  8x16
console-setup		console-setup/charmap47 select		UTF-8
console-setup		console-setup/fontsize-text47		select  8x16
console-setup		console-setup/fontface47		select  Fixed
console-setup		console-setup/store_defaults_in_debconf_db\
								boolean true
console-setup		console-setup/fontsize-fb47		select  8x16
console-setup		console-setup/codesetcode		string  Lat15
console-setup		console-setup/codeset47 select		# Latin1 and Latin5 - western Europe and Turkic languages
keyboard-configuration	keyboard-configuration/layoutcode	string  fr
keyboard-configuration	keyboard-configuration/variant		select  Français - Français (variante)
keyboard-configuration	keyboard-configuration/unsupported_options\
								boolean true
keyboard-configuration	keyboard-configuration/compose		select  No compose key
keyboard-configuration	keyboard-configuration/switch		select  No temporary switch
keyboard-configuration	keyboard-configuration/store_defaults_in_debconf_db\
								boolean true
keyboard-configuration	keyboard-configuration/layout		select  
keyboard-configuration	keyboard-configuration/unsupported_config_options\
								boolean true
keyboard-configuration	keyboard-configuration/model		select  PC générique 105 touches (intl)
keyboard-configuration	keyboard-configuration/toggle		select  No toggling
keyboard-configuration	keyboard-configuration/modelcode	string  pc105
keyboard-configuration	keyboard-configuration/unsupported_layout\
								boolean true
keyboard-configuration	keyboard-configuration/ctrl_alt_bksp	boolean false
keyboard-configuration	keyboard-configuration/xkb-keymap	select  fr(latin9)
keyboard-configuration	keyboard-configuration/variantcode	string  oss
keyboard-configuration	keyboard-configuration/altgr		select  The default for the keyboard layout
keyboard-configuration	keyboard-configuration/optionscode	string  
keyboard-configuration	keyboard-configuration/unsupported_config_layout\
								boolean true
## Pas de mise à jour car la dernière version est déjà téléchargée des dépôts
d-i			pkgsel/upgrade				select none
## Afin de permettre à Debian de savoir quels paquets sont populaires
popularity-contest	popularity-contest/participate		boolean true
# GRUB
d-i			grub-installer/only_debian		boolean true
d-i			grub-installer/with_other_os		boolean true
d-i			grub-installer/bootdev			string default
# Post-installation
d-i			finish-install/reboot_in_progress	note
## On télécharge l'installateur de la surcouche dans le home de root
d-i			preseed/late_command			string\
				in-target sh -c "echo get systems/debian-installer/9/preseeds/ati33/install.py /root/install.py | tftp 192.168.1.245"

Pour lancer ce pressed, je met les options vga=788 auto priority=critical url="<lien tftp vers le preseed>" hw-detect/load_firmware=false debian-installer/locale=fr_FR.UTF-8 debian-installer/language=fr debian-installer/country=FR keyboard-configuration/xkb-keymap=fr-latin9.

Sur la plupart des postes du parc, ça fonctionne sans problème, mais sur certains, une erreur s’affiche au moment du formatage du disque, ça m’indique Aucun système de fichiers n'a été choisi comme racine. et quand j’ouvre la seconde console pour analyser le problème, je constate que le fichier /dev/sda n’existe pas.
En cherchant un peu, j’ai lancé l’installateur avec seulement l’option vga=788 et j’ai tenté une installation à la main et ça fonctionne sans problème.
En continuant mes recherches, j’ai trouvé qu’en chargeant le module du noyau ahci (modprobe -iv ahci, ce qui charge les modules libata, libahci avant ahci), le fichier /dev/sda existe enfin, ainsi que le fichier /dev/sda1 le cas échéant.

Je ne vois que deux solutions à mon problème, soit trouver l’option de démarrage ou la ligne dans le preseed qui provoque cette erreur, soit ajouter une option pour forcer le chargement du module noyau ahci. Si quelqu’un voit comment mettre ça en œuvre.

Merci.