mpsdo 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #!/bin/bash
  2. # derleme ortamının indirilmesi
  3. ortam_sha="d79383c0dd1178c41454be3d473c3ea997241187f31e9b373339a3fad5939a73"
  4. ortam_adres="http://kaynaklar.milislinux.org/iso/reposuz-milis-bootstrap-enson.sfs"
  5. ortam=/mnt/reposuz-milis-bootstrap-enson.sfs
  6. shasum_kontrol(){
  7. inen_sha=$(sha256sum $ortam | cut -d' ' -f1)
  8. if [ "$ortam_sha" = "$inen_sha" ];then
  9. echo "ortam shasum doğrulandı."
  10. else
  11. echo "indirilen ortamda shasum uyşmazlığı var.silip tekrar deneyiniz.";exit 1
  12. fi
  13. }
  14. if [ ! -f $ortam ];then
  15. wget $ortam_adres -O $ortam
  16. shasum_kontrol
  17. fi
  18. # değişkenler - yolların iyi ayarlandığından emin olunuz.
  19. lfs=/mnt/lfs
  20. rootfs=/mnt/rootfs
  21. ikincil=/mnt/ikincil
  22. kaynaklar=/mnt/sources
  23. paketdepo=/depo/paketler
  24. paketler=/mnt/paketler
  25. [ ! -f $ortam ] && exit 1
  26. # kaynaklar dizinin var olduğu kontrol edilir.
  27. if [ ! -d $kaynaklar ];then
  28. ln -s /sources /mnt/
  29. fi
  30. # herhangi bir hatada çıkış yap
  31. set -e
  32. shasum_kontrol
  33. ortam_bagla(){
  34. mkdir -p $rootfs
  35. mkdir -p $lfs
  36. mkdir -p $ikincil
  37. mkdir -p $paketler
  38. mount -t squashfs -o loop $ortam $rootfs/
  39. mount -t tmpfs -o size=4096M,mode=0744 tmpfs $ikincil/
  40. mount -t aufs -o br=$ikincil=rw:$rootfs=ro none $lfs/
  41. mkdir -p $lfs/sources
  42. mount -t aufs -o br=$kaynaklar=rw none $lfs/sources/
  43. mount -t aufs -o br=$paketdepo=rw none $lfs/depo/paketler
  44. mount -t aufs -o br=$paketler=rw none $lfs/opt
  45. }
  46. ortam_coz()
  47. {
  48. # umount -l /mnt/rootfs;umount -l /mnt/ikincil;umount -l /mnt/lfs
  49. for node in "${lfs}" \
  50. "${ikincil}" \
  51. "${rootfs}" \
  52. "${lfs}/sys" \
  53. "${lfs}/proc" \
  54. "${lfs}/dev/pts" \
  55. "${lfs}/dev" ; \
  56. do
  57. if mount | grep -q "$node"
  58. then
  59. echo "çözülüyor ${node} ..."
  60. if ! umount "$node"
  61. then
  62. echo "sıkıntılı $node çözülüyor..."
  63. umount -l "$node"
  64. fi
  65. fi
  66. done
  67. }
  68. ortam_bagla_son(){
  69. cp -v /etc/resolv.conf $lfs/etc
  70. # ana sistemin mps ayarlarını kullanmak için
  71. cp -f -v /etc/mps.conf $lfs/etc
  72. cp -f -v /etc/mpsd.conf $lfs/etc
  73. mount -v -B /dev $lfs/dev
  74. #mount -vt devpts devpts $lfs/dev/pts -o gid=5,mode=620
  75. #mount -vt devpts devpts $lfs/dev/pts
  76. # make hatası düzeliyor-segm fault
  77. mount --bind /dev/pts $lfs/dev/pts
  78. mount -vt proc proc $lfs/proc
  79. #bazı durumlarda bu kullanılacak tty değilde pty i kullanan derlemelerde
  80. #mount --bind /dev/pts $lfs/dev/pts
  81. mount -vt sysfs sysfs $lfs/sys
  82. #if [ -h /dev/shm ]; then rm -f $lfs/dev/shm;mkdir $lfs/dev/shm;fi
  83. #mount -vt tmpfs shm $lfs/dev/shm
  84. #chmod 1777 /dev/shm
  85. }
  86. # gerekli bağlamaların yapılmasından sonra ortama giriş-chroot
  87. ortam_gir(){
  88. ortam_bagla_son
  89. [ -f "/sources/milis.git/ayarlar/bashrc_chroot" ] && cp "/sources/milis.git/ayarlar/bashrc_chroot" "$lfs"/etc/bashrc
  90. chroot "$lfs" /usr/bin/env -i LC_ALL=$LC_ALL HOME=/root TERM="$TERM" PS1='\u:\w\$ ' /bin/bash --login
  91. #chroot "$lfs" /usr/bin/env -i HOME=/root PS1='\u:\w\$ ' /bin/bash --login +h
  92. }
  93. # ortam ayarlamalarından önce eski bağların çözülmesi
  94. ortam_coz
  95. # aufs modülünün kontrolü ve yüklenmesi
  96. if lsmod | grep "aufs" &> /dev/null ; then
  97. ortam_bagla
  98. echo "Milis paket üretim ortamı bağlandı."
  99. else
  100. modprobe aufs
  101. echo "aufs modülü yüklendi."
  102. if lsmod | grep "aufs" &> /dev/null ; then
  103. ortam_bagla
  104. else
  105. echo "aufs modülü bulunamadı!"
  106. exit 1
  107. fi
  108. fi
  109. # çıkarken bağların çözülmesi için trap-yakalama noktası ekleriz
  110. trap 'echo ; ortam_coz' EXIT HUP QUIT ABRT TERM
  111. # ortama giriş
  112. ortam_gir