diff options
author | Mauro Santos | 2016-07-27 13:37:51 +0100 |
---|---|---|
committer | Mauro Santos | 2016-07-27 13:37:51 +0100 |
commit | 33c022b3dfd6ad48305752bbe88382d04b4fde1d (patch) | |
tree | 654c38a335343627cb9c39793e887125b599db06 /mklinuxpba-diskimg | |
parent | 710d5ababfe814315a78729b07a3833977be6eb0 (diff) | |
download | aur-33c022b3dfd6ad48305752bbe88382d04b4fde1d.tar.gz |
Misc fixes.
Diffstat (limited to 'mklinuxpba-diskimg')
-rwxr-xr-x | mklinuxpba-diskimg | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/mklinuxpba-diskimg b/mklinuxpba-diskimg new file mode 100755 index 000000000000..a5b5d4713f00 --- /dev/null +++ b/mklinuxpba-diskimg @@ -0,0 +1,69 @@ +#!/bin/bash + +mkdiskimg () { + # Prepare image file + cp /usr/lib/syslinux/bios/gptmbr.bin $1 + truncate -s 32M $1 + sgdisk -n 1:0:0 $1 + sgdisk -t 1:ef00 $1 + sgdisk -A 1:set:2 $1 + loopdev="$(losetup --show -f $1)" + partprobe $loopdev + mkfs.fat -n SEDUTILPBA "${loopdev}p1" + syslinux -i "${loopdev}p1" + + # Mount image and copy files + mount "${loopdev}p1" mnt + mkdir -p mnt/EFI/BOOT + cp /boot/$2 mnt/vmlinuz-linux + cp /boot/$3 mnt/linuxpba.img + cp /usr/lib/linuxpba/syslinux.cfg mnt/syslinux.cfg + if [[ -e /boot/intel-ucode.img ]] + then + cp /boot/intel-ucode.img mnt/intel-ucode.img + else + sed -i 's/\/intel-ucode.img,//' mnt/syslinux.cfg + fi + cp mnt/syslinux.cfg mnt/EFI/BOOT/syslinux.cfg + cp /usr/lib/syslinux/efi64/syslinux.efi mnt/EFI/BOOT/BOOTX64.EFI + cp /usr/lib/syslinux/efi64/ldlinux.e64 mnt/EFI/BOOT + + # Unmount image + umount mnt + losetup -d "$loopdev" +} + + +if [[ ! -e /usr/bin/extlinux ]] +then + echo "syslinux is not installed: nothing to do." + exit 1 +fi + +mklinuxpba-initramfs + +kernel_release="$(uname -r)" + +case "${kernel_release##*-}" in + "ARCH") + kernel_image="vmlinuz-linux" + ;; + "lts") + kernel_image="vmlinuz-linux-lts" + ;; + *) + echo "The currenly running kernel is not supported." + exit 1 + ;; +esac + +mkdir -p "/tmp/linuxpbatemp/mnt" +pushd "/tmp/linuxpbatemp" + +mkdiskimg linuxpba.diskimg $kernel_image linuxpba.img +mkdiskimg linuxpba-fallback.diskimg $kernel_image linuxpba-fallback.img + +mv linuxpba.diskimg linuxpba-fallback.diskimg /boot +cd /tmp +rmdir -p linuxpbatemp/mnt +popd |