J'ai cloné un disque (SSD) et mis le disque cloné dans une autre machine. Maintenant, les deux systèmes ont la même valeur dans /etc/machine-id
. Est-ce un problème de simplement éditer /etc/machine-id
pour changer la valeur? Puis-je faire cela pendant que le système est en marche (ou dois-je démarrer à partir d'un Live USB)?
Est-ce systemd-machine-id-setup
une meilleure alternative?
L'utilisation naïve de systemd-machine-id-setup
ne fonctionne pas. J'ai essayé ces étapes:
nano /etc/machine-id (to remove the existing value)
systemd-machine-id-setup
> Initializing machine ID from D-Bus machine ID.
cat /etc/machine-id
La nouvelle valeur est la même que l'ancienne.
machine-id
?Réponses:
Bien que
systemd-machine-id-setup
etsystemd-firstboot
sont parfaits pour les systèmes utilisant systemd,/etc/machine-id
n'est pas un fichier systemd, malgré la balise. Il est également utilisé sur les systèmes n'utilisant pas systemd. Donc, comme alternative, vous pouvez utiliser l'dbus-uuidgen
outil:et alors
Comme mentionné par Stephen Kitt, les systèmes Debian peuvent avoir
/etc/machine-id
un/var/lib/dbus/machine-id
fichier et un fichier. Si les deux existent en tant que fichiers normaux, leur contenu doit correspondre, aussi supprimez-le également/var/lib/dbus/machine-id
:et recréez-le:
Cette dernière commande utilise implicitement
/var/lib/dbus/machine-id
le nom de fichier et copie l'ID d'ordinateur à partir du fichier déjà généré/etc/machine-id
.L'
dbus-uuidgen
invocation peut ou peut ne pas déjà faire partie de la séquence de démarrage normale. Si cela fait partie de la séquence d'amorçage, alors supprimer le fichier et redémarrer devrait suffire. Si vous avez besoin dedbus-uuidgen
vous lancer , faites attention à l'avertissement dans la page de manuel:Donc, après cela, ne continuez pas à utiliser le système sans redémarrer. Par précaution supplémentaire, vous pouvez plutôt redémarrer d’abord en mode de secours (ou, comme vous l’avez suggéré, démarrer à partir d’une clé USB active), mais d’après mon expérience, cela n’est pas nécessaire. De mauvaises choses peuvent arriver, mais les mauvaises choses qui arrivent sont corrigées par le redémarrage de toute façon.
la source
/var/lib/dbus/machine-id
, et/etc/machine-id
est un systemd-ism (compatible avec D-Bus)./etc
directement aujourd'hui (aucun lien symbolique n'est nécessaire), il peut être inséré ici pour simplifier les choses: il y a plus de code qui ne/etc
fait que vérifier/var/lib/dbus
.systemd-machine-id-setup
trouver une copie de la valeur originale là-bas. C'est le comportement par défaut sauf si une distribution crée spécialement le lien symbolique.L'option la plus simple consiste à supprimer
/etc/machine-id
sur le disque cloné et à redémarrer.systemd-machine-id-setup
en générera un nouveau pour vous (vous devrez l'exécuter manuellement si cela ne se produit pas automatiquement). Vous devrez peut-être aussi supprimer/var/lib/dbus/machine-id
(s'il ne s'agit pas d'un lien symbolique vers/etc/machine-id
); dans ce cas, assurez - vous que le nouveaumachine-id
est vraiment nouveau, et copier les fichiers pour/etc/machine-id
et/var/lib/dbus/machine-id
contiennent la même valeur.Comme vous l'avez découvert, l'exécution
systemd-machine-id-setup
sur un système qui a été démarré avec un/etc/machine-id
fichier restaure simplement l'identificateur avec lequel il a été démarré (à partir de l'ID d'ordinateur D-Bus). C'est l'option 1 de la page de manuel à laquelle vous êtes lié. La suppression du ou des fichier (s) et le redémarrage exerceront l’option 4.Pour le bénéfice des lecteurs envisageant de cloner un disque de cette manière, l'approche recommandée avec systemd, du moins sur les systèmes où il
systemd-firstboot
est disponible, consiste à utiliser à la place:/mnt
);initialiser l'identifiant de la machine:
Vous pouvez utiliser
systemd-firstboot
pour définir d’autres paramètres lorsque vous y êtes (nom d’hôte, mot de passe root, etc.).la source
/etc/machine-id
elle n'est pas recréée automatiquement si elle est supprimée, ellesystemd-firstboot
n'est pas disponible. Donc, une fois que vous supprimez ce fichier, vous devez le recréer manuellement en utilisantsystemd-machine-id-setup
(et éventuellement redémarrer, également)./var/lib/dbus/machine-id
qu’un lien symbolique vers/etc/machine-id
, il n’est donc pas nécessaire de copier le contenu d’un fichier à l’autre.machine-id
pour D-Bus puisque ce dernier n'est qu'un mécanisme IPC intra-système?