milis/bin/mpsdo

130 lines
3.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# derleme ortamının indirilmesi
ortam_sha="41a586c6b7e10295658375bd6718e07aec1396f05addc2bd9154ef258c07dbf9"
ortam_adres="http://kaynaklar.milislinux.org/iso/reposuz-milis-bootstrap-enson.sfs"
ortam=/mnt/reposuz-milis-bootstrap-enson.sfs
shasum_kontrol(){
inen_sha=$(sha256sum $ortam | cut -d' ' -f1)
if [ "$ortam_sha" = "$inen_sha" ];then
echo "ortam shasum doğrulandı."
else
echo "indirilen ortamda shasum uyşmazlığı var.silip tekrar deneyiniz.";exit 1
fi
}
if [ ! -f $ortam ];then
wget $ortam_adres -O $ortam
shasum_kontrol
fi
# değişkenler - yolların iyi ayarlandığından emin olunuz.
lfs=/mnt/lfs
rootfs=/mnt/rootfs
ikincil=/mnt/ikincil
kaynaklar=/mnt/sources
paketdepo=/depo/paketler
paketler=/mnt/paketler
[ ! -f $ortam ] && exit 1
# kaynaklar dizinin var olduğu kontrol edilir.
if [ ! -d $kaynaklar ];then
ln -s /sources /mnt/
fi
# herhangi bir hatada çıkış yap
set -e
shasum_kontrol
ortam_bagla(){
mkdir -p $rootfs
mkdir -p $lfs
mkdir -p $ikincil
mkdir -p $paketler
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/
mount -t aufs -o br=$paketdepo=rw none $lfs/depo/paketler
mount -t aufs -o br=$paketler=rw none $lfs/opt
}
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