web-dev-qa-db-fra.com

Comment utiliser early_command avec ubiquity

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.

1
Janning

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.

1
Janning