Cannot build grml from within grml

Hi,
here is my "real" problem.
(1) Using Debian sid, try building grml64-full using the command line:
sudo grml-live -A -V -u -e ~/grml-remaster/grml64-full_2017.05.iso -s stable -c DEBORPHAN,GRMLBASE,GRML_FULL,RELEASE,AMD64,IGNORE,SNAPSHOT -r "test20170830" -g grml64 -o ~/grml-remaster/tmp
This results in tmp/grml_isos/grml64_0.0.1.iso being generated.
(2) dd this iso to a LV. Configure a new VM with a CDROM drive and connect this drive to the LV containing the ISO. Boot.
Boot works.
(3) Try to re-build the grml .iso from within grml using: grml-live -V -e /dev/cdrom -o output/
this emits warnings during the build process about missing EFI files, ending in "xorriso : FAILURE : Cannot find path '/boot/efi.img' in loaded ISO image" (full log in exhibit A).
(4) configure the same VM to boot from a released grml64-full.2017.05 iso
(5) try rebuilding the grml.iso file with the same command line: grml-live -V -e /dev/cdrom -o output/
(6) see the build succeed (exhibit B).
What am I doing wrong when building grml64_0.0.1.iso so that it cannot self-reproduce, while the released grml64-full.2017.05.iso can? Any hints?
Greetings Marc
Exhibit A: root@grml ~ # grml-live -V -e /dev/cdrom -o output/ [ OK ] Sourcing configuration file /etc/grml/grml-live.conf
grml-live [0.30.1]: check your configuration (or use -F to force execution):
FAI classes: GRMLBASE,GRML_FULL,AMD64 Config directory: /etc/grml/fai main directory: /root/output Extract ISO: /dev/sr0 Chroot target: /root/output/grml_chroot Build target: /root/output/grml_cd ISO target: /root/output/grml_isos Grml name: grml Release name: grml-live rocks Build date: 2017-09-04 Grml version: 0.0.1 Debian suite: testing Architecture: amd64 Boot method: isolinux Hybrid method: isohybrid Template files: /usr/share/grml-live/templates Using VERBOSE mode.
Is this ok for you? [y/N] y
[ OK ] Logging actions to logfile /root/output/grml_logs/grml-live.log [ OK ] Unpacking ISO from /dev/sr0 Parallel unsquashfs: Using 4 processors 63157 inodes (67071 blocks) to write
[===========================================================|] 67071/67071 100%
created 57652 files created 6646 directories created 5464 symlinks created 7 devices created 0 fifos [ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already. [ OK ] No missing packages found, generating empty junit report. [ WARN ] No EFI boot files found, skipping. [ WARN ] Boot addons not found, skipping therefore. (Consider installing package grml-live-addons) [ OK ] Generating /conf/bootid.txt with entry grml001. [ WARN ] /var/log/fai/grml/last/dpkg.list could not be read, ignoring to store package information on ISO therefore. [ OK ] Finished execution of stage 'boot' [ OK ] Using mksquashfs binary mksquashfs [ OK ] Squashfs build information: running binary mksquashfs using options: -b 256k -comp xz -ef /etc/grml/fai/config/grml/squashfs-excludes -wildcards Parallel mksquashfs: Using 4 processors Creating 4.0 filesystem on /root/output/grml_cd/live/grml/grml.squashfs, block size 262144. [===========================================================|] 61600/61600 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144 compressed data, compressed metadata, compressed fragments, compressed xattrs duplicates are removed Filesystem size 561646.83 Kbytes (548.48 Mbytes) 32.08% of uncompressed filesystem size (1750975.00 Kbytes) Inode table size 556890 bytes (543.84 Kbytes) 24.01% of uncompressed inode table size (2318970 bytes) Directory table size 618535 bytes (604.04 Kbytes) 37.93% of uncompressed directory table size (1630631 bytes) Number of duplicate files found 3586 Number of inodes 69769 Number of files 57652 Number of fragments 2589 Number of symbolic links 5464 Number of device nodes 7 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 6646 Number of ids (unique uids + gids) 28 Number of uids 12 root (0) ntp (109) bacula (105) clamav (108) mail (8) partimag (110) grml (1000) nobody (65534) _apt (104) man (6) puppet (117) statd (113) Number of gids 23 root (0) bacula (109) dip (30) adm (4) shadow (42) mail (8) partimag (115) uucp (10) grml (1000) nogroup (65534) tty (5) crontab (107) utmp (43) ssh (118) uml-net (111) messagebus (116) staff (50) disk (6) man (12) puppet (122) clamav (113) ntp (114) sambashare (121) [ OK ] Finished execution of stage 'squashfs' [ OK ] Forcing rebuild of ISO because files on ISO have been modified. [ OK ] Using xorriso -as mkisofs to build ISO. [ WARN ] Disabling (U)EFI boot support because /boot/efi.img is missing. xorriso 1.4.6 : RockRidge filesystem manipulator, libburnia project.
Drive current: -outdev 'stdio:/root/output/grml_isos/grml_0.0.1.iso' Media current: stdio file, overwriteable Media status : is blank Media summary: 0 sessions, 0 data blocks, 0 data, 1564m free xorriso : WARNING : -volid text problematic as automatic mount point name xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules Added to ISO image: directory '/'='/root/output/grml_cd' xorriso : UPDATE : 947 files added in 1 seconds xorriso : UPDATE : 947 files added in 1 seconds xorriso : NOTE : Copying to System Area: 432 bytes from file '/usr/lib/ISOLINUX/isohdpfx.bin' xorriso : FAILURE : Cannot find path '/boot/efi.img' in loaded ISO image xorriso : NOTE : -return_with SORRY 32 triggered by problem severity FAILURE stat: cannot stat '/root/output/grml_isos/grml_0.0.1.iso': No such file or directory [ FAIL ] Error: there was a critical error executing stage 'iso build' grml-live -V -e /dev/cdrom -o output/ 595.04s user 7.83s system 385% cpu 2:36.40 total
Exhibit B: root@grml ~ # grml-live -V -e /dev/cdrom -o output/ [ OK ] Sourcing configuration file /etc/grml/grml-live.conf
grml-live [0.29.7]: check your configuration (or use -F to force execution):
FAI classes: GRMLBASE,GRML_FULL,AMD64 Config directory: /etc/grml/fai main directory: /root/output Extract ISO: /dev/sr0 Chroot target: /root/output/grml_chroot Build target: /root/output/grml_cd ISO target: /root/output/grml_isos Grml name: grml Release name: grml-live rocks Build date: 2017-09-04 Grml version: 0.0.1 Debian suite: testing Architecture: amd64 Boot method: isolinux Hybrid method: isohybrid Template files: /usr/share/grml-live/templates Using VERBOSE mode.
Is this ok for you? [y/N] y
[ OK ] Logging actions to logfile /root/output/grml_logs/grml-live.log [ OK ] Unpacking ISO from /dev/sr0 Parallel unsquashfs: Using 4 processors 69110 inodes (72966 blocks) to write
[===========================================================] 72966/72966 100%
created 59674 files created 6713 directories created 9365 symlinks created 37 devices created 0 fifos [ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already. [ OK ] No missing packages found, generating empty junit report. [ WARN ] Boot addons not found, skipping therefore. (Consider installing package grml-live-addons) [ OK ] Generating /conf/bootid.txt with entry grml001. [ WARN ] /var/log/fai/grml/last/dpkg.list could not be read, ignoring to store package information on ISO therefore. [ OK ] Finished execution of stage 'boot' [ OK ] Using mksquashfs binary mksquashfs [ OK ] Squashfs build information: running binary mksquashfs using options: -b 256k -comp xz -ef /etc/grml/fai/config/grml/squashfs-excludes -wildcards Parallel mksquashfs: Using 4 processors Creating 4.0 filesystem on /root/output/grml_cd/live/grml/grml.squashfs, block size 262144. [===========================================================|] 63564/63564 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144 compressed data, compressed metadata, compressed fragments, compressed xattrs duplicates are removed Filesystem size 558346.95 Kbytes (545.26 Mbytes) 31.89% of uncompressed filesystem size (1750974.64 Kbytes) Inode table size 605922 bytes (591.72 Kbytes) 23.69% of uncompressed inode table size (2557395 bytes) Directory table size 683038 bytes (667.03 Kbytes) 37.86% of uncompressed directory table size (1804190 bytes) Number of duplicate files found 5355 Number of inodes 75789 Number of files 59674 Number of fragments 2588 Number of symbolic links 9365 Number of device nodes 37 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 6713 Number of ids (unique uids + gids) 29 Number of uids 12 root (0) man (6) ntp (109) bacula (105) clamav (108) mail (8) partimag (110) grml (1000) nobody (65534) _apt (104) puppet (117) statd (113) Number of gids 24 root (0) tty (5) kmem (15) disk (6) bacula (109) dip (30) adm (4) shadow (42) mail (8) partimag (115) uucp (10) grml (1000) nogroup (65534) crontab (107) utmp (43) ssh (118) uml-net (111) messagebus (116) staff (50) man (12) puppet (122) clamav (113) ntp (114) sambashare (121) [ OK ] Finished execution of stage 'squashfs' [ OK ] Forcing rebuild of ISO because files on ISO have been modified. [ OK ] Using xorriso -as mkisofs to build ISO. [ WARN ] Disabling (U)EFI boot support because /boot/efi.img is missing. xorriso 1.4.6 : RockRidge filesystem manipulator, libburnia project.
Drive current: -outdev 'stdio:/root/output/grml_isos/grml_0.0.1.iso' Media current: stdio file, overwriteable Media status : is blank Media summary: 0 sessions, 0 data blocks, 0 data, 1565m free xorriso : WARNING : -volid text problematic as automatic mount point name xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules Added to ISO image: directory '/'='/root/output/grml_cd' xorriso : UPDATE : 681 files added in 1 seconds xorriso : UPDATE : 681 files added in 1 seconds xorriso : UPDATE : 9.90% done ISO image produced: 296581 sectors Written to medium : 296581 sectors at LBA 0 Writing to 'stdio:/root/output/grml_isos/grml_0.0.1.iso' completed successfully.
[ OK ] Creating hybrid ISO file with isohybrid method [ OK ] Detected uefi support for isohybrid, enabling isohybrid: /root/output/grml_isos/grml_0.0.1.iso: unable to find efi image [ OK ] Finished execution of stage 'iso build' [ OK ] Generated netboot package /root/output/netboot//grml_netboot_package_grml_0.0.1.tar.bz2 [ OK ] Successfully finished execution of grml-live [Mon Sep 4 09:49:01 UTC 2017 - running 164 seconds] grml-live -V -e /dev/cdrom -o output/ 607.59s user 9.67s system 374% cpu 2:45.04 total

* Marc Haber [Mon Sep 04, 2017 at 12:15:24PM +0200]:
here is my "real" problem.
(1) Using Debian sid, try building grml64-full using the command line:
sudo grml-live -A -V -u -e ~/grml-remaster/grml64-full_2017.05.iso -s stable -c DEBORPHAN,GRMLBASE,GRML_FULL,RELEASE,AMD64,IGNORE,SNAPSHOT -r "test20170830" -g grml64 -o ~/grml-remaster/tmp
This results in tmp/grml_isos/grml64_0.0.1.iso being generated.
Ok
(2) dd this iso to a LV. Configure a new VM with a CDROM drive and connect this drive to the LV containing the ISO. Boot.
Boot works.
Ok
(3) Try to re-build the grml .iso from within grml using: grml-live -V -e /dev/cdrom -o output/
this emits warnings during the build process about missing EFI files, ending in "xorriso : FAILURE : Cannot find path '/boot/efi.img' in loaded ISO image" (full log in exhibit A).
Here you're using grml-live v0.30.1
(4) configure the same VM to boot from a released grml64-full.2017.05 iso
(5) try rebuilding the grml.iso file with the same command line: grml-live -V -e /dev/cdrom -o output/
(6) see the build succeed (exhibit B).
Here you're using grml-live v0.29.7
What am I doing wrong when building grml64_0.0.1.iso so that it cannot self-reproduce, while the released grml64-full.2017.05.iso can? Any hints?
You are using different grml-live versions. Between grml-live v0.29.7 and v0.30.1 the EFI support for 32bit systems was added as well as switching from isohybrid to xorriso/isohybrid combination. The /boot/efi.img handling is quite tricky overall since it's being generated within a chroot script. This is something I've completely reworked in recent grml-live git for supporting Secure Boot, so the issue you saw with v0.30.1 *might*[1] be fixed already with latest grml-live from git.
So if you want just try the latest grml-live version from git, either with the package from https://jenkins.grml.org/job/grml-live-binaries/ or straight out of git:
export SCRIPTS_DIRECTORY=$(pwd)/scripts export GRML_FAI_CONFIG=$(pwd)/etc/grml/fai export LIVE_CONF=$(pwd)/etc/grml/grml-live.conf ./grml-live ...
[1] "might" because I've not tested your use case and I'm not 100% sure the files required by xorriso/isohybrid are really there as needed
regards, -mika-

On Wed, Sep 06, 2017 at 09:04:45AM +0200, Michael Prokop wrote:
this emits warnings during the build process about missing EFI files, ending in "xorriso : FAILURE : Cannot find path '/boot/efi.img' in loaded ISO image" (full log in exhibit A).
Here you're using grml-live v0.30.1
(4) configure the same VM to boot from a released grml64-full.2017.05 iso
(5) try rebuilding the grml.iso file with the same command line: grml-live -V -e /dev/cdrom -o output/
(6) see the build succeed (exhibit B).
Here you're using grml-live v0.29.7
What am I doing wrong when building grml64_0.0.1.iso so that it cannot self-reproduce, while the released grml64-full.2017.05.iso can? Any hints?
You are using different grml-live versions.
Thanks for spotting this.
So if you want just try the latest grml-live version from git, either with the package from https://jenkins.grml.org/job/grml-live-binaries/ or straight out of git:
export SCRIPTS_DIRECTORY=$(pwd)/scripts export GRML_FAI_CONFIG=$(pwd)/etc/grml/fai export LIVE_CONF=$(pwd)/etc/grml/grml-live.conf ./grml-live ...
I took grml-live_0.31.0+0~20170907073759.330~1.gbp7f38fb_all.deb from jenkins, and that one, invoked from within grml, fails pretty fast:
# root@grml ~ # grml-live -V -e /dev/cdrom -o output/ [ OK ] Sourcing configuration file /etc/grml/grml-live.conf
grml-live [0.31.0+0~20170907073759.330~1.gbp7f38fb]: check your configuration (or use -F to force execution):
FAI classes: GRMLBASE,GRML_FULL,AMD64 Config directory: /etc/grml/fai main directory: /root/output Extract ISO: /dev/sr0 Chroot target: /root/output/grml_chroot Build target: /root/output/grml_cd ISO target: /root/output/grml_isos Grml name: grml Release name: grml-live rocks Build date: 2017-09-10 Grml version: 0.0.1 Debian suite: testing Architecture: amd64 Boot method: isolinux Hybrid method: isohybrid Template files: /usr/share/grml-live/templates Using VERBOSE mode.
Is this ok for you? [y/N] y
[ OK ] Logging actions to logfile /root/output/grml_logs/grml-live.log [ OK ] Unpacking ISO from /dev/sr0 Parallel unsquashfs: Using 4 processors 69110 inodes (72966 blocks) to write
dir_scan: failed to make directory /root/output/grml_chroot, because File exists [| ] 0/72966 0%
created 0 files created 0 directories created 0 symlinks created 0 devices created 0 fifos [ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already. [ OK ] No missing packages found, generating empty junit report. [ OK ] Generating /conf/bootid.txt with entry grml001. [ FAIL ] Can not access GRUB efi image /root/output/grml_chroot//boot/bootx64.efi, required for Secure Boot support [ WARN ] Possible reason is failure to run /etc/grml/fai/config/scripts/GRMLBASE/45-grub-images # 50 root@grml ~ # :(
Is this a missing dependency, or am I supposed to give fai classes even when rebuilding the actual ISO?
Greetings Marc

* Marc Haber [Sun Sep 10, 2017 at 01:55:43PM +0200]:
I took grml-live_0.31.0+0~20170907073759.330~1.gbp7f38fb_all.deb from jenkins, and that one, invoked from within grml, fails pretty fast:
root@grml ~ # grml-live -V -e /dev/cdrom -o output/ [ OK ] Sourcing configuration file /etc/grml/grml-live.conf
grml-live [0.31.0+0~20170907073759.330~1.gbp7f38fb]: check your configuration (or use -F to force execution):
FAI classes: GRMLBASE,GRML_FULL,AMD64 Config directory: /etc/grml/fai main directory: /root/output Extract ISO: /dev/sr0 Chroot target: /root/output/grml_chroot Build target: /root/output/grml_cd ISO target: /root/output/grml_isos Grml name: grml Release name: grml-live rocks Build date: 2017-09-10 Grml version: 0.0.1 Debian suite: testing Architecture: amd64 Boot method: isolinux Hybrid method: isohybrid Template files: /usr/share/grml-live/templates Using VERBOSE mode.
Is this ok for you? [y/N] y
[ OK ] Logging actions to logfile /root/output/grml_logs/grml-live.log [ OK ] Unpacking ISO from /dev/sr0 Parallel unsquashfs: Using 4 processors 69110 inodes (72966 blocks) to write
dir_scan: failed to make directory /root/output/grml_chroot, because File exists [| ] 0/72966 0%
created 0 files created 0 directories created 0 symlinks created 0 devices created 0 fifos [ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already. [ OK ] No missing packages found, generating empty junit report. [ OK ] Generating /conf/bootid.txt with entry grml001. [ FAIL ] Can not access GRUB efi image /root/output/grml_chroot//boot/bootx64.efi, required for Secure Boot support [ WARN ] Possible reason is failure to run /etc/grml/fai/config/scripts/GRMLBASE/45-grub-images # 50 root@grml ~ # :(
Is this a missing dependency, or am I supposed to give fai classes even when rebuilding the actual ISO?
As reported on the actual run it defaults to "GRMLBASE,GRML_FULL,AMD64" (being AMD64 vs I386 for the corresponding architectures), though I'm missing all the scripts/GRMLBASE/ executions in your run. Not yet sure what's going on.
regards, -mika-

I retried with grml-live 0.29.7 as it is on 2017.05 proper.
On Sun, Sep 10, 2017 at 01:55:43PM +0200, Marc Haber wrote:
[ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already.
This warning is also present in the output of 0.29.7, but...
[ OK ] No missing packages found, generating empty junit report. [ OK ] Generating /conf/bootid.txt with entry grml001. [ FAIL ] Can not access GRUB efi image /root/output/grml_chroot//boot/bootx64.efi, required for Secure Boot support
... this FAIL does not happen with 0.29.7. 0.29.7 fails significantly later than 0.31.
[ WARN ] Possible reason is failure to run /etc/grml/fai/config/scripts/GRMLBASE/45-grub-images
The file is actually there. I added code to have it touch a marker file, and that file doesn't appear, so I guess the error is that 45-grub-images is never executed.
Is far executed in the first place when I use grml-live -e /dev/cdrom -o output/ to remaster?
Would grml-live 0.31 be able to remaster a disc that was made with an older version of grml-live? Which grml-live version was 2017.05 mastered with?
Greetings Marc

On Thu, Sep 14, 2017 at 09:41:55AM +0200, Marc Haber wrote:
I retried with grml-live 0.29.7 as it is on 2017.05 proper.
On Sun, Sep 10, 2017 at 01:55:43PM +0200, Marc Haber wrote:
[ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already.
This warning is also present in the output of 0.29.7, but...
[ OK ] No missing packages found, generating empty junit report. [ OK ] Generating /conf/bootid.txt with entry grml001. [ FAIL ] Can not access GRUB efi image /root/output/grml_chroot//boot/bootx64.efi, required for Secure Boot support
... this FAIL does not happen with 0.29.7. 0.29.7 fails significantly later than 0.31.
On a grml-full built on Debian unstable, with the current jenkins grml-live, using: sudo grml-live -A -V -s sid -c DEBORPHAN,GRMLBASE,GRML_FULL,RELEASE,AMD64,IGNORE,SNAPSHOT -r "test20170915" -g grml64 -o ~/grml-remaster/tmp the behavior is the same. Can't get any more current than that, can I?
I can just guess that grml-live -e /dev/cdrom doesn't copy bootx86.efi correctly from the mounted ISO image. The file _is_ in /efi/boot/bootx64.efi on the medium mounted to /lib/live/mount/medium. Where does grml-live expect it to be?
Greetings Marc

* Marc Haber [Fri Sep 15, 2017 at 02:11:41PM +0200]:
On Thu, Sep 14, 2017 at 09:41:55AM +0200, Marc Haber wrote:
I retried with grml-live 0.29.7 as it is on 2017.05 proper.
On Sun, Sep 10, 2017 at 01:55:43PM +0200, Marc Haber wrote:
[ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already.
This warning is also present in the output of 0.29.7, but...
[ OK ] No missing packages found, generating empty junit report. [ OK ] Generating /conf/bootid.txt with entry grml001. [ FAIL ] Can not access GRUB efi image /root/output/grml_chroot//boot/bootx64.efi, required for Secure Boot support
... this FAIL does not happen with 0.29.7. 0.29.7 fails significantly later than 0.31.
On a grml-full built on Debian unstable, with the current jenkins grml-live, using: sudo grml-live -A -V -s sid -c DEBORPHAN,GRMLBASE,GRML_FULL,RELEASE,AMD64,IGNORE,SNAPSHOT -r "test20170915" -g grml64 -o ~/grml-remaster/tmp the behavior is the same. Can't get any more current than that, can I?
I'd need the full command line output (including the startup message which prompts for user input before execution) to be able to tell you why:
| Executing shell: GRMLBASE/45-grub-images
doesn't seem to be executed on your system.
Though I'm a bit lost on what exactly you're doing and how your environment looks like. Should I be able to reproduce your situation with just taking the official grml64-small 2017.05 ISO and rebuild that one with grml-live -e...?
I can just guess that grml-live -e /dev/cdrom doesn't copy bootx86.efi correctly from the mounted ISO image. The file _is_ in /efi/boot/bootx64.efi on the medium mounted to /lib/live/mount/medium. Where does grml-live expect it to be?
As the error message says, it expects /boot/bootx64.efi to be there (/root/output/grml_chroot//boot/bootx64.efi in your case), that's different from /efi/boot/bootx64.efi.
regards, -mika-

On Sat, Sep 16, 2017 at 02:59:46PM +0200, Michael Prokop wrote:
- Marc Haber [Fri Sep 15, 2017 at 02:11:41PM +0200]:
On Thu, Sep 14, 2017 at 09:41:55AM +0200, Marc Haber wrote:
I retried with grml-live 0.29.7 as it is on 2017.05 proper.
On Sun, Sep 10, 2017 at 01:55:43PM +0200, Marc Haber wrote:
[ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already.
This warning is also present in the output of 0.29.7, but...
[ OK ] No missing packages found, generating empty junit report. [ OK ] Generating /conf/bootid.txt with entry grml001. [ FAIL ] Can not access GRUB efi image /root/output/grml_chroot//boot/bootx64.efi, required for Secure Boot support
... this FAIL does not happen with 0.29.7. 0.29.7 fails significantly later than 0.31.
On a grml-full built on Debian unstable, with the current jenkins grml-live, using: sudo grml-live -A -V -s sid -c DEBORPHAN,GRMLBASE,GRML_FULL,RELEASE,AMD64,IGNORE,SNAPSHOT -r "test20170915" -g grml64 -o ~/grml-remaster/tmp the behavior is the same. Can't get any more current than that, can I?
I'd need the full command line output (including the startup message which prompts for user input before execution) to be able to tell you why:
| Executing shell: GRMLBASE/45-grub-images
doesn't seem to be executed on your system.
Pasted below.
Though I'm a bit lost on what exactly you're doing
My idea is the following:
- on a disconnected, airgapped system: - boot an especially tailored grml flavor from r/o medium - generate a GnuPG Master Key - generate a new iso of the same grml flavor _including_ the key - burn that one to a new r/o medium - have a self-contained system for GnuPG operation that _includes_ the master key, eliminating the need to wriggle wround with two mediums
and how your environment looks like. Should I be able to reproduce your situation with just taking the official grml64-small 2017.05 ISO and rebuild that one with grml-live -e...?
- boot grml-full 2017.05 (the official release) - install grml-live_0.31.0+0~20170907073759.330~1.gbp7f38fb_all.deb - grml-live -e /dev/cdrom -o output/
I can just guess that grml-live -e /dev/cdrom doesn't copy bootx86.efi correctly from the mounted ISO image. The file _is_ in /efi/boot/bootx64.efi on the medium mounted to /lib/live/mount/medium. Where does grml-live expect it to be?
As the error message says, it expects /boot/bootx64.efi to be there (/root/output/grml_chroot//boot/bootx64.efi in your case)
that file is not there.
Greetings Marc
root@grml ~ # grml-live -e /dev/cdrom -o output/ [ OK ] Sourcing configuration file /etc/grml/grml-live.conf
grml-live [0.31.0+0~20170907073759.330~1.gbp7f38fb]: check your configuration (or use -F to force execution):
FAI classes: GRMLBASE,GRML_FULL,AMD64 Config directory: /etc/grml/fai main directory: /root/output Extract ISO: /dev/sr0 Chroot target: /root/output/grml_chroot Build target: /root/output/grml_cd ISO target: /root/output/grml_isos Grml name: grml Release name: grml-live rocks Build date: 2017-09-17 Grml version: 0.0.1 Debian suite: testing Architecture: amd64 Boot method: isolinux Hybrid method: isohybrid Template files: /usr/share/grml-live/templates
Is this ok for you? [y/N] y
[ OK ] Logging actions to logfile /root/output/grml_logs/grml-live.log [ OK ] Unpacking ISO from /dev/sr0 Parallel unsquashfs: Using 4 processors 69110 inodes (72966 blocks) to write
[===========================================================-] 72966/72966 100%
created 59674 files created 6713 directories created 9365 symlinks created 37 devices created 0 fifos [ WARN ] Skipping stage 'fai dirinstall' as /root/output/grml_chroot exists already. [ OK ] No missing packages found, generating empty junit report. [ OK ] Generating /conf/bootid.txt with entry grml001. [ FAIL ] Can not access GRUB efi image /root/output/grml_chroot//boot/bootx64.efi, required for Secure Boot support [ WARN ] Possible reason is failure to run /etc/grml/fai/config/scripts/GRMLBASE/45-grub-images grml-live -e /dev/cdrom -o output/ 37.49s user 3.31s system 334% cpu 12.206 total 50 root@grml ~ # ls output/grml_chroot :(

On Sun, Sep 17, 2017 at 04:15:26PM +0200, Marc Haber wrote:
On Sat, Sep 16, 2017 at 02:59:46PM +0200, Michael Prokop wrote:
I'd need the full command line output (including the startup message which prompts for user input before execution) to be able to tell you why:
| Executing shell: GRMLBASE/45-grub-images
doesn't seem to be executed on your system.
Pasted below.
Anything more I can do here?
Greetings Marc

* Marc Haber [Mon Sep 25, 2017 at 10:49:56AM +0200]:
On Sun, Sep 17, 2017 at 04:15:26PM +0200, Marc Haber wrote:
On Sat, Sep 16, 2017 at 02:59:46PM +0200, Michael Prokop wrote:
I'd need the full command line output (including the startup message which prompts for user input before execution) to be able to tell you why:
| Executing shell: GRMLBASE/45-grub-images
doesn't seem to be executed on your system.
Pasted below.
Anything more I can do here?
I've a guess what's going wrong (I'm just short of time and didn't have time to reproduce it yet). If the attached patch (against latest git) solves your issue I know what would need to be done.
regards, -mika-

On Tue, Sep 26, 2017 at 01:31:25PM +0200, Michael Prokop wrote:
From 365d35eb56f6abceb38b3f3ebc280f1ffb44b20a Mon Sep 17 00:00:00 2001 From: Michael Prokop mika@grml.org Date: Tue, 26 Sep 2017 13:29:10 +0200 Subject: [PATCH 1/1] Skip boot stuff
grml-live | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/grml-live b/grml-live index f561355d..a0917b51 100755 --- a/grml-live +++ b/grml-live @@ -972,6 +972,9 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then log "Skipping stage 'boot' as building with bootstrap only." ewarn "Skipping stage 'boot' as building with bootstrap only." ; eend 0 else
- if [ -d "$BUILD_OUTPUT"/boot/isolinux -a -z "$UPDATE" -a -z "$BUILD_ONLY" ] ; then
ewarn "Skipping boot stuff" ; eend 0
- else # booting stuff: mkdir -p "$BUILD_OUTPUT"/boot/isolinux mkdir -p "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"
@@ -1273,6 +1276,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
FORCE_ISO_REBUILD=true einfo "Finished execution of stage 'boot'" ; eend 0
- fi fi # BOOTSTRAP_ONLY
else log 'Error: Unsupported ARCH, sorry. Want to support it? Contribute!'
current git says it's 0.31.0, and there is no behavioral change with this patch applied.
Greetings Marc

* Marc Haber [Tue Sep 26, 2017 at 04:21:48PM +0200]:
current git says it's 0.31.0, and there is no behavioral change with this patch applied.
Thanks for testing, then I need some free time to reproduce it on my own, unless someone jumps in to find a solution for this problem.
regards, -mika-
Teilnehmer (2)
-
Marc Haber
-
Michael Prokop