bootfs.sh 788 B

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/sh
  2. set -e
  3. rm -fr bootfs/linux; mkdir -p bootfs/linux
  4. cp initrd.img bootfs/linux/initrd
  5. cp rootfs/boot/vmlinuz-linux bootfs/linux/kernel
  6. bootskip=32
  7. bootsize=`du -sbk bootfs | sed -e 's/\t.*//'`
  8. bootsize=$((bootsize+1024+1024-1))
  9. bootsize=$((bootsize/1024*1024*2 - bootskip))
  10. echo "bootsize=$bootsize"
  11. img=bootfs.img
  12. dd if=/dev/zero of=$img bs=512 count=$bootsize status=none
  13. syslinux=/usr/lib/syslinux
  14. mkfs.fat $img
  15. mmd -i $img ::/EFI
  16. mmd -i $img ::/EFI/BOOT
  17. mcopy -i $img bootfs/* ::
  18. mcopy -i $img $syslinux/efi64/syslinux.efi ::/EFI/BOOT/BOOTX64.EFI
  19. mcopy -i $img $syslinux/efi64/ldlinux.e64 ::/EFI/BOOT/ldlinux.e64
  20. mcopy -i $img $syslinux/efi32/syslinux.efi ::/EFI/BOOT/BOOTAI32.EFI
  21. mcopy -i $img $syslinux/efi32/ldlinux.e32 ::/EFI/BOOT/ldlinux.e32
  22. syslinux -i $img