[arch-releng] [PATCH 2/2] Use a label when generating the image and pass it to the commandline This will generate a label ARCHISO_$randomstring using the pwgen utility and add this label to the kernel command line. A new label will be generated for each image, so it can be uniquely identified.

Thomas Bächler thomas at archlinux.org
Fri Jul 24 21:21:15 EDT 2009


---
 archiso/mkarchiso                                  |    7 ++++++-
 configs/install-iso/Makefile                       |    4 ++--
 configs/install-iso/boot-files/grub/menu.lst       |    4 ++--
 .../install-iso/boot-files/isolinux/isolinux.cfg   |    4 ++--
 4 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/archiso/mkarchiso b/archiso/mkarchiso
index 530403c..9d2dd30 100755
--- a/archiso/mkarchiso
+++ b/archiso/mkarchiso
@@ -214,6 +214,10 @@ _imgcommon () {
     fi
 
     cp "${work_dir}/isomounts" "${work_dir}/iso/"
+
+    export LABEL="ARCHISO_$(pwgen -n 8 1 | tr [a-z] [A-Z])"
+    [ -f ${work_dir}/iso/boot/grub/menu.lst ] && sed "s|archisolabel=[^ ]*|archisolabel=${LABEL}|" -i ${work_dir}/iso/boot/grub/menu.lst
+    [ -f ${work_dir}/iso/boot/isolinux/isolinux.cfg ] && sed "s|archisolabel=[^ ]*|archisolabel=${LABEL}|" -i ${work_dir}/iso/boot/isolinux/isolinux.cfg
 }
 
 command_iso () {
@@ -251,6 +255,7 @@ command_iso () {
         -no-emul-boot -boot-load-size 4 -boot-info-table \
         -publisher "Arch Linux <http://www.archlinux.org>" \
         -A "Arch Linux Live/Rescue CD" \
+        -V "${LABEL}" \
         -o "${imgname}" "${work_dir}/iso/"
 }
 
@@ -267,7 +272,7 @@ command_usb () {
     dd if=/dev/zero of="$fsimg" bs=512 count="$imgsz"
 
     # create a filesystem on the image
-    mke2fs -m 0 -F "$fsimg"
+    mke2fs -m 0 -F -L "${LABEL}" "$fsimg"
 
     # mount the filesystem and copy data
     modprobe loop
diff --git a/configs/install-iso/Makefile b/configs/install-iso/Makefile
index 77ed056..fbac10e 100644
--- a/configs/install-iso/Makefile
+++ b/configs/install-iso/Makefile
@@ -43,8 +43,8 @@ base-iso: root-image
 	cp isomounts $(WORKDIR)
 	sed -i "s|@ARCH@|$(ARCH)|g" "$(WORKDIR)/isomounts"
 	
-	mkinitcpio -c initcpio-ide -b $(WORKDIR)/root-image -k $(kver) -g $(WORKDIR)/iso/boot/archiso_ide.img
-	mkinitcpio -c initcpio-pata -b $(WORKDIR)/root-image -k $(kver) -g $(WORKDIR)/iso/boot/archiso_pata.img
+	mkinitcpio -c ./initcpio-ide -b $(WORKDIR)/root-image -k $(kver) -g $(WORKDIR)/iso/boot/archiso_ide.img
+	mkinitcpio -c ./initcpio-pata -b $(WORKDIR)/root-image -k $(kver) -g $(WORKDIR)/iso/boot/archiso_pata.img
 
 core-pkgs: base-iso
 	mkdir $(WORKDIR)/core-pkgs/
diff --git a/configs/install-iso/boot-files/grub/menu.lst b/configs/install-iso/boot-files/grub/menu.lst
index fd5a4bc..41a72f9 100644
--- a/configs/install-iso/boot-files/grub/menu.lst
+++ b/configs/install-iso/boot-files/grub/menu.lst
@@ -4,11 +4,11 @@ color light-blue/blue black/light-grey
 splashimage=/boot/splash.xpm.gz
 
 title  Boot Arch Linux Live CD
-kernel /boot/vmlinuz26 lang=en locale=en_US.UTF-8 usbdelay=5 ramdisk_size=75%
+kernel /boot/vmlinuz26 lang=en locale=en_US.UTF-8 archisolabel=XXX ramdisk_size=75%
 initrd /boot/archiso_pata.img
 
 title  Boot Arch Linux Live CD [Legacy IDE, no SATA]
-kernel /boot/vmlinuz26 lang=en locale=en_US.UTF-8 usbdelay=5 ramdisk_size=75%
+kernel /boot/vmlinuz26 lang=en locale=en_US.UTF-8 archisolabel=XXX ramdisk_size=75%
 initrd /boot/archiso_ide.img
 
 title Release Notes
diff --git a/configs/install-iso/boot-files/isolinux/isolinux.cfg b/configs/install-iso/boot-files/isolinux/isolinux.cfg
index d9e5084..793271e 100644
--- a/configs/install-iso/boot-files/isolinux/isolinux.cfg
+++ b/configs/install-iso/boot-files/isolinux/isolinux.cfg
@@ -8,11 +8,11 @@ DEFAULT arch
 
 LABEL arch
 KERNEL /boot/vmlinuz26
-APPEND lang=en locale=en_US.UTF-8 usbdelay=5 ramdisk_size=75% initrd=/boot/archiso_pata.img
+APPEND lang=en locale=en_US.UTF-8 archisolabel=XXX ramdisk_size=75% initrd=/boot/archiso_pata.img
 
 LABEL archide
 KERNEL /boot/vmlinuz26
-APPEND lang=en locale=en_US.UTF-8 usbdelay=5 ramdisk_size=75% initrd=/boot/archiso_ide.img
+APPEND lang=en locale=en_US.UTF-8 archisolabel=XXX ramdisk_size=75% initrd=/boot/archiso_ide.img
 
 LABEL memtest
 KERNEL /boot/memtest
-- 
1.6.3.3



More information about the arch-releng mailing list