Bonjour,
Je ne sais pas pour Debian Trixie mais c’était possible avec Debian Bookworm .
J’utilise ipxe pour démarrer debian-netinst en lui filant un fichier preseed pour préconfigurer l’installateur de telle manière qu’il configure le réseau et lance l’extension de l’installateur appelée network-console .
Voici, en gros, ce que j’utilise.
dnsmasq tel que dans ce sujet.
install.ipxe
#!ipxe
echo
set mirror http://ftp.fr.debian.org
set base_path ${mirror}/debian/dists/bookworm/main/installer-amd64/current/images/netboot/debian-installer/amd64
kernel ${base_path}/linux
initrd ${base_path}/initrd.gz
initrd http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/bookworm/current/firmware.cpio.gz
initrd http://192.168.1.2/bookworm_install/ssh-console_preseed.cfg preseed.cfg
initrd http://192.168.1.2/bookworm_install/late.sh
sleep 2
imgargs linux initrd=initrd.magic DEBIAN_FRONTEND=newt net.ifnames=0
boot
ssh-console_preseed.cfg
#### Contents of the preconfiguration file (for bookworm)
### Localization
# Preseeding only locale sets language, country and locale.
d-i debian-installer/locale string en_US.UTF-8
# The values can also be preseeded individually for greater flexibility.
d-i debian-installer/language string en
d-i debian-installer/country string FR
# Keyboard selection.
d-i keyboard-configuration/xkb-keymap select fr(latin9)
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
# To pick a particular interface instead:
d-i netcfg/choose_interface select eth0
# To set a different link detection timeout (default is 3 seconds).
# Values are interpreted as seconds.
#d-i netcfg/link_wait_timeout string 10
# If you have a slow dhcp server and the installer times out waiting for
# it, this might be useful.
#d-i netcfg/dhcp_timeout string 60
#d-i netcfg/dhcpv6_timeout string 60
# If you prefer to configure the network manually, uncomment this line and
# the static network configuration below.
#d-i netcfg/disable_autoconfig boolean true
# If you want the preconfiguration file to work on systems both with and
# without a dhcp server, uncomment these lines and the static network
# configuration below.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually
# Static network configuration.
#
# IPv4 example
#d-i netcfg/get_ipaddress string 192.168.1.42
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/get_nameservers string 192.168.1.1
#d-i netcfg/confirm_static boolean true
#
# IPv6 example
#d-i netcfg/get_ipaddress string fc00::2
#d-i netcfg/get_netmask string ffff:ffff:ffff:ffff::
#d-i netcfg/get_gateway string fc00::1
#d-i netcfg/get_nameservers string fc00::1
#d-i netcfg/confirm_static boolean true
# 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 debian
d-i netcfg/get_domain string ''
# 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 debian
#
d-i netcfg/domain string ''
# Disable that annoying WEP key dialog.
d-i netcfg/wireless_wep string
# The wacky dhcp hostname that some ISPs use as a password of sorts.
#d-i netcfg/dhcp_hostname string radish
# 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
### Network console
# Use the following settings if you wish to make use of the network-console
# component for remote installation over SSH. This only makes sense if you
# intend to perform the remainder of the installation manually.
d-i anna/choose_modules string network-console
#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
d-i network-console/password password unsupermotdepasse
d-i network-console/password-again password unsupermotdepasse
### Mirror settings
# If you select ftp, the mirror/country string does not need to be set.
#d-i mirror/protocol string ftp
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
# Do not report to popcon
popularity-contest popularity-contest/participate boolean false
d-i preseed/late_command string /bin/sh late.sh
# Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note
# To shutdown instead of reboot
d-i debian-installer/exit/poweroff boolean true
late.sh
#!/bin/sh
in-target ln -s /dev/null /etc/systemd/network/99-default.link
in-target update-initramfs -u
Dans le fichier .ipxe , les directives initrd téléchargent plusieurs fichiers qui sont mis bout à bout pour former le initrd de l’installateur lorsque j’indique initrd.magic .
Ce qui fait que les fichiers firmware.cpio.gz , preseed.cfg et late.sh se retrouvent à la racine de l’installateur et que celui-ci peut les utiliser.
Dans ton cas, tu peux te servir du fichier ipxe.efi du paquet ipxe et le coller dans une clé USB formatée pour démarrer dessus. Exemple ici .
Bien évidemment, ipxe.efi , sans modification, n’est pas signé et ne fonctionnera pas avec secureboot .
Il est peut-être possible d’embarquer les fichiers tel que le script .ipxe sur la clé USB. Je n’ai pas essayé.
Une fois que l’installateur a ouvert l’accès SSH, tu peux faire quelque-chose du genre :
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no installer@192.168.1.105
pour te connecter à l’installateur.
Après avoir été déconnecté de la machine installée, je suggère de taper la commande reset dans ton terminal pour qu’il soit de nouveau utilisable.
Un jour, il faudrait que je prenne le temps d’en faire un gist GitHub.
–
AnonymousCoward