whole.sh 726 B

123456789101112131415161718192021222324252627
  1. #!/bin/sh
  2. bootskip=32
  3. bootsize=`du -sbk bootfs.img | sed -e 's/\t.*//'`
  4. rootsize=`du -sbk rootfs.img | sed -e 's/\t.*//'`
  5. bootsize=$((bootsize*2))
  6. rootsize=$((rootsize*2))
  7. rootskip=$((bootskip+bootsize))
  8. totalsize=$((bootskip+bootsize+rootsize))
  9. syslinux=/usr/lib/syslinux
  10. dd of=whole.img if=/dev/zero bs=512 count=$totalsize status=none
  11. dd of=whole.img if=$syslinux/bios/mbr.bin conv=notrunc status=none
  12. sfdisk -q whole.img <<END
  13. label: dos
  14. label-id: 0x11223344
  15. 1: start=$bootskip, size=$bootsize, type=ef, bootable
  16. 2: start=$rootskip, size=$rootsize, type=83
  17. END
  18. dd of=whole.img if=bootfs.img bs=512 seek=$bootskip conv=notrunc status=none
  19. dd of=whole.img if=rootfs.img bs=512 seek=$rootskip conv=notrunc status=none