Saya mengkloning disk (SSD) dan memasukkan disk kloning ke komputer lain. Sekarang kedua sistem memiliki nilai yang sama di /etc/machine-id
. Apakah ada masalah untuk mengedit hanya /etc/machine-id
untuk mengubah nilai? Bisakah saya melakukan ini saat sistem sedang berjalan (atau apakah saya perlu boot dari USB Live)?
Apakah systemd-machine-id-setup
alternatif yang lebih baik?
Penggunaan naif systemd-machine-id-setup
tidak berhasil. Saya mencoba langkah-langkah ini:
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
Nilai baru sama dengan nilai lama.
machine-id
?Jawaban:
Meskipun
systemd-machine-id-setup
dansystemd-firstboot
bagus untuk sistem yang menggunakan systemd,/etc/machine-id
bukan file systemd, terlepas dari tag. Ini juga digunakan pada sistem yang tidak menggunakan systemd. Jadi sebagai alternatif, Anda dapat menggunakandbus-uuidgen
alat ini:lalu
Seperti yang disebutkan oleh Stephen Kitt, sistem Debian mungkin memiliki a
/etc/machine-id
dan/var/lib/dbus/machine-id
file. Jika keduanya ada sebagai file biasa, isinya harus cocok, maka di sana juga hapus/var/lib/dbus/machine-id
:dan buat kembali:
Perintah terakhir ini secara implisit digunakan
/var/lib/dbus/machine-id
sebagai nama file dan akan menyalin ID mesin dari yang baru dibuat/etc/machine-id
.The
dbus-uuidgen
doa mungkin atau mungkin tidak sudah menjadi bagian dari urutan boot biasa. Jika itu adalah bagian dari urutan boot, maka menghapus file dan me-reboot harus cukup. Jika Anda perlu menjalankandbus-uuidgen
sendiri, perhatikan peringatan di halaman manual:Jadi setelah melakukan ini, pasti jangan terus menggunakan sistem tanpa me-reboot. Sebagai tindakan pencegahan tambahan, Anda dapat reboot terlebih dahulu ke mode penyelamatan (atau seperti yang Anda sarankan, boot dari stik USB langsung), tetapi dari pengalaman saya, itu tidak perlu. Hal-hal buruk dapat terjadi, tetapi hal-hal buruk yang terjadi tetap diperbaiki oleh reboot.
sumber
/var/lib/dbus/machine-id
, dan/etc/machine-id
merupakan systemd-isme (yang kompatibel dengan D-Bus)./etc
langsung saat ini (tidak ada symlink diperlukan), mungkin diletakkan di sana hanya untuk kesederhanaan: ada lebih banyak kode di luar sana yang hanya memeriksa/etc
daripada hanya memeriksa/var/lib/dbus
.systemd-machine-id-setup
menemukan salinan nilai asli di sana. Itu pada dasarnya perilaku default kecuali distro khusus menciptakan symlink.Opsi termudah adalah menghapus
/etc/machine-id
pada disk kloning dan reboot;systemd-machine-id-setup
akan menghasilkan yang baru untuk Anda (Anda harus menjalankannya secara manual jika ini tidak terjadi secara otomatis). Anda mungkin juga perlu menghapus/var/lib/dbus/machine-id
(jika itu bukan symlink ke/etc/machine-id
); dalam kasus itu, pastikan bahwa barumachine-id
benar-benar baru, dan menyalin file sehingga/etc/machine-id
dan/var/lib/dbus/machine-id
mengandung nilai yang sama.Ketika Anda mengetahuinya, menjalankan
systemd-machine-id-setup
sistem yang di-boot dengan/etc/machine-id
file akan dengan mudah mengembalikan pengenal yang di-boot-nya (dari id mesin D-Bus). Ini adalah opsi 1 di halaman yang Anda tautkan. Menghapus file dan mem-boot ulang akan menjalankan opsi 4.Untuk kepentingan pembaca yang berencana mengkloning disk dengan cara ini, pendekatan yang disarankan dengan systemd, setidaknya pada sistem di mana
systemd-firstboot
tersedia, adalah dengan menggunakannya:/mnt
);inisialisasi id mesin:
Anda dapat menggunakan
systemd-firstboot
untuk mengatur parameter lain saat Anda berada di sana (nama host, kata sandi root dll.).sumber
/etc/machine-id
tidak dibuat ulang secara otomatis jika dihapus, tidaksystemd-firstboot
ada yang tersedia. Jadi, begitu Anda menghapus file itu, Anda harus membuatnya secara manual menggunakansystemd-machine-id-setup
(dan mungkin reboot, juga)./var/lib/dbus/machine-id
hanya symlink/etc/machine-id
, jadi tidak perlu menyalin konten dari satu file ke yang lain.machine-id
D-Bus yang unik karena D-Bus hanyalah mekanisme IPC intra-sistem?