iso_olustur.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. # temel sistemin olduğu dizin
  3. if [ -z $ROOTFS ];then
  4. ROOTFS="/home/mlfs/onsistem"
  5. fi
  6. if [ ! -z $1 ];then
  7. ROOTFS="$1"
  8. fi
  9. if [ ! -d $ROOTFS ];then
  10. echo "$ROOTFS dizini mevcut değil!"
  11. exit 1
  12. fi
  13. hata_olustu(){
  14. echo "$1"
  15. exit 1
  16. }
  17. #[ ! -f $ROOTFS/boot/kernel ] && hata_olustu "$ROOTFS/boot/kernel bulunamadı"
  18. [ ! -f $ROOTFS/boot/initrd_live ] && hata_olustu "$ROOTFS/boot/initrd_live bulunamadı"
  19. # temizlik
  20. if [ -d iso ];then
  21. rm -fv iso/boot/kernel*
  22. rm -fv iso/boot/initrd*
  23. rm -fv iso/efiboot.img
  24. rm -rfv iso/LiveOS
  25. rm -rvf $ROOTFS/var/cache/mps/depo/*.mps.lz
  26. fi
  27. echo "Güncel kernel ve initramfs kopyalanıyor..."
  28. kversion=`ls $ROOTFS/boot/kernel-* | xargs -I {} basename {} | head -n1 |cut -d'-' -f2`
  29. cp -rvf $ROOTFS/boot/kernel-${kversion} iso/boot/kernel
  30. cp -rvf $ROOTFS/boot/initrd_live iso/boot/initrd-${kversion}
  31. cp -rvf $ROOTFS/boot/initrd_live iso/boot/initrd
  32. # LiveOS ayarları
  33. echo "LiveOS ayarları yapılıyor..."
  34. # varsa temp-root/ ve tmp/ umount edil silelim
  35. if [ -d temp-root ]; then
  36. mountpoint -q temp-root && umount -l temp-root
  37. rm -rf temp-root
  38. fi
  39. [[ -d tmp ]] && rm -rf tmp
  40. #
  41. mkdir -p tmp/LiveOS
  42. fallocate -l 8G tmp/LiveOS/rootfs.img
  43. mke2fs -t ext4 -L MILIS_CALISAN -F tmp/LiveOS/rootfs.img
  44. mkdir -p temp-root
  45. mount -o loop tmp/LiveOS/rootfs.img temp-root
  46. echo "Chroot içerik dosya sistemi imajına kopyalanıyor..."
  47. cp -dpR $ROOTFS/* temp-root/
  48. umount -l temp-root && rm -rf temp-root
  49. mkdir -p iso/LiveOS
  50. echo "Dosya sistemi imajı sıkıştırılıyor..."
  51. mksquashfs tmp iso/LiveOS/squashfs.img -comp xz -b 256K -Xbcj x86
  52. chmod 444 iso/LiveOS/squashfs.img
  53. rm -rf tmp
  54. echo "Efi ayarları yapılıyor..."
  55. mkdir -p iso/efi_tmp
  56. dd if=/dev/zero bs=1M count=60 of=./iso/efiboot.img
  57. mkfs.vfat -n Milis_EFI ./iso/efiboot.img
  58. mount -o loop ./iso/efiboot.img ./iso/efi_tmp
  59. cp -rf ./iso/boot/kernel ./iso/efi_tmp/
  60. cp -rf ./iso/boot/initrd ./iso/efi_tmp/
  61. cp -rf ./efi/* ./iso/efi_tmp/
  62. umount ./iso/efi_tmp
  63. rm -rf ./iso/efi_tmp
  64. month="$(date -d "$D" '+%m')"
  65. day="$(date -d "$D" '+%d')"
  66. echo "milis-2.0-B${month}.${day}" > ./iso/updates/etc/milis-surum
  67. echo "Iso dosyası hazırlanıyor..."
  68. #cp $ROOTFS/usr/lib/syslinux/isohdpfx.bin iso/boot/isolinux/isohdpfx.bin
  69. xorriso -as mkisofs \
  70. -iso-level 3 -rock -joliet \
  71. -max-iso9660-filenames -omit-period \
  72. -omit-version-number -relaxed-filenames -allow-lowercase \
  73. -volid "MILIS_CALISAN" \
  74. -eltorito-boot boot/isolinux/isolinux.bin \
  75. -eltorito-catalog boot/isolinux/isolinux.cat \
  76. -no-emul-boot -boot-load-size 4 -boot-info-table \
  77. -eltorito-alt-boot -e efiboot.img -isohybrid-gpt-basdat -no-emul-boot \
  78. -isohybrid-mbr iso/boot/isolinux/isohdpfx.bin \
  79. -output "milis-2.0-B${month}.${day}.iso" iso || echo "ISO imaj olusturalamadı";