Вопрос или проблема
Мне нужно клонировать 600 жестких дисков, оснащенных Ubuntu 16.04.2 LTS, и одна из проблем заключается в том, что клоны также копируют такие данные, как UUID и machine-id, что, как вы понимаете, может быть немного проблематично.
После обсуждения мой коллега предложил следующее:
cd /tmp
vi change_mac_id
#!/bin/sh
if [ -f /etc/machine-id ]; then
rm /etc/machine-id && \
systemd-machine-id-setup
echo "Изменено !!"
fi
Итак, мой вопрос: могу ли я создать скрипт, который будет запускаться при загрузке ОС, проверять machine-id и, ЕСЛИ он совпадает с machine-id оригинальной машины, генерировать новый?
Чтобы запустить ваш скрипт при загрузке, вы можете добавить следующее в /etc/crontab
@reboot root /usr/local/bin/myscript.sh
Ответ или решение
Для решения проблемы с клонированием дисков, которые содержат одинаковый machine-id
, необходимо создать скрипт, который будет проверять уникальный идентификатор машины при загрузке системы. Если machine-id
совпадает с оригинальным, скрипт должен генерировать новый идентификатор. Это позволит избежать неожиданных конфликтов в сетевых и программных настройках.
Подробное решение
-
Создание скрипта:
Начнем с написания скрипта, который будет выполнен при старте системы.
Шаги:
-
Откройте терминал и создайте новый файл скрипта.
cd /usr/local/bin sudo vi generate_machine_id.sh
-
Вставьте следующий код в файл
generate_machine_id.sh
:#!/bin/bash # Оригинальный machine-id, который нужно проверить ORIGINAL_MACHINE_ID="original_machine_id_here" # Путь к файлу machine-id MACHINE_ID_FILE="/etc/machine-id" # Проверяем, существует ли файл machine-id if [ -f $MACHINE_ID_FILE ]; then # Читаем текущий machine-id CURRENT_MACHINE_ID=$(cat $MACHINE_ID_FILE) # Сравниваем текущий machine-id с оригинальным if [ "$CURRENT_MACHINE_ID" == "$ORIGINAL_MACHINE_ID" ]; then echo "Machine ID совпадает с оригинальным. Генерируем новый..." rm -f $MACHINE_ID_FILE systemd-machine-id-setup echo "Machine ID успешно изменен!" else echo "Machine ID отличается от оригинального." fi else echo "Файл machine-id не найден. Генерируем новый..." systemd-machine-id-setup fi
-
Замените
original_machine_id_here
на фактическийmachine-id
оригинальной машины. Чтобы получить его, выполните команду:cat /etc/machine-id
-
Сохраните и закройте файл.
-
Сделайте скрипт исполняемым:
sudo chmod +x generate_machine_id.sh
-
-
Автоматический запуск скрипта при загрузке:
Чтобы скрипт выполнялся автоматически при каждой загрузке системы, добавьте его в crontab.
Шаги:
-
Откройте crontab для редактирования:
sudo crontab -e
-
В конце файла добавьте строку:
@reboot /usr/local/bin/generate_machine_id.sh
-
Сохраните изменения.
-
Резюме
Теперь, когда система загружается, скрипт generate_machine_id.sh
будет проверять и, если необходимо, изменять machine-id
. Это решение поможет избежать конфликтов идентификаторов в вашем окружении при клонировании HDD.
Если у вас возникнут какие-либо вопросы, не стесняйтесь обращаться за дополнительной помощью. Успехов в вашей работе с клонированием систем!