iso_olustur.sh 3.4 KB

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