ディスク(SSD)を複製し、複製したディスクを別のマシンに配置しました。これで、両方のシステムの/etc/machine-id
の値が同じになります。 /etc/machine-id
を編集して値を変更するだけでも問題ありませんか?システムの実行中にこれを実行できますか(またはライブUSBから起動する必要がありますか)?
systemd-machine-id-setup
がより良い代替案ですか?
systemd-machine-id-setup
の単純な使用は機能しません。私はこれらのステップを試しました:
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
新しい値は古い値と同じです。
systemd-machine-id-setup
およびsystemd-firstboot
はsystemdを使用するシステムには最適ですが、/etc/machine-id
はタグに関係なくsystemdファイルではありません。 systemdを使用しないシステムでも使用されます。したがって、代わりにdbus-uuidgen
ツールを使用できます。
rm -f /etc/machine-id
その後
dbus-uuidgen --ensure=/etc/machine-id
Stephen Kittが述べたように、Debianシステムには/etc/machine-id
ファイルと/var/lib/dbus/machine-id
ファイルの両方がある場合があります。両方が通常のファイルとして存在する場合、それらの内容は一致する必要があるため、/var/lib/dbus/machine-id
も削除します。
rm /var/lib/dbus/machine-id
それを再作成します:
dbus-uuidgen --ensure
この最後のコマンドは、暗黙的に/var/lib/dbus/machine-id
をファイル名として使用し、すでに新しく生成された/etc/machine-id
からマシンIDをコピーします。
dbus-uuidgen
の呼び出しは、通常のブートシーケンスの一部である場合とそうでない場合があります。起動シーケンスの一部である場合は、ファイルを削除して再起動するだけで十分です。 dbus-uuidgen
を自分で実行する必要がある場合は、manページの警告に注意してください。
実行中のシステムで既存のmachine-idを変更しようとすると、おそらく問題が発生します。このファイルを変更しないでください。また、2つの異なるシステムで同じにしないでください。 2つの異なるカーネルが実行されている場合は常に異なる必要があります。
したがって、これを行った後は、再起動せずにシステムを使用し続けないでください。追加の予防策として、代わりに最初に再起動してレスキューモードで起動することもできます(または、提案どおり、ライブUSBスティックから起動します)。ただし、私の経験では、これは必要ありません。悪いことが起こるかもしれませんが、起こる悪いことはとにかく再起動によって修正されます。
最も簡単なオプションは、クローンディスクから/etc/machine-id
を削除して再起動することです。 systemd-machine-id-setup
は新しいものを生成します(これが自動的に行われない場合は、手動で実行する必要があります)。 /var/lib/dbus/machine-id
を削除する必要がある場合もあります(/etc/machine-id
へのシンボリックリンクでない場合)。その場合は、新しいmachine-id
が本当に新しいことを確認し、/etc/machine-id
と/var/lib/dbus/machine-id
に同じ値が含まれるようにファイルをコピーします。
ご存知のように、systemd-machine-id-setup
ファイルでブートされたシステムで/etc/machine-id
を実行すると、ブートされた識別子が(D-BusマシンIDから)復元されます。これは、リンク先のマンページのオプション1です。ファイルを削除して再起動すると、オプション4が実行されます。
この方法でディスクのクローンを作成する読者の計画のために、少なくとも systemd-firstboot
が利用可能です。代わりにそれを使用します。
/mnt
);マシンIDを初期化します。
systemd-firstboot --root=/mnt --setup-machine-id
systemd-firstboot
を使用して、作業中に他のパラメーター(ホスト名、ルートパスワードなど)を設定できます。