Cloné un disco (SSD) y puse el disco clonado en otra máquina. Ahora ambos sistemas tienen el mismo valor en /etc/machine-id
. ¿Hay algún problema simplemente editar /etc/machine-id
para cambiar el valor? ¿Puedo hacer esto mientras el sistema está funcionando (o necesito arrancar desde un USB en vivo)?
¿Es systemd-machine-id-setup
una mejor alternativa?
El uso ingenuo de systemd-machine-id-setup
no funciona. Intenté estos pasos:
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
El nuevo valor es el mismo que el antiguo.
machine-id
?Respuestas:
Aunque
systemd-machine-id-setup
ysystemd-firstboot
son excelentes para sistemas que usan systemd,/etc/machine-id
no es un archivo systemd, a pesar de la etiqueta. También se usa en sistemas que no usan systemd. Entonces, como alternativa, puede usar ladbus-uuidgen
herramienta:y entonces
Como mencionó Stephen Kitt, los sistemas Debian pueden tener tanto un
/etc/machine-id
como un/var/lib/dbus/machine-id
archivo. Si ambos existen como archivos normales, su contenido debe coincidir, por lo que también eliminará/var/lib/dbus/machine-id
:y volver a crearlo:
Este último comando implícitamente se usa
/var/lib/dbus/machine-id
como el nombre del archivo y copiará la ID de la máquina del ya generado recientemente/etc/machine-id
.La
dbus-uuidgen
invocación puede o no ser parte de la secuencia de arranque normal. Si es parte de la secuencia de arranque, eliminar el archivo y reiniciar debería ser suficiente. Si necesita ejecutarsedbus-uuidgen
, preste atención a la advertencia en la página del manual:Entonces, después de hacer esto, definitivamente no continúe usando el sistema sin reiniciar. Como precaución adicional, puede reiniciar primero en modo de rescate (o como sugirió, iniciar desde una memoria USB en vivo), pero desde mi experiencia, eso no es necesario. Pueden ocurrir cosas malas, pero las cosas malas que suceden son reparadas por el reinicio de todos modos.
fuente
/var/lib/dbus/machine-id
y/etc/machine-id
es un systemd-ism (que es compatible con D-Bus)./etc
directamente hoy en día (no se necesita un enlace simbólico), puede colocarse allí solo por simplicidad: hay más código por ahí que solo verifica/etc
que eso solo verifica/var/lib/dbus
.systemd-machine-id-setup
encontrar una copia del valor original allí. Ese es básicamente el comportamiento predeterminado a menos que una distribución cree especialmente el enlace simbólico.La opción más fácil es eliminar
/etc/machine-id
en el disco clonado y reiniciar;systemd-machine-id-setup
generará uno nuevo para usted (deberá ejecutarlo manualmente si esto no sucede automáticamente). También es posible que deba eliminar/var/lib/dbus/machine-id
(si no es un enlace simbólico/etc/machine-id
); en ese caso, asegúrese de que la nuevamachine-id
realidad es nueva, y copiar los archivos de modo que/etc/machine-id
y/var/lib/dbus/machine-id
contienen el mismo valor.Como descubrió, la ejecución
systemd-machine-id-setup
en un sistema que se inició con un/etc/machine-id
archivo simplemente restaurará el identificador con el que se inició (desde la identificación de la máquina D-Bus). Esta es la opción 1 en la página de manual a la que se ha vinculado. Eliminar el archivo (s) y reiniciar ejercerá la opción 4.Para el beneficio de los lectores que planean clonar un disco de esta manera, el enfoque recomendado con systemd, al menos en sistemas donde
systemd-firstboot
está disponible, es usar eso en su lugar:/mnt
. ej. );Inicializar la identificación de la máquina:
Puedes usarlo
systemd-firstboot
para configurar otros parámetros mientras estás en él (nombre de host, contraseña de root, etc.).fuente
/etc/machine-id
no se recrea automáticamente si se elimina, tampocosystemd-firstboot
está disponible. Entonces, una vez que elimine ese archivo, debe recrearlo manualmente usandosystemd-machine-id-setup
(y quizás reiniciar, también)./var/lib/dbus/machine-id
es solo un enlace simbólico/etc/machine-id
, por lo que no es necesario copiar el contenido de un archivo a otro.machine-id
D-Bus único ya que D-Bus es solo un mecanismo de IPC dentro del sistema?