You are not logged in.
Hi,
I have created a custom ISO for Arch Linux using archiso that provides the base Arch Linux installation ISO, except with the tools required to connect to the Wi-Fi on laptops with Broadcom chips and here is its GitHub repository. The problem is that for a reason that completely escapes me whenever I run the build.sh script (using
./build.sh -v
) inside its archlive folder (which, along with the customrepo folder of this GitHub repository, I move to my /root directory when I try to build my custom ISO) I get the error:
[mkarchiso] INFO: Done!
[mkarchiso] INFO: Creating checksum file for self-test...
[mkarchiso] INFO: Done!
[mkarchiso] INFO: Configuration settings
[mkarchiso] INFO: Command: iso
[mkarchiso] INFO: Architecture: x86_64
[mkarchiso] INFO: Working directory: work
[mkarchiso] INFO: Installation directory: arch
[mkarchiso] INFO: Image name: archlinux-2016.06.24-dual.iso
[mkarchiso] INFO: Disk label: ARCH_201606_fe777367668678698923714f5bc4ca788efab03d
[mkarchiso] INFO: Disk publisher: Arch Linux <http://www.archlinux.org>
[mkarchiso] INFO: Disk application: Arch Linux Live/Rescue CD
[mkarchiso] INFO: Creating ISO image...
xorriso 1.4.2 : RockRidge filesystem manipulator, libburnia project.
Drive current: -outdev 'stdio:out/archlinux-2016.06.24-dual.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 161g free
xorriso : FAILURE : -volid: Text too long (52 > 32)
xorriso : aborting : -abort_on 'FAILURE' encountered 'FAILURE'
In my own efforts to debug this problem I decided to see if there were any significant differences between my build.sh file and the default releng build.sh script, which I did by running:
sudo diff -u /usr/share/archiso/configs/releng/build.sh /root/archlive/build.sh > build.patch
(if you are wondering whether my releng directory is out of date because my archiso package is out-of-date, well it's not because I run
pacman -Syu --noconfirm
on an hourly basis). This build.patch file has these contents (which as you can see should only affect the name and label of the ISO):
--- /usr/share/archiso/configs/releng/build.sh 2016-06-01 08:31:01.000000000 +1000
+++ /root/archlive/build.sh 2016-06-01 13:54:52.454753926 +1000
@@ -3,7 +3,9 @@
set -e -u
iso_name=archlinux
-iso_label="ARCH_$(date +%Y%m)"
+_gitcommit=fe777367668678698923714f5bc4ca788efab03d
+#$(git log --name-status HEAD^..HEAD | sed -n -e 's/commit //p')
+iso_label="ARCH_$(date +%Y%m)_${_gitcommit}"
iso_version=$(date +%Y.%m.%d)
install_dir=arch
work_dir=work
So I must admit I am rather confused as to what I need to do now.
Thanks for your time,
Brenton
Last edited by fusion809 (2016-06-24 11:52:56)
Offline
Hi,
the problem is that you try to squeeze 52 bytes into the ISO 9660
Volume ID, which can take only 32 bytes.
(See ECMA-119, 8.4.6 "Volume Identifier".)
I assume $iso_label gets used as parameter of xorrisofs option -V
(aka -volid). At least the error message matches the number of
40 $gitcommit bytes plus 12 bytes of "ARCH_201606_" (from
"ARCH_$(date +%Y%m)_").
You will have to substitute $gitcommit by something that is not
longer than 20 bytes. You may gain some room for more bytes by reducing
the length of "ARCH_201606_", but 32 is the absolute limit.
Have a nice day
Thomas
Offline
Thank you so very much! I have been struggling with this and similar ISO issues for months.
Offline