From b946fd33b028cb30f73307cb267877cfa4efc19a Mon Sep 17 00:00:00 2001 From: milisbir Date: Sat, 13 Jan 2018 18:55:15 +0200 Subject: [PATCH] milis-ortam.sh --- bin/milis-ortam.sh | 99 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100755 bin/milis-ortam.sh diff --git a/bin/milis-ortam.sh b/bin/milis-ortam.sh new file mode 100755 index 000000000..331505c3c --- /dev/null +++ b/bin/milis-ortam.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +# değişkenler - yolların iyi ayarlandığından emin olunuz. + +lfs=/mnt/lfs +rootfs=/mnt/rootfs +ikincil=/mnt/ikincil +kaynaklar=/mnt/sources +ortam=/mnt/reposuz-milis-bootstrap-enson.sfs + +[ ! -f $ortam ] && exit 1 + +# herhangi bir hatada çıkış yap +set -e + +ortam_bagla(){ + mkdir -p $rootfs + mkdir -p $lfs + mkdir -p $ikincil + mount -t squashfs -o loop $ortam $rootfs/ + mount -t tmpfs -o size=3072M,mode=0744 tmpfs $ikincil/ + mount -t aufs -o br=$ikincil=rw:$rootfs=ro none $lfs/ + mkdir -p $lfs/sources + mount -t aufs -o br=$kaynaklar=rw none $lfs/sources/ +} + +ortam_coz() +{ + # umount -l /mnt/rootfs;umount -l /mnt/ikincil;umount -l /mnt/lfs + for node in "${lfs}" \ + "${ikincil}" \ + "${rootfs}" \ + "${lfs}/sys" \ + "${lfs}/proc" \ + "${lfs}/dev/pts" \ + "${lfs}/dev" ; \ + do + if mount | grep -q "$node" + then + echo "çözülüyor ${node} ..." + if ! umount "$node" + then + echo "sıkıntılı $node çözülüyor..." + umount -l "$node" + fi + fi + done +} + +ortam_bagla_son(){ + cp -v /etc/resolv.conf $lfs/etc + # ana sistemin mps ayarlarını kullanmak için + cp -f -v /etc/mps.conf $lfs/etc + cp -f -v /etc/mpsd.conf $lfs/etc + mount -v -B /dev $lfs/dev + #mount -vt devpts devpts $lfs/dev/pts -o gid=5,mode=620 + #mount -vt devpts devpts $lfs/dev/pts + # make hatası düzeliyor-segm fault + mount --bind /dev/pts $lfs/dev/pts + mount -vt proc proc $lfs/proc + #bazı durumlarda bu kullanılacak tty değilde pty i kullanan derlemelerde + #mount --bind /dev/pts $lfs/dev/pts + mount -vt sysfs sysfs $lfs/sys + #if [ -h /dev/shm ]; then rm -f $lfs/dev/shm;mkdir $lfs/dev/shm;fi + #mount -vt tmpfs shm $lfs/dev/shm + #chmod 1777 /dev/shm +} + +# gerekli bağlamaların yapılmasından sonra ortama giriş-chroot +ortam_gir(){ + ortam_bagla_son + [ -f "/sources/milis.git/ayarlar/bashrc_chroot" ] && cp "/sources/milis.git/ayarlar/bashrc_chroot" "$lfs"/etc/bashrc + chroot "$lfs" /usr/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' /bin/bash --login + #chroot "$lfs" /usr/bin/env -i HOME=/root PS1='\u:\w\$ ' /bin/bash --login +h +} + +# ortam ayarlamalarından önce eski bağların çözülmesi +ortam_coz + +# aufs modülünün kontrolü ve yüklenmesi +if lsmod | grep "aufs" &> /dev/null ; then + ortam_bagla + echo "Milis paket üretim ortamı bağlandı." +else + modprobe aufs + echo "aufs modülü yüklendi." + if lsmod | grep "aufs" &> /dev/null ; then + ortam_bagla + else + echo "aufs modülü bulunamadı!" + exit 1 + fi +fi + +# çıkarken bağların çözülmesi için trap-yakalama noktası ekleriz +trap 'echo ; ortam_coz' EXIT HUP QUIT ABRT TERM + +# ortama giriş +ortam_gir