J'essaie de faire une installation automatique et j'ai besoin d'exécuter certaines commandes le plus tôt possible. J'ai donc modifié mon support d'installation USB (Ubuntu 16.04) et ajouté:
menuentry "Install automatically" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/auto.seed preseed/early_command=/cdrom/early.sh boot=casper auto=true automatic-ubiquity debug-ubiquity quiet splash ---
initrd /casper/initrd.lz
}
cela est expliqué ici: https://wiki.ubuntu.com/UbiquityAutomation et ici https://wiki.ubuntu.com/DesktopCDOptions
Le fichier early.sh est sur ma clé USB comme mon fichier auto.seed (qui est très bien chargé). Mais il semble que mon script early.sh ne soit jamais exécuté.
Je veux juste copier un fichier sur le système en direct:
#!/bin/bash
cp /cdrom/wlan /root/etc/NetworkManager/system-connections/wlan;
chmod 0600 /root/etc/NetworkManager/system-connections/wlan;
Je l'ai préfixé avec/root comme expliqué dans les liens ci-dessus. J'ai même essayé:
#!/bin/bash
touch /root/test
Lorsque j'arrête l'installation avant l'exécution de partman, j'obtiens le Live Desktop habituel et je m'attends à ouvrir une console et à voir /root/test
. Mais non.
Je regardais/var/log/syslog et je peux voir les paramètres de démarrage mais pas d'autres lignes de journal sur early_command
Mon fichier prédéfini contient des lignes comme celle-ci:
d-i preseed/early_command string in-target touch /root/test
Comment puis-je déboguer cette situation? C'est ennuyeux de recommencer encore et encore.
Je pense qu'avec ubiquity, early_command et late_command ne fonctionnent tout simplement pas. Alors maintenant j'utilise quelque chose comme
ubiquity ubiquity/success_command string \
cp /cdrom/script /target/root/; \
chmod 0700 /target/root/script; \
in-target /root/script; \
Ces commandes fonctionnent bien et je configure mon wifi et fais d'autres correctifs à mon installation avant de redémarrer.