
Update image-builder for UEFI dual-boot, as was being done in iso-builder previously. Change-Id: Iadd2aed03db490c5ccd5574b0086580759f6f7f1
81 lines
2.4 KiB
YAML
81 lines
2.4 KiB
YAML
- name: ansible copy file locally - vmlinuz.
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: "{{ root_image }}/vmlinuz"
|
|
remote_src: yes
|
|
with_fileglob: "{{ root_chroot }}/boot/vmlinuz-*"
|
|
|
|
- name: ansible copy file locally - initrd.
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: "{{ root_image }}/initrd"
|
|
remote_src: yes
|
|
with_fileglob: "{{ root_chroot }}/boot/initrd.img-*"
|
|
|
|
- name: ansible copy file locally - config.
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: "{{ root_image }}/config"
|
|
remote_src: yes
|
|
with_fileglob: "{{ root_chroot }}/boot/config-*"
|
|
|
|
- name: "Stamp out a marker file for grub to use when identifying the desired boot volume"
|
|
copy:
|
|
#TODO: populate this with meaningful content
|
|
content: "{{ ansible_date_time.date }}"
|
|
dest: "{{ root_image }}/AIRSHIP_EPHEMERAL"
|
|
|
|
- name: "create directory for boot image assembly"
|
|
tempfile:
|
|
state: directory
|
|
suffix: bootimg
|
|
register: bootimg_builddir
|
|
|
|
- name: "write out grub config"
|
|
template:
|
|
src: grub-livecd.cfg.j2
|
|
dest: "{{ bootimg_builddir.path }}/grub.cfg"
|
|
|
|
- name: "making standalone grub - efi"
|
|
shell:
|
|
cmd: |
|
|
grub-mkstandalone \
|
|
--format=x86_64-efi \
|
|
--output="{{ bootimg_builddir.path }}/bootx64.efi" \
|
|
--locales="" \
|
|
--fonts="" \
|
|
boot/grub/grub.cfg="{{ bootimg_builddir.path }}/grub.cfg"
|
|
|
|
- name: "setup efi filesystem"
|
|
shell:
|
|
cmd: |
|
|
set -e
|
|
cd {{ bootimg_builddir.path }}
|
|
dd if=/dev/zero of=efiboot.img bs=1M count=10
|
|
mkfs.vfat efiboot.img
|
|
LC_CTYPE=C mmd -i efiboot.img efi efi/boot
|
|
LC_CTYPE=C mcopy -i efiboot.img ./bootx64.efi ::efi/boot/
|
|
|
|
- name: "making standalone grub - legacy"
|
|
shell:
|
|
cmd: |
|
|
grub-mkstandalone \
|
|
--format=i386-pc \
|
|
--output="{{ bootimg_builddir.path }}/core.img" \
|
|
--install-modules="linux normal iso9660 biosdisk memdisk search tar ls all_video" \
|
|
--modules="linux normal iso9660 biosdisk search" \
|
|
--locales="" \
|
|
--fonts="" \
|
|
boot/grub/grub.cfg="{{ bootimg_builddir.path }}/grub.cfg"
|
|
|
|
- name: "ensuring directory {{ root_image }}/boot/grub exists"
|
|
file:
|
|
path: "{{ root_image }}/boot/grub"
|
|
state: directory
|
|
mode: '0755'
|
|
- name: "assembling boot img"
|
|
shell:
|
|
cmd: |
|
|
cat /usr/lib/grub/i386-pc/cdboot.img {{ bootimg_builddir.path }}/core.img > {{ root_image }}/boot/grub/bios.img
|
|
cp {{ bootimg_builddir.path }}/efiboot.img {{ root_image }}/boot/grub/
|