Commit 0f8e976f authored by Dmitriy Terekhin's avatar Dmitriy Terekhin Committed by Anton Midyukov

uuid-iso: create UUID for ISO image

By default, when building an image, xorriso generates an image UUID of the form YYYY-MM-DD-hh-mm-ss-cc from the current time. If the xorriso command line has a parameter -volume_date uuid YYYYMMDDhhmmsscc then the UUID of the image is generated from it. This feature reads the current time and creates variables: UUID_ISO containing YYYY-MM-DD-hh-mm-ss-cc UUID_ISO_SHRT containing YYYYMMDDhhmmsscc Also add 60-cdrom_id.rules to initrd This allows to identify CD/DVD by UUID and use to boot the installer method:disk,uuid:YYYY-MM-DD-hh-mm-ss-cc
parent 7fdc5f83
По умолчанию при сборке образа xorriso генерирует UUID образа
вида YYYY-MM-DD-hh-mm-ss-cc из текущего времени.
Если в командной строке xorriso есть пареметр
-volume_date uuid YYYYMMDDhhmmsscc
то UUID образа генерируется из него.
Данная фича читает текущее время и создаёт переменные:
UUID_ISO, содержащую YYYY-MM-DD-hh-mm-ss-cc
UUID_ISO_SHRT, содержащую YYYYMMDDhhmmsscc
Также фича добавляет в initrd файл
/lib/udev/rules.d/60-cdrom_id.rules
Это позволяет идентифицировать CD/DVD по UUID
и использовать для загрузки инсталлятора
method:disk,uuid:YYYY-MM-DD-hh-mm-ss-cc
UUID_ISO = $(shell date -u +%Y-%m-%d-%H-%M-%S-00)
UUID_ISO_SHRT = $(shell echo $(UUID_ISO) | sed 's/-//g')
use/uuid-iso:
@$(call add_feature)
@$(call set,UUID_ISO_SHRT,$(UUID_ISO_SHRT))
@$(call set,UUID_ISO,$(UUID_ISO))
@$(call xport,UUID_ISO)
#!/bin/sh
# add 60-cdrom_id.rules to identify CD/DVD by UUID
# if it's available
if [ -f /lib/udev/rules.d/60-cdrom_id.rules ]; then
echo "PUT_FILES += /lib/udev/rules.d/60-cdrom_id.rules" >> /etc/initrd.mk
else
echo "uuid-iso, 20-initrd-cdrom: skipping 60-cdrom_id.rules (missing)"
fi
#!/bin/sh
# postprocess configurations
# set special automatic method
# workaround the bug 39811
gcfg='boot/grub/grub.cfg'
scfg='syslinux/*.cfg'
cd "$WORKDIR"
# apply method disk with uuid if available
[ -n "$GLOBAL_UUID_ISO" ] || exit 0
if [ -n "$(find $scfg)" ]; then
sed -i "s/automatic=method:cdrom/automatic=method:disk,uuid:$GLOBAL_UUID_ISO/" $scfg
fi
if [ -f "$gcfg" ]; then
sed -i "s/automatic=method:cdrom/automatic=method:disk,uuid:$GLOBAL_UUID_ISO/" $gcfg
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment