123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- #!/bin/bash
- mesaj bilgi "$DAGITIM için ISO hazırlanıyor..."
- #umount
- _umount
- #SQUASHFS ISLEMLERI
- if [ "$SFS_OLUSTUR" == "var" ]; then
- cd $BUILDER_ROOT
- # son ayar yuklemeleri
- mesaj bilgi "ISO için ön ayarlar yapılıyor.."
- cp -f $LFS/sources/milis.git/rootfs/etc/bashrc $LFS/etc/bashrc
- cp -f $LFS/sources/milis.git/rootfs/etc/profile $LFS/etc/profile
- cp -f $LFS/sources/milis.git/ayarlar/mps.conf $LFS/etc/mps.conf
- cp -f $LFS/sources/milis.git/rootfs/etc/rc.d/init.d/* $LFS/etc/rc.d/init.d/
- mkdir -p iso_icerik
- rm -f iso_icerik/boot/kernel
- rm -f iso_icerik/boot/initramfs
- rm -rf iso_icerik/LiveOS
- cp -rf $LFS/boot/kernel-* iso_icerik/boot/kernel
- cp -rf $LFS/boot/initramfs* iso_icerik/boot/initramfs
- # grub
- echo "DISTRIB_ID=\"$DAGITIM\"" > $LFS/etc/lsb-release
- echo "DISTRIB_RELEASE=\"$VERSIYON\"" >> $LFS/etc/lsb-release
- echo "DISTRIB_DESCRIPTION=\"$DAGITIM $KODADI $VERSIYON\"" >> $LFS/etc/lsb-release
- echo "DISTRIB_CODENAME=\"$KODADI\"" >> $LFS/etc/lsb-release
- cp $LFS/etc/lsb-release $LFS/etc/os-release
- if [ ! -z ${MASAUSTU} ];then
- # kurulum.desktop dağıtım adı
- mesaj bilgi "Masaüstü kurulum kısayolu açıklaması düzenleniyor"
- [ -f $LFS/root/Masaüstü/kurulum.desktop ] && sed -i "s/Milis Linux/$DAGITIM/g" $LFS/root/Masaüstü/kurulum.desktop
- [ -f $LFS/root/Desktop/kurulum.desktop ] && sed -i "s/Milis Linux/$DAGITIM/g" $LFS/root/Desktop/kurulum.desktop
- fi
-
- # varsayılan root parolası
- mesaj bilgi "root varsayılan parolası değiştiriliyor"
- sed -i "49s/milis/$ROOT_PAROLASI/g" $LFS/etc/init.d/sysklogd
- # LiveOS ayarları
- mesaj bilgi "LiveOS ayarları yapılıyor..."
- # varsa temp-root/ ve tmp/ umount edil silelim
- if [ -d temp-root ]; then
- mountpoint -q temp-root && umount -l temp-root
- rm -rf temp-root
- fi
- [[ -d tmp ]] && rm -rf tmp
- #
- mkdir -p tmp/LiveOS
- fallocate -l 16G tmp/LiveOS/rootfs.img
- mke2fs -t ext4 -L $ISO_ETIKET -F tmp/LiveOS/rootfs.img
- mkdir -p temp-root
- mount -o loop tmp/LiveOS/rootfs.img temp-root
- mesaj bilgi "Chroot içerik dosya sistemi imajına kopyalanıyor..."
- cp -dpR $LFS/* temp-root/
- #rsync -a kur/ temp-root
- umount -l temp-root
- rm -rf temp-root
- mkdir -p iso_icerik/LiveOS
- mesaj bilgi "Dosya sistemi imajı sıkıştırılıyor..."
- mksquashfs tmp iso_icerik/LiveOS/squashfs.img -comp xz -b 256K -Xbcj x86
- chmod 444 iso_icerik/LiveOS/squashfs.img
- rm -rf tmp
- fi
- # isolinux ve syslinux
- mesaj bilgi "ISOLinux ve SYSLinux ayarları yapılıyor"
- sed -i "s/^label.*/label $DAGITIM $KODADI $VERSIYON/g" iso_icerik/boot/isolinux/isolinux.cfg
- sed -i "s/CDLABEL=[A-Z_]*/CDLABEL=$ISO_ETIKET/g" iso_icerik/boot/isolinux/isolinux.cfg
- _syslinux_arkaplan=$BUILDER_ROOT/$OZELLESTIRME/$MASAUSTU/updates/usr/share/backgrounds/syslinux.png
- if [ -f ${_syslinux_arkaplan} ];then
- cp -f ${_syslinux_arkaplan} iso_icerik/boot/isolinux/arkaplan.png
- fi
- #isolinux olarak syslinux olarak kopyalanması
- rm -rf iso_icerik/boot/syslinux
- cp -rf iso_icerik/boot/isolinux iso_icerik/boot/syslinux
- #ek-güncellemelerin eklenmesi
- if [ -d $BUILDER_ROOT/iso_icerik/updates ]; then rm -rf iso_icerik/updates;fi
- if [ ! -z ${MASAUSTU} ];then
- cp -rf $BUILDER_ROOT/$OZELLESTIRME/$MASAUSTU/updates iso_icerik/
- else
- cp -rf $BUILDER_ROOT/$OZELLESTIRME/minimal/updates iso_icerik/
- fi
- mv iso_icerik/updates/home/gecici_kullanici iso_icerik/updates/home/$CANLI_KULLANICI
- echo "$CANLI_KULLANICI" > iso_icerik/updates/etc/canli_kullanici
- if [ ! -z ${MASAUSTU} ];then
- [ -d $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Masaüstü ] && chmod 755 $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Masaüstü/*.desktop
- [ -d $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Desktop ] && chmod 755 $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Desktop/*.desktop
- fi
- # kullanici için gerekli home izinleri ve yapılacak betiğin ayarlanması -slimde autostart a işe yarıyor
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/root/bin/canli_kullanici.sh
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/security/opasswd
- if [ $GIRISYONETICISI = "lightdm" ];then
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/lightdm/lightdm.conf
- fi
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/passwd
- sed -i "s/Milis Linux Deneme Kullanıcısı/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/passwd
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/group
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/gshadow
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/shadow
- sed -i "s/canlikullanici/$CANLI_KULLANICI/g" $BUILDER_ROOT/iso_icerik/updates/etc/sudoers
- # canlı kullanıcı öntanımlı parola ayarlanması
- if [ -z ${CANLI_KULLANICI_PAROLA+:} ];then
- # canlı kullanıcı parola ayarlanmadıysa öntanımlı 'milis' oalcaktır.
- CANLI_KULLANICI_PAROLA="milis"
- fi
- if type python3 &> /dev/null;then
- CK_PAROLA=$(python3 -c 'import crypt; print(crypt.crypt('"'$CANLI_KULLANICI_PAROLA'"', crypt.mksalt(crypt.METHOD_SHA512)))')
- else
- CK_PAROLA="$6$ElNCkqJ.$uWgWHcF6DhxjO8XPxSPaK6OduxTwqXrrpILXoktW0lYKBMMrIXkmpIcn6VE8CEgbarl41cbdb.f6owQGwYrGg."
- fi
- awk -i inplace -F: "BEGIN {OFS=FS;} \$1 == \"$CANLI_KULLANICI\" {\$2=\"$CK_PAROLA\"} 1" $BUILDER_ROOT/iso_icerik/updates/etc/shadow
- if [ ! -z ${MASAUSTU} ];then
- if [ $GIRISYONETICISI = "slim" ];then
- #slim teması ayarlanması
- if [ ! -z ${SLIM_TEMA_YOL+:} ] && [ -d $SLIM_TEMA_YOL ];then
- mkdir -p $BUILDER_ROOT/iso_icerik/updates/usr/share/slim/themes
- cp -rf $BUILDER_ROOT/$OZELLESTIRME/slim/temalar/* $BUILDER_ROOT/iso_icerik/updates/usr/share/slim/themes/
- fi
- fi
- if [ $GIRISYONETICISI = "lightdm" ];then
- #lightdm teması ayarlanması
- if [ ! -z ${LIGHTDM_TEMA_YOL+:} ] && [ -d $LIGHTDM_TEMA_YOL ];then
- echo "lightdm tema ayarlanacak"
- fi
- fi
- fi
- # iso için zaman ayarlı sürüm no belirlemek.
- zaman_surumu=`date +%Y%m%d%H%M`
- milis_surum_no=`echo $DAGITIM | tr '[A-Z]' '[a-z]' | tr ' ' '-'`-$VERSIYON-$MASAUSTU-$zaman_surumu
- if [ ! -z ${MASAUSTU} ];then
- # Milis yükleyici kurulu değilse gitrepodan çekilecek.
- if [ ! -d $LFS/var/lib/pkg/DB/milis-yukleyici ];then
- mkdir -p $BUILDER_ROOT/iso_icerik/updates/opt/
- #Milis-Yukleyicinin eklenmesi
- if [ -d $YUKLEYICI_KONUM ]; then
- cd $YUKLEYICI_KONUM
- git pull
- cd -
- else
- git clone $YUKLEYICI_GITREPO $YUKLEYICI_KONUM
- fi
- # Yükleyici için gerekli dizin oluşturulması
- mkdir -p $BUILDER_ROOT/iso_icerik/updates/opt/Milis-Yukleyici/
- cp -rf $YUKLEYICI_KONUM/* $BUILDER_ROOT/iso_icerik/updates/opt/Milis-Yukleyici/
- [ -f $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Desktop/kurulum.desktop ] && sed -i "s/Milis Linux/$DAGITIM/g" $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Desktop/kurulum.desktop
- [ -f $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Masaüstü/kurulum.desktop ] && sed -i "s/Milis Linux/$DAGITIM/g" $BUILDER_ROOT/iso_icerik/updates/home/$CANLI_KULLANICI/Masaüstü/kurulum.desktop
- [ -f $BUILDER_ROOT/iso_icerik/updates/opt/Milis-Yukleyici/milis-kur ] && chmod 645 $BUILDER_ROOT/iso_icerik/updates/opt/Milis-Yukleyici/milis-kur
- echo $milis_surum_no > $BUILDER_ROOT/iso_icerik/updates/etc/milis-surum
- fi
- fi
- ### UEFI bolumu
- mesaj bilgi "UEFI bölüm oluşturuluyor..."
- if [ $UEFI == "1" ]; then
- mkdir -p $BUILDER_ROOT/iso_icerik/efi_tmp
- dd if=/dev/zero bs=1M count=60 of=$BUILDER_ROOT/iso_icerik/efiboot.img
- mkfs.vfat -n Milis_EFI $BUILDER_ROOT/iso_icerik/efiboot.img
- #umount -l $BUILDER_ROOT/iso_icerik/efi_tmp
- mount -o loop $BUILDER_ROOT/iso_icerik/efiboot.img $BUILDER_ROOT/iso_icerik/efi_tmp
- cp -rf $BUILDER_ROOT/iso_icerik/boot/kernel $BUILDER_ROOT/iso_icerik/efi_tmp/
- cp -rf $BUILDER_ROOT/iso_icerik/boot/initramfs $BUILDER_ROOT/iso_icerik/efi_tmp/
- cp -rf $BUILDER_ROOT/efi/* $BUILDER_ROOT/iso_icerik/efi_tmp/
- #sed -i "s/^title.*/title $DAGITIM $KODADI $VERSIYON (UEFI)/g" efi/loader/entries/milis.conf
- #sed -i "s/CDLABEL=[A-Z_]*/CDLABEL=$ISO_ETIKET/g" efi/loader/entries/milis.conf
- umount $BUILDER_ROOT/iso_icerik/efi_tmp
- rm -rf $BUILDER_ROOT/iso_icerik/efi_tmp
- fi
- # ISO oluştur
- mesaj bilgi "ISO oluşturuluyor..."
- ISODOSYA=$milis_surum_no
- if [ $UEFI == "1" ]; then
- # uefi
- cp $LFS/usr/lib/syslinux/isohdpfx.bin iso_icerik/boot/isolinux/isohdpfx.bin
- xorriso -as mkisofs \
- -iso-level 3 -rock -joliet \
- -max-iso9660-filenames -omit-period \
- -omit-version-number -relaxed-filenames -allow-lowercase \
- -volid "$ISO_ETIKET" \
- -eltorito-boot boot/isolinux/isolinux.bin \
- -eltorito-catalog boot/isolinux/isolinux.cat \
- -no-emul-boot -boot-load-size 4 -boot-info-table \
- -eltorito-alt-boot -e efiboot.img -isohybrid-gpt-basdat -no-emul-boot \
- -isohybrid-mbr iso_icerik/boot/isolinux/isohdpfx.bin \
- -output "$ISODOSYA.iso" iso_icerik || echo "ISO imaj olusturalamadı";
- else
- genisoimage -l -V $ISO_ETIKET -R -J -pad -no-emul-boot -boot-load-size 4 -boot-info-table \
- -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -o $ISODOSYA.iso iso_icerik && isohybrid $ISODOSYA.iso
- fi
- ISOBOYUT=$(du -sbh $ISODOSYA.iso | awk '{print $1}')
- HASH256=$(sha256sum $ISODOSYA.iso | cut -d' ' -f1)
- ISOYOLU=`pwd`/$ISODOSYA.iso
- mv $ISOYOLU /mnt/
- mesaj yesil "
- *********************************************************
- * ISO olusturuldu..
- * /mnt/$ISODOSYA.iso ($ISOBOYUT) uefi destek=$UEFI
- * sha256sum $HASH256
- *********************************************************
- "
|