# -*- mode: yaml; indent-tabs-mode: nil; tab-width: 2; coding: utf-8-unix -*- --- - name: "DEBUG: ansible-gentoo_install bootloader" debug: verbosity: 1 msg: "DEBUG: ansible-gentoo_install bootloader" - name: test we are in the chroot shell: | df | grep {{AGI_install_disk}} && exit 1 check_mode: false - name: install grub or syslinx portage: package: sys-boot/{{AGI_install_bootloader}} state: installed - block: - name: setup syslinux shell: | [ -d /boot/syslinux ] || mkdir /boot/syslinux [ -f /boot/syslinux/syslinux.cfg ] || \ cat > /boot/syslinux/syslinux.cfg << EOF # -*-mode: sh; tab-width: 8; coding: utf-8-dos -*- default vesamenu.c32 prompt 0 # timeout 150 menu title nbd2 menu background splash.png menu color title 1;36;44 #c0ffffff #00000000 std menu color sel 7;37;40 #e0000000 #20ECEAC7 all menu rows 15 menu tabmsgrow 21 menu timeoutrow 23 menu helpmsgrow 23 # drm.debug=0xe # rd.shell rd.debug label pentoo2019-Pen19-6.1.52-pentoo_2023_09_30_0x037f menu label pentoo2019_Pen19_6.1.52-pentoo_2023_09_30_0x037f menu default kernel /vmlinuz-6.1.52-pentoo_2023_09_30 INITRD /initramfs-pentoo-x86_64-6.1.52-pentoo_2023_09_30.img # was vga=0x315 APPEND root=LABEL=root {{''.join(AGI_install_syslinux_kernel_commands)}} label MAIN hd0 MBR menu label MAIN hd0 0 com32 chain.c32 APPEND hd0 EOF [ ! -d /usr/share/syslinux/ ] || \ for elt in {{' '.join(AGI_install_syslinux_c32)}}; do [ -f /boot/syslinux/$elt ] && continue cp -np /usr/share/syslinux/$elt /boot/syslinux done exit 0 - name: do syslinux install manually shell: | df | grep {{AGI_install_disk}} && \ echo ERROR: somethings wrong - {{AGI_install_disk}} isnt mounted && exit 1 # should unmount it? dd if={{AGI_install_disk}}p1 count=440 bs=1|strings|grep SYSLINUX [ $? -eq 0 ] && exit 0 echo HALT: YOU MUST INSTALL THE MBR YOURSELF - do this echo dd if=/usr/share/syslinux/mbr.bin of={{AGI_install_disk}}p1 count=440 bs=1 conv=notrunc echo HALT: YOU MUST INSTALL SYSLINUX YOURSELF - do this syslinux -d syslinux --install {{AGI_install_disk}}p1 exit 999 register: syslinux_out failed_when: false - name: install syslinux install manually fail: msg: "HALT: install syslinux install manually" when: syslinux_out.rc != 0 when: AGI_install_bootloader == 'syslinux' - block: - name: install grub to MBR command: grub-install {{ AGI_install_disk }} args: creates: /boot/grub - name: generate grub config shell: grub-mkconfig -o /boot/grub/grub.cfg args: creates: /boot/grub/grub.cfg - name: edit grub config shell: | [ -f /etc/default/grub.dst ] || cp -p /etc/default/grub /etc/default/grub.dst a=$(cat /proc/cmdline | sed -e 's/ BOOT_IMAGE=[^ ]*/ /' \ -e 's/ initrd=[^ ]*/ /' -e 's/ resume=[^ ]*/ /' -e 's/ root=[^ ]*/ /') sed -e "s/^#*GRUB_CMDLINE_LINUX=\"\"/GRUB_CMDLINE_LINUX=\"$a\"/" \ -i /etc/default/grub grub-script-check /etc/default/grub - name: roles/ansible-gentoo_install/tasks/ shell: | LINE="rd.skipfsck=1 ipv6.disable=1 console=ttys0 lang=en keymap=us " # LINE="$LINE pti=on doscsi iommu=pt amd_iommu=on debugfs=off efi=disable_early_pci_dma extra_latent_entropy init_on_free=1 kvm.nx_huge_pages=force l1tf=full,force mce=0 mds=full,nosmt nosmt=force page_alloc.shuffle=1 pti=on random.trust_cpu=off slab_nomerge slub_debug=FZ spec_store_bypass_disable=on spectre_v2=on tsx_async_abort=full,nosmt vsyscall=none " LINE="$LINE intel_iommu=on vga=0x315 text df | grep /boot || mount /dev/vda1 /boot [ -d /boot/grub ] || exit 2 [ -f /boot/grub/grub.cfg ] || exit 3 cd / # boot/initramfs-pentoo-x86_64-6.1.52-pentoo_2023_09_30.img - name: /etc/default/grub lineinfile: dest: /etc/default/grub line: '{{item.from}}="{{item.to}}"' regexp: '^#*{{item.from}}=.*' with_items: # Append parameters to the linux kernel command line for non-recovery entries - from: GRUB_CMDLINE_LINUX_DEFAULT to: " rd.skipfsck=1 ipv6.disable=1 console=ttyS0 lang=en keymap=us intel_iommu=on vga=0x315 text" # The resolution used on graphical terminal. # Note that you can use only modes which your graphic card supports via VBE. # You can see them in real GRUB with the command `vbeinfo'. - from: GRUB_GFXMODE to: 640x480 # Set to 'text' to force the Linux kernel to boot in normal text - from: GRUB_GFXPAYLOAD_LINUX to: text # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to kernel - from: GRUB_DISABLE_LINUX_UUID to: true when: AGI_install_bootloader == 'grub:2' - name: fstab root lineinfile: dest: /etc/fstab line: '{{AGI_container_disk}}3 / ext4 defaults,noatime 0 1' regexp: '^{{AGI_container_disk}}3' - name: fstab boot lineinfile: dest: /etc/fstab line: '{{AGI_container_disk}}1 /boot ext3 defaults,noatime 0 1' regexp: '^{{AGI_container_disk}}3' - name: fstab swap lineinfile: dest: /etc/fstab line: '{{AGI_container_disk}}2 none swap nofail,sw 0 0' regexp: '^{{AGI_container_disk}}2' - name: fstab shm lineinfile: dest: /etc/fstab line: 'tmpfs /run/shm tmpfs defaults,noexec,size=5% 0 0' regexp: '^tmpfs */run/shm' # linuxPen19 /mnt/linuxPen19 virtiofs defaults,dirsync 0 0 - name: /etc/security/passwdqc.conf lineinfile: dest: /etc/security/passwdqc.conf line: 'enforce=none' regexp: '^enforce=.*' - name: /etc/security/passwdqc.conf lineinfile: dest: /etc/security/passwdqc.conf line: 'enforce=none' regexp: '^enforce=.*' - name: /etc/conf.d/consolefont lineinfile: dest: /etc/conf.d/consolefont line: 'consolefont="ter-v{{AGI_consolefont_font_size}}b"' regexp: '^consolefont=.*' - name: consolefont shell: | grep -q /etc/init.d/consolefont /etc/rc.local || \ cat >> /etc/rc.local << EOF #!/bin/sh /etc/init.d consolefont stop /etc/init.d consolefont start # these are right for ter-v28b consolefont if tty|grep -q /dev/ttyS0 ; then stty cols 80 rows 35 elif tty|grep -q /dev/tty[1-6] ; then stty cols 80 rows 22 fi EOF chmod 755 /etc/rc.local ignore_errors: true - name: rc-update add bootlogd boot shell: | [ -d /etc/modules-load.d ] || mkdir /etc/modules-load.d [ -f /etc/modules-load.d/virtio.conf ] || \ echo "{{'\n'.join(AGI_bootstrap_modules)}}" \ > /etc/modules-load.d/virtio.conf rc-update add consolefont rc-update | grep -q 'bootlogd .* boot' || \ rc-update add bootlogd boot grep -q '^s0:' /etc/inittab || \ sed -e 's/^#s0:/s0:/' /etc/inittab exit 0