milis-kur1 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564
  1. #!/bin/bash
  2. #
  3. # Milis Linux konsol kurulumu için Void Linux kurulum çatallaması
  4. # This installer forked from Void Linux installer for Milis Linux terminal based installation
  5. #
  6. # 2018 milisarge <milisarge@gmail.com>.
  7. # 2018 Aydin <yakar@live.com>
  8. #
  9. # 2012-2015 Juan Romero Pardines <xtraeme@Voidlinux.org>.
  10. # 2012 Dave Elusive <davehome@redthumb.info.tm>.
  11. #
  12. # All rights reserved.
  13. #
  14. # Redistribution and use in source and binary forms, with or without
  15. # modification, are permitted provided that the following conditions
  16. # are met:
  17. # 1. Redistributions of source code must retain the above copyright
  18. # notice, this list of conditions and the following disclaimer.
  19. # 2. Redistributions in binary form must reproduce the above copyright
  20. # notice, this list of conditions and the following disclaimer in the
  21. # documentation and/or other materials provided with the distribution.
  22. #
  23. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  24. # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  25. # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  26. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  27. # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  28. # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  29. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  30. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  31. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  32. # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  33. #-
  34. DIZIN=`dirname $(readlink -f $0)`
  35. dil=${LANG/.*}
  36. if [ $dil == "en_US" ];then
  37. # Language
  38. LANG_LANG="English"
  39. LANG_MENULABEL="Use UP and DOWN keys to navigate menus. Use TAB to switch between buttons and ENTER to select."
  40. LANG_INSTALLATION="Installation"
  41. LANG_BACK="Back"
  42. LANG_CHANGE="Change"
  43. LANG_DONE="Done"
  44. LANG_PROCESSING="processing as settings"
  45. LANG_SELECTPARTITION="Select the partition to edit"
  46. LANG_SELECTFILESYSTEM="Select the filesystem type for %s"
  47. LANG_MOUNTPOINT="Please specify the mount point for %s (use / as default)"
  48. LANG_NEWFILESYSTEM="Do you want to create a new filesystem on %s?"
  49. LANG_SELECTDISKPART="Select the disk to partition"
  50. LANG_SCANLOCALES="Scanning locales"
  51. LANG_MODPARTTABLE="Modify Partition Table on %s"
  52. LANG_PARTITIONDIALOG="\n
  53. %scfdisk will be executed in disk %s.%s\n\n
  54. For BIOS systems, MBR or GPT partition tables are supported.\n
  55. To use GPT on PC BIOS systems an empty partition of 1MB must be added\n
  56. at the first 2GB of the disk with the TOGGLE \`bios_grub' enabled.\n
  57. %sNOTE: you don't need this on EFI systems.%s\n\n
  58. For EFI systems GPT is mandatory and a FAT32 partition with at least\n
  59. 100MB must be created with the TOGGLE \`boot', this will be used as\n
  60. EFI System Partition. This partition must have mountpoint as \`/boot/efi'.\n\n
  61. At least 1 partition is required for the rootfs (/).\n
  62. For swap, RAM*2 must be really enough. For / 600MB are required.\n\n
  63. %sWARNING: /usr is not supported as a separate partition.%s\n\n"
  64. LANG_SELKEYMAP="Select your keymap"
  65. LANG_SELLOCAL="Select your locale"
  66. LANG_SELTZONE="Select your timezone"
  67. LANG_SETHOST="Set the machine hostname"
  68. LANG_ROOTPW="Enter the root password"
  69. LANG_ROOTPWAGAIN="Enter the root password again"
  70. LANG_PWNOTMATCH="Passwords do not match! Please enter again."
  71. LANG_LOGINNAME="Enter a primary login name"
  72. LANG_USERNAME="Enter a user name for login"
  73. LANG_PASSWORD="Enter the password for login"
  74. LANG_PASSWORDAGAIN="Enter the password for login again"
  75. LANG_GMEMLOGIN="Select group membership for login"
  76. LANG_BOOTLOADER="Select the disk to install the bootloader"
  77. LANG_BOOTLOTHER="Manage bootloader otherwise"
  78. LANG_BOOTLGRAPH="Use a graphical terminal for the boot loader?"
  79. LANG_GRUBINST="Running grub-install %s..."
  80. LANG_GRUBFAIL="%sERROR:%s failed to install GRUB to %s!\nCheck %s for errors."
  81. LANG_GRUBMKCONF="Running grub-mkconfig on %s..."
  82. LANG_GRUBMKCONFFAIL="%sERROR%s: failed to run grub-mkconfig!\nCheck %s for errors."
  83. LANG_NEWFSYSTEM="NEW FILESYSTEM"
  84. LANG_MOUNTEDON="%s (%s) mounted on %s as %s\n"
  85. LANG_FSYSTEMNOTSET="%sERROR:%s the mount point for the root filesystem (/) has not yet been configured."
  86. LANG_FSYSNOTSUPPORTED="%sERROR:%s /usr mount point has been configured but is not supported, please remove it to continue."
  87. LANG_FSYSEFINOTSET="%sERROR:%s The EFI System Partition has not yet been configured, please create it\n
  88. as FAT32, mountpoint /boot/efi and at least with 100MB of size."
  89. LANG_SWAPFAIL="%sERROR:%s failed to create swap on %s!\ncheck %s for errors."
  90. LANG_SWAPERROR="%sERROR:%s failed to activate swap on %s!\ncheck %s for errors."
  91. LANG_ERRLOGTITLE="Check %s for details ..."
  92. LANG_CREATEFSYS="Creating filesystem %s on %s for %s ..."
  93. LANG_CREATEMKFS="Running %s..."
  94. LANG_CREATEFAIL="%sERROR:%s failed to create filesystem %s on %s!\ncheck %s for errors."
  95. LANG_MOUNTINGON="Mounting %s on %s (%s)..."
  96. LANG_MOUNTINGERR="%sERROR:%s failed to mount %s on %s! check %s for errors."
  97. LANG_SWAPDISABLING="Disabling swap space on %s..."
  98. LANG_SWAPUNMOUNTING="Unmounting %s..."
  99. LANG_PROGRESS="Progress: %d.%d%% (%d of %d files)\n"
  100. LANG_COUNTFILES="Counting files, please be patient ..."
  101. LANG_CPLIVEIMG="Copying live image to target rootfs."
  102. LANG_DHCPON="enabled"
  103. LANG_FSYSNOTCONF="%sRequired filesystems were not configured, please do so before starting the installation.%s"
  104. LANG_ROOTPWNOTCONF="%sThe root password has not been configured, please do so before starting the installation.%s"
  105. LANG_BOOTLNOTCONF="%sThe disk to install the bootloader has not been configured, please do so before starting the installation.%s"
  106. LANG_DESTROYWARN="%sThe following operations will be executed:%s\n\n
  107. %s\n
  108. %sWARNING: data on partitions will be COMPLETELY DESTROYED for new \
  109. filesystems.%s\n\n
  110. %sDo you want to continue?%s"
  111. LANG_RMTARGET="Removing %s live user from targetdir ..."
  112. LANG_BUILDINGINITRAMFS="Rebuilding initramfs for target ..."
  113. LANG_APPLYSETTINGS="Applying installer settings..."
  114. LANG_ENABLESUDO="Enable sudo for login '%s'"
  115. LANG_INSTALLSUCCESS="%sMilis Linux has been installed successfully!%s\nDo you want to reboot the system?"
  116. LANG_MENUSETTINGS="Settings"
  117. LANG_INSTMENU="Milis Linux installation menu"
  118. LANG_MENUKEYBOARD="Keyboard"
  119. LANG_MENUHOSTNAME="Hostname"
  120. LANG_MENULOCALE="Locale"
  121. LANG_MENUTIMEZONE="Timezone"
  122. LANG_MENUROOTPW="RootPassword"
  123. LANG_MENUUSERACC="UserAccount"
  124. LANG_MENUBOOTLOADER="BootLoader"
  125. LANG_MENUPARTITION="Partition"
  126. LANG_MENUFILESYSTEM="Filesystems"
  127. LANG_MENUINSTALL="Install"
  128. LANG_MENUEXIT="Exit"
  129. LANG_KEYBOARDSET="Set system keyboard"
  130. LANG_HOSTSET="Set system hostname"
  131. LANG_LOCALESET="Set system locale"
  132. LANG_TIMEZONESET="Set system time zone"
  133. LANG_ROOTPWSET="Set system root password"
  134. LANG_USERNPWSET="Set primary user name and password"
  135. LANG_BOOTLOADERSET="Set disk to install bootloader"
  136. LANG_PARTITIONSET="Partition disk(s)"
  137. LANG_FSYSSET="Configure filesystems and mount points"
  138. LANG_INSTALLSETTINGS="Start installation with saved settings"
  139. LANG_EXITINST="Exit installation"
  140. LANG_ABORTINST="Abort Installation?"
  141. LANG_ERRDIALOG="ERROR: missing dialog command, exiting..."
  142. LANG_INSTMUSTROOT="Milis-installer must run as root"
  143. LANG_SAVEDSETTINGS="Saved settings for installation"
  144. LANG_ENTERMILIS="Milis Linux / $LANG_LANG"
  145. LANG_MAINDIALOG="\n
  146. Welcome to the Milis Linux installation. A simple and minimal \
  147. Linux distribution made from scratch and built from the source package tree \
  148. available for MPS, a new alternative package system.\n\n
  149. The installation should be pretty straightforward. If you are in trouble \
  150. please join us at %s#milisarge%s on %sirc.freenode.org%s or \
  151. ask the %sforums%s on the site.\n\n
  152. %shttp://www.milislinux.org%s\n\n"
  153. else
  154. # Language
  155. LANG_LANG="Türkçe"
  156. LANG_MENULABEL="YUKARI ve AŞAĞI ok tuşları ile menüde ilerleyebilirsiniz. TAB tuşu ile butonlar arasında geçebilir ve ENTER ile seçebilirsiniz."
  157. LANG_INSTALLATION="Yükleyici"
  158. LANG_BACK="Geri"
  159. LANG_CHANGE="Değiştir"
  160. LANG_DONE="Bitti"
  161. LANG_PROCESSING="ayar dosyası işleniyor"
  162. LANG_SELECTPARTITION="Düzenlenecek bölümü seçiniz"
  163. LANG_SELECTFILESYSTEM="%s için dosya sistemi türü seçiniz"
  164. LANG_MOUNTPOINT="Lütfen %s için atama (mount) noktası belirtiniz. (öntanımlı kullanım için / kullanın.)"
  165. LANG_NEWFILESYSTEM="%s üzerinde yeni dosya sistemi oluşturmak ister misiniz?"
  166. LANG_SELECTDISKPART="Bölümleme için disk seçiniz"
  167. LANG_SCANLOCALES="Yerel diller araştırılıyor"
  168. LANG_MODPARTTABLE="%s üzerinde bölümleme (partition) tablosunu düzenle"
  169. LANG_PARTITIONDIALOG="\n
  170. %scfdisk %s üzerinde çalıştırıldı.%s\n\n
  171. BIOS sistemler için MBR veya GPT bölümleme tablosu desteklenmektedir.\n
  172. PC BIOS sistemlerde GPT kullanmak için TOGGLE \`bios_grub' aktifse diskin\n
  173. ilk 2GB kısmına 1MB boş bir bölüm eklenmelidir.\n
  174. %sNOT: EFI sistemleri üzerinde buna ihtiyacınız yoktur.%s\n\n
  175. EFI sistemleri için GPT zorunludur ve TOGGLE \`boot' ile en az\n
  176. 100MB bir FAT32 bölümü oluşturulmalıdır, bu EFI sistem bölümü olarak\n
  177. kullanılacaktır. Bu bölüm \`/boot/efi' olarak atanmış (mount) olmalıdır.\n\n
  178. En az 1 bölüm kök dizini (rootfs) (/) için gereklidir.\n
  179. Swap için RAM*2 yeterlidir. Kök dizini (/) için 600MB zorunludur.\n\n
  180. %sUYARI: /usr ayrı bir bölümleme olarak desteklenmemektedir.%s\n\n"
  181. LANG_SELKEYMAP="Klavye düzenini seçiniz"
  182. LANG_SELLOCAL="Bölgesel ayarları seçiniz"
  183. LANG_SELTZONE="Zaman diliminizi seçiniz"
  184. LANG_SETHOST="Bilgisayar adını giriniz"
  185. LANG_ROOTPW="Root parolasını giriniz"
  186. LANG_ROOTPWAGAIN="Root parolasını tekrar giriniz"
  187. LANG_PWNOTMATCH="Parolalar uyuşmamaktadır! Lütfen tekrar deneyiniz."
  188. LANG_LOGINNAME="Kullanıcı giriş adını giriniz"
  189. LANG_USERNAME="Kullanıcı gerçek adını giriniz"
  190. LANG_PASSWORD="Parolanızı giriniz"
  191. LANG_PASSWORDAGAIN="Parolanızı tekrar giriniz"
  192. LANG_GMEMLOGIN="Kullanıcının grup üyeliklerini seçiniz"
  193. LANG_BOOTLOADER="Önyükleyicinin (bootloader) yükleneceği diski seçiniz"
  194. LANG_BOOTLOTHER="Önyükleyici kullanma"
  195. LANG_BOOTLGRAPH="Terminalde önyükleyici için grafik arayüzü kullanmak ister misiniz?"
  196. LANG_GRUBINST="Çalıştırılıyor grub-install %s..."
  197. LANG_GRUBFAIL="%sHATA:%s %s GRUB kurulamadı!\nHata için %s kontrol ediniz."
  198. LANG_GRUBMKCONF="%s üzerinde grub-mkconfig çalıştırılıyor..."
  199. LANG_GRUBMKCONFFAIL="%sHATA%s: grub-mkconfig çalıştırılamadı!\nHata için %s kontrol ediniz."
  200. LANG_NEWFSYSTEM="YENİ DOSYA SİSTEMİ"
  201. LANG_MOUNTEDON="%s (%s) için atama noktası %s (%s)\n"
  202. LANG_FSYSTEMNOTSET="%sHATA:%s Root dosya sistemi (/) için atama noktası henüz ayarlanmadı."
  203. LANG_FSYSNOTSUPPORTED="%sHATA:%s /usr atama noktası ayarlandı fakat desteklenmiyor, lütfen kaldırıp devam ediniz."
  204. LANG_FSYSEFINOTSET="%sHATA:%s EFI sistem bölümlemesi henüz ayarlanmadı, lütfen FAT32 olarak oluşturun,\n
  205. /boot/efi atama noktası en az 100MB olamalıdır."
  206. LANG_SWAPFAIL="%sHATA:%s swap alanı %s üzerinde oluşturulamadı!\nHata için %s kontrol ediniz."
  207. LANG_SWAPERROR="%sHATA:%s swap alanı %s üzerinde aktif edilemedi!\nHata için %s kontrol ediniz."
  208. LANG_ERRLOGTITLE="Detaylar için %s kontrol ediniz ..."
  209. LANG_CREATEFSYS="Dosya sistemi %s %s üzerinde %s için oluşturuluyor..."
  210. LANG_CREATEMKFS="%s çalıştırılıyor..."
  211. LANG_CREATEFAIL="%sHATA:%s failed to create filesystem %s on %s!\nHata için %s kontrol ediniz."
  212. LANG_MOUNTINGON="Atanıyor %s %s üzerine (%s)..."
  213. LANG_MOUNTINGERR="%sHATA:%s %s %s üzerine atanamadı! Hata için %s kontrol ediniz."
  214. LANG_SWAPDISABLING="%s üzerindeki swap alanı iptal ediliyor..."
  215. LANG_SWAPUNMOUNTING="%s ataması ayrılıyor (unmount)..."
  216. LANG_PROGRESS="İlerleme: %d.%d%% (dosyalar %d / %d)\n"
  217. LANG_COUNTFILES="Dosyalar hesaplanıyor, lütfen sabırlı olunuz ..."
  218. LANG_CPLIVEIMG="Canlı imaj hedef kök dizine (rootfs) kopyalanıyor."
  219. LANG_DHCPON="aktifleşti"
  220. LANG_FSYSNOTCONF="%sGerekli dosya sistemleri yapılandırılmadı, lütfen yüklemeye başlamadan önce yapılandırınız.%s"
  221. LANG_ROOTPWNOTCONF="%sRoot parola yapılandırılmamış, lütfen yüklemeye başlamadan önce yapılandırınız.%s"
  222. LANG_BOOTLNOTCONF="%sÖnyükleyiciyi yüklemek için disk yapılandırılmamış, lütfen yüklemeye başlamadan önce yapılandırınız.%s"
  223. LANG_DESTROYWARN="%sAşağıdaki operasyon çalıştırılacak:%s\n\n
  224. %s\n
  225. %sUYARI: Yeni dosya sistemi için bölümlerdeki veri TAMAMEN SİLİNECEKTİR.%s\n\n
  226. %sDevam etmek istiyor musunuz?%s"
  227. LANG_RMTARGET="Hedef dizin için %s canlı kullanıcısı kaldırılıyor ..."
  228. LANG_BUILDINGINITRAMFS="Hedef için initramfs oluşturuluyor ..."
  229. LANG_APPLYSETTINGS="Yükleyici ayarları uygulanıyor..."
  230. LANG_ENABLESUDO="Giriş için sudo '%s' aktifleştiriliyor"
  231. LANG_INSTALLSUCCESS="%sMilis Linux başarıyla yüklendi!%s\nSistemi yeniden başlatmak ister misiniz?"
  232. LANG_MENUSETTINGS="Ayarlar"
  233. LANG_INSTMENU="Milis Linux Yükleyici Menüsü"
  234. LANG_MENUKEYBOARD="Klavye"
  235. LANG_MENUHOSTNAME="BilgisayarAdı"
  236. LANG_MENULOCALE="BölgeselAyarlar" #"Bölgesel Ayarlar"
  237. LANG_MENUTIMEZONE="ZamanDilimi"
  238. LANG_MENUROOTPW="RootParolası"
  239. LANG_MENUUSERACC="KullanıcıHesabı"
  240. LANG_MENUBOOTLOADER="Önyükleyici"
  241. LANG_MENUPARTITION="Bölümleme"
  242. LANG_MENUFILESYSTEM="DosyaSistemi"
  243. LANG_MENUINSTALL="Yükle"
  244. LANG_MENUEXIT="Çıkış"
  245. LANG_KEYBOARDSET="Klavye ayarlarını seçiniz"
  246. LANG_HOSTSET="Bilgisayar adını giriniz"
  247. LANG_LOCALESET="Bölgesel ayarları seçiniz"
  248. LANG_TIMEZONESET="Zaman dilimini seçiniz"
  249. LANG_ROOTPWSET="Root parolarını giriniz"
  250. LANG_USERNPWSET="Öncelikli kullanıcı adı ve parolayı giriniz"
  251. LANG_BOOTLOADERSET="Önyükleyici için disk seçiniz"
  252. LANG_PARTITIONSET="Disk bölümleme"
  253. LANG_FSYSSET="Dosya sistemi ve atama (mount) noktası ayarları"
  254. LANG_INSTALLSETTINGS="Kayıtlı ayarlar ile yüklemeye başla"
  255. LANG_EXITINST="Yükleyiciden çık"
  256. LANG_ABORTINST="Yüklemekten vazgeç?"
  257. LANG_ERRDIALOG="HATA: dialog komutu bulunamadı, çıkış yapılıyor..."
  258. LANG_INSTMUSTROOT="Milis-yükleyici root hakları ile çalıştırılmalıdır"
  259. LANG_SAVEDSETTINGS="Yükleme için ayarlar kaydedildi"
  260. LANG_ENTERMILIS="Milis Linux / $LANG_LANG"
  261. LANG_MAINDIALOG="\n
  262. Milis Linux kurulumuna hoş geldiniz. Sıfırdan hazırlanan, kolay ve \
  263. minimal bir Linux dağıtımıdır ve yeni bir alternatif paket sistemi olan \
  264. MPS için kullanılabilen kaynak paketlerinden üretilmiştir.\n\n
  265. Kurulum oldukça basittir. Eğer yardıma ihtiyacınız olursa %sirc.freenode.org%s \
  266. %s#milisarge%s kanalımıza katılabilir veya sitemizdeki %sforumlardan%s yardım alabilirsiniz.\n\n
  267. %shttp://www.milislinux.org%s\n\n"
  268. fi
  269. # menülerin işlem görme durumları.
  270. HOSTNAME_YAPILDI=
  271. KEYBOARD_YAPILDI=
  272. LOCALE_YAPILDI=
  273. TIMEZONE_YAPILDI=
  274. ROOTPASSWORD_YAPILDI=
  275. USERLOGIN_YAPILDI=
  276. USERPASSWORD_YAPILDI=
  277. USERNAME_YAPILDI=
  278. USERGROUPS_YAPILDI=
  279. BOOTLOADER_YAPILDI=
  280. PARTITIONS_YAPILDI=
  281. FILESYSTEMS_YAPILDI=
  282. FORMAT_ONAY=
  283. YEBASLAT_ONAY=
  284. DOSYADAN_KURULUM=
  285. HEDEF=/mnt/target
  286. LOG=/dev/tty9
  287. if [ ! -z $1 ];then
  288. AYAR_DOSYASI=$1
  289. if [ -f $AYAR_DOSYASI ];then
  290. echo "$AYAR_DOSYASI $LANG_PROCESSING ......."
  291. FORMAT_ONAY="HAYIR"
  292. YEBASLAT_ONAY="HAYIR"
  293. DOSYADAN_KURULUM="EVET"
  294. fi
  295. else
  296. AYAR_DOSYASI=/tmp/.kurulum.conf
  297. if [ ! -f $AYAR_DOSYASI ]; then
  298. touch -f $AYAR_DOSYASI
  299. fi
  300. fi
  301. ANSWER=$(mktemp -t vinstall-XXXXXXXX || exit 1)
  302. TARGET_FSTAB=$(mktemp -t vinstall-fstab-XXXXXXXX || exit 1)
  303. if [ -f /etc/milis-surum ];then
  304. MILIS_SURUM=$(cat /etc/milis-surum)
  305. else
  306. MILIS_SURUM="Milis 2.0 Deneme Sürüm"
  307. fi
  308. if [ -f /etc/canli_kullanici ];then
  309. CANLI_KULLANICI=$(cat /etc/canli_kullanici)
  310. else
  311. CANLI_KULLANICI="root"
  312. fi
  313. trap "DIE" INT TERM QUIT
  314. # konsol log yazmasının kapatılması
  315. if [ -w /proc/sys/kernel/printk ]; then
  316. echo 0 >/proc/sys/kernel/printk
  317. fi
  318. # EFIli sistem tesbiti
  319. if [ -e /sys/firmware/efi/systab ]; then
  320. EFI_SYSTEM=1
  321. EFI_FW_BITS=$(cat /sys/firmware/efi/fw_platform_size)
  322. if [ $EFI_FW_BITS -eq 32 ]; then
  323. EFI_TARGET=i386-efi
  324. else
  325. EFI_TARGET=x86_64-efi
  326. fi
  327. fi
  328. # menü renkleri
  329. BLACK="\Z0"
  330. RED="\Z1"
  331. GREEN="\Z2"
  332. YELLOW="\Z3"
  333. BLUE="\Z4"
  334. MAGENTA="\Z5"
  335. CYAN="\Z6"
  336. WHITE="\Z7"
  337. BOLD="\Zb"
  338. REVERSE="\Zr"
  339. UNDERLINE="\Zu"
  340. RESET="\Zn"
  341. # menü pencere özellikleri
  342. MENULABEL="${BOLD}${LANG_MENULABEL}${RESET}"
  343. MENUSIZE="14 60 0"
  344. INPUTSIZE="8 60"
  345. MSGBOXSIZE="8 70"
  346. YESNOSIZE="$INPUTSIZE"
  347. WIDGET_SIZE="10 70"
  348. DIALOG() {
  349. rm -f $ANSWER
  350. dialog --colors --keep-tite --no-shadow --no-mouse \
  351. --backtitle "${BOLD}${WHITE}Milis Linux ${LANG_INSTALLATION} ($MILIS_SURUM)${RESET}" \
  352. --cancel-label "$LANG_BACK" --aspect 20 "$@" 2>$ANSWER
  353. return $?
  354. }
  355. INFOBOX() {
  356. dialog --colors --no-shadow --no-mouse \
  357. --backtitle "${BOLD}${WHITE}Milis Linux ${LANG_INSTALLATION} ($MILIS_SURUM)${RESET}" \
  358. --title "${TITLE}" --aspect 20 --infobox "$@"
  359. }
  360. DIE() {
  361. rval=$1
  362. [ -z "$rval" ] && rval=0
  363. clear
  364. rm -f $ANSWER $TARGET_FSTAB
  365. # printk yeniden aktif etme
  366. if [ -w /proc/sys/kernel/printk ]; then
  367. echo 4 >/proc/sys/kernel/printk
  368. fi
  369. umount_filesystems
  370. exit $rval
  371. }
  372. set_option() {
  373. if grep -Eq "^${1}.*" $AYAR_DOSYASI; then
  374. sed -i -e "/^${1}.*/d" $AYAR_DOSYASI
  375. fi
  376. echo "${1} ${2}" >>$AYAR_DOSYASI
  377. }
  378. get_option() {
  379. echo $(grep -E "^${1}.*" $AYAR_DOSYASI|sed -e "s|${1}||")
  380. }
  381. # ISO-639'e göre dil isimleri
  382. iso639_language() {
  383. case "$1" in
  384. aa) echo "Afar" ;;
  385. af) echo "Afrikaans" ;;
  386. an) echo "Aragonese" ;;
  387. ar) echo "Arabic" ;;
  388. ast) echo "Asturian" ;;
  389. be) echo "Belgian" ;;
  390. bg) echo "Bulgarian" ;;
  391. bhb) echo "Bhili" ;;
  392. br) echo "Breton" ;;
  393. bs) echo "Bosnian" ;;
  394. ca) echo "Catalan" ;;
  395. cs) echo "Czech" ;;
  396. cy) echo "Welsh" ;;
  397. da) echo "Danish" ;;
  398. de) echo "German" ;;
  399. el) echo "Greek" ;;
  400. en) echo "English" ;;
  401. es) echo "Spanish" ;;
  402. et) echo "Estonian" ;;
  403. eu) echo "Basque" ;;
  404. fi) echo "Finnish" ;;
  405. fo) echo "Faroese" ;;
  406. fr) echo "French" ;;
  407. ga) echo "Irish" ;;
  408. gd) echo "Scottish Gaelic" ;;
  409. gl) echo "Galician" ;;
  410. gv) echo "Manx" ;;
  411. he) echo "Hebrew" ;;
  412. hr) echo "Croatian" ;;
  413. hsb) echo "Upper Sorbian" ;;
  414. hu) echo "Hungarian" ;;
  415. id) echo "Indonesian" ;;
  416. is) echo "Icelandic" ;;
  417. it) echo "Italian" ;;
  418. iw) echo "Hebrew" ;;
  419. ja) echo "Japanese" ;;
  420. ka) echo "Georgian" ;;
  421. kk) echo "Kazakh" ;;
  422. kl) echo "Kalaallisut" ;;
  423. ko) echo "Korean" ;;
  424. ku) echo "Kurdish" ;;
  425. kw) echo "Cornish" ;;
  426. lg) echo "Ganda" ;;
  427. lt) echo "Lithuanian" ;;
  428. lv) echo "Latvian" ;;
  429. mg) echo "Malagasy" ;;
  430. mi) echo "Maori" ;;
  431. mk) echo "Macedonian" ;;
  432. ms) echo "Malay" ;;
  433. mt) echo "Maltese" ;;
  434. nb) echo "Norwegian Bokmål" ;;
  435. nl) echo "Dutch" ;;
  436. nn) echo "Norwegian Nynorsk" ;;
  437. oc) echo "Occitan" ;;
  438. om) echo "Oromo" ;;
  439. pl) echo "Polish" ;;
  440. pt) echo "Portugese" ;;
  441. ro) echo "Romanian" ;;
  442. ru) echo "Russian" ;;
  443. sk) echo "Slovak" ;;
  444. sl) echo "Slovenian" ;;
  445. so) echo "Somali" ;;
  446. sq) echo "Albanian" ;;
  447. st) echo "Southern Sotho" ;;
  448. sv) echo "Swedish" ;;
  449. tcy) echo "Tulu" ;;
  450. tg) echo "Tajik" ;;
  451. th) echo "Thai" ;;
  452. tl) echo "Tagalog" ;;
  453. tr) echo "Türkçe" ;;
  454. uk) echo "Ukrainian" ;;
  455. uz) echo "Uzbek" ;;
  456. wa) echo "Walloon" ;;
  457. xh) echo "Xhosa" ;;
  458. yi) echo "Yiddish" ;;
  459. zh) echo "Chinese" ;;
  460. zu) echo "Zulu" ;;
  461. *) echo "$1" ;;
  462. esac
  463. }
  464. # ISO-3166 ülke kodları yerel ayarlar için
  465. iso3166_country() {
  466. case "$1" in
  467. AD) echo "Andorra" ;;
  468. AE) echo "United Arab Emirates" ;;
  469. AL) echo "Albania" ;;
  470. AR) echo "Argentina" ;;
  471. AT) echo "Austria" ;;
  472. AU) echo "Australia" ;;
  473. BA) echo "Bonsia and Herzegovina" ;;
  474. BE) echo "Belgium" ;;
  475. BG) echo "Bulgaria" ;;
  476. BH) echo "Bahrain" ;;
  477. BO) echo "Bolivia" ;;
  478. BR) echo "Brazil" ;;
  479. BW) echo "Botswana" ;;
  480. BY) echo "Belarus" ;;
  481. CA) echo "Canada" ;;
  482. CH) echo "Switzerland" ;;
  483. CL) echo "Chile" ;;
  484. CN) echo "China" ;;
  485. CO) echo "Colombia" ;;
  486. CR) echo "Costa Rica" ;;
  487. CY) echo "Cyprus" ;;
  488. CZ) echo "Czech Republic" ;;
  489. DE) echo "Germany" ;;
  490. DJ) echo "Djibouti" ;;
  491. DK) echo "Denmark" ;;
  492. DO) echo "Dominican Republic" ;;
  493. DZ) echo "Algeria" ;;
  494. EC) echo "Ecuador" ;;
  495. EE) echo "Estonia" ;;
  496. EG) echo "Egypt" ;;
  497. ES) echo "Spain" ;;
  498. FI) echo "Finland" ;;
  499. FO) echo "Faroe Islands" ;;
  500. FR) echo "France" ;;
  501. GB) echo "Great Britain" ;;
  502. GE) echo "Georgia" ;;
  503. GL) echo "Greenland" ;;
  504. GR) echo "Greece" ;;
  505. GT) echo "Guatemala" ;;
  506. HK) echo "Hong Kong" ;;
  507. HN) echo "Honduras" ;;
  508. HR) echo "Croatia" ;;
  509. HU) echo "Hungary" ;;
  510. ID) echo "Indonesia" ;;
  511. IE) echo "Ireland" ;;
  512. IL) echo "Israel" ;;
  513. IN) echo "India" ;;
  514. IQ) echo "Iraq" ;;
  515. IS) echo "Iceland" ;;
  516. IT) echo "Italy" ;;
  517. JO) echo "Jordan" ;;
  518. JP) echo "Japan" ;;
  519. KE) echo "Kenya" ;;
  520. KR) echo "Korea, Republic of" ;;
  521. KW) echo "Kuwait" ;;
  522. KZ) echo "Kazakhstan" ;;
  523. LB) echo "Lebanon" ;;
  524. LT) echo "Lithuania" ;;
  525. LU) echo "Luxembourg" ;;
  526. LV) echo "Latvia" ;;
  527. LY) echo "Libya" ;;
  528. MA) echo "Morocco" ;;
  529. MG) echo "Madagascar" ;;
  530. MK) echo "Macedonia" ;;
  531. MT) echo "Malta" ;;
  532. MX) echo "Mexico" ;;
  533. MY) echo "Malaysia" ;;
  534. NI) echo "Nicaragua" ;;
  535. NL) echo "Netherlands" ;;
  536. NO) echo "Norway" ;;
  537. NZ) echo "New Zealand" ;;
  538. OM) echo "Oman" ;;
  539. PA) echo "Panama" ;;
  540. PE) echo "Peru" ;;
  541. PH) echo "Philippines" ;;
  542. PL) echo "Poland" ;;
  543. PR) echo "Puerto Rico" ;;
  544. PT) echo "Portugal" ;;
  545. PY) echo "Paraguay" ;;
  546. QA) echo "Qatar" ;;
  547. RO) echo "Romania" ;;
  548. RU) echo "Russian Federation" ;;
  549. SA) echo "Saudi Arabia" ;;
  550. SD) echo "Sudan" ;;
  551. SE) echo "Sweden" ;;
  552. SG) echo "Singapore" ;;
  553. SI) echo "Slovenia" ;;
  554. SK) echo "Slovakia" ;;
  555. SO) echo "Somalia" ;;
  556. SV) echo "El Salvador" ;;
  557. SY) echo "Syria" ;;
  558. TH) echo "Thailand" ;;
  559. TJ) echo "Tajikistan" ;;
  560. TN) echo "Tunisia" ;;
  561. TR) echo "Türkiye" ;;
  562. TW) echo "Taiwan" ;;
  563. UA) echo "Ukraine" ;;
  564. UG) echo "Uganda" ;;
  565. US) echo "United States of America" ;;
  566. UY) echo "Uruguay" ;;
  567. UZ) echo "Uzbekistan" ;;
  568. VE) echo "Venezuela" ;;
  569. YE) echo "Yemen" ;;
  570. ZA) echo "South Africa" ;;
  571. ZW) echo "Zimbabwe" ;;
  572. *) echo "$1" ;;
  573. esac
  574. }
  575. show_disks() {
  576. local dev size sectorsize gbytes
  577. # IDE
  578. for dev in $(ls /sys/block|grep -E '^hd'); do
  579. if [ "$(cat /sys/block/$dev/device/media)" = "disk" ]; then
  580. # sektör, alan bilgisinin bulunması;
  581. echo "/dev/$dev"
  582. size=$(cat /sys/block/$dev/size)
  583. sectorsize=$(cat /sys/block/$dev/queue/hw_sector_size)
  584. gbytes="$(($size * $sectorsize / 1024 / 1024 / 1024))"
  585. echo "size:${gbytes}GB;sector_size:$sectorsize"
  586. fi
  587. done
  588. # SATA/SCSI ve Virtual diskleri (virtio)
  589. for dev in $(ls /sys/block|grep -E '^([sv]|xv)d|mmcblk|nvme'); do
  590. echo "/dev/$dev"
  591. size=$(cat /sys/block/$dev/size)
  592. sectorsize=$(cat /sys/block/$dev/queue/hw_sector_size)
  593. gbytes="$(($size * $sectorsize / 1024 / 1024 / 1024))"
  594. echo "size:${gbytes}GB;sector_size:$sectorsize"
  595. done
  596. # cciss(4) aygıtları
  597. for dev in $(ls /dev/cciss 2>/dev/null|grep -E 'c[0-9]d[0-9]$'); do
  598. echo "/dev/cciss/$dev"
  599. size=$(cat /sys/block/cciss\!$dev/size)
  600. sectorsize=$(cat /sys/block/cciss\!$dev/queue/hw_sector_size)
  601. gbytes="$(($size * $sectorsize / 1024 / 1024 / 1024))"
  602. echo "size:${gbytes}GB;sector_size:$sectorsize"
  603. done
  604. }
  605. show_partitions() {
  606. local dev fstype fssize p part
  607. set -- $(show_disks)
  608. while [ $# -ne 0 ]; do
  609. disk=$(basename $1)
  610. shift 2
  611. # ATA/SCSI/SATA
  612. for p in /sys/block/$disk/$disk*; do
  613. if [ -d $p ]; then
  614. part=$(basename $p)
  615. fstype=$(lsblk -nfr /dev/$part|awk '{print $2}'|head -1)
  616. [ "$fstype" = "iso9660" ] && continue
  617. [ "$fstype" = "crypto_LUKS" ] && continue
  618. [ "$fstype" = "LVM2_member" ] && continue
  619. fssize=$(lsblk -nr /dev/$part|awk '{print $4}'|head -1)
  620. echo "/dev/$part"
  621. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  622. fi
  623. done
  624. done
  625. # Device Mapper
  626. for p in /dev/mapper/*; do
  627. part=$(basename $p)
  628. [ "${part}" = "live-rw" ] && continue
  629. [ "${part}" = "live-base" ] && continue
  630. [ "${part}" = "control" ] && continue
  631. fstype=$(lsblk -nfr $p|awk '{print $2}'|head -1)
  632. fssize=$(lsblk -nr $p|awk '{print $4}'|head -1)
  633. echo "${p}"
  634. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  635. done
  636. # Software raid (md)
  637. for p in $(ls -d /dev/md* 2>/dev/null|grep '[0-9]'); do
  638. part=$(basename $p)
  639. if cat /proc/mdstat|grep -qw $part; then
  640. fstype=$(lsblk -nfr /dev/$part|awk '{print $2}')
  641. [ "$fstype" = "crypto_LUKS" ] && continue
  642. [ "$fstype" = "LVM2_member" ] && continue
  643. fssize=$(lsblk -nr /dev/$part|awk '{print $4}')
  644. echo "$p"
  645. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  646. fi
  647. done
  648. # cciss(4) aygıtları
  649. for part in $(ls /dev/cciss 2>/dev/null|grep -E 'c[0-9]d[0-9]p[0-9]+'); do
  650. fstype=$(lsblk -nfr /dev/cciss/$part|awk '{print $2}')
  651. [ "$fstype" = "crypto_LUKS" ] && continue
  652. [ "$fstype" = "LVM2_member" ] && continue
  653. fssize=$(lsblk -nr /dev/cciss/$part|awk '{print $4}')
  654. echo "/dev/cciss/$part"
  655. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  656. done
  657. if [ -e /sbin/lvs ]; then
  658. # LVM
  659. lvs --noheadings|while read lvname vgname perms size; do
  660. echo "/dev/mapper/${vgname}-${lvname}"
  661. echo "size:${size};fstype:lvm"
  662. done
  663. fi
  664. }
  665. menu_filesystems() {
  666. local dev fstype fssize mntpoint reformat
  667. while true; do
  668. DIALOG --ok-label "$LANG_CHANGE" --cancel-label "$LANG_DONE" \
  669. --title " $LANG_SELECTPARTITION " --menu "$MENULABEL" \
  670. ${MENUSIZE} $(show_partitions)
  671. [ $? -ne 0 ] && return
  672. dev=$(cat $ANSWER)
  673. DIALOG --title " `printf "$LANG_SELECTFILESYSTEM" "$dev"` " \
  674. --menu "$MENULABEL" ${MENUSIZE} \
  675. "btrfs" "Oracle Btrfs" \
  676. "ext2" "Linux ext2 (no journaling)" \
  677. "ext3" "Linux ext3 (journal)" \
  678. "ext4" "Linux ext4 (journal)" \
  679. "f2fs" "Flash-Friendly Filesystem" \
  680. "swap" "Linux swap" \
  681. "vfat" "FAT32" \
  682. "xfs" "SGI's XFS"
  683. if [ $? -eq 0 ]; then
  684. fstype=$(cat $ANSWER)
  685. else
  686. continue
  687. fi
  688. if [ "$fstype" != "swap" ]; then
  689. DIALOG --inputbox "`printf "$LANG_MOUNTPOINT" "$dev"`:" ${INPUTSIZE}
  690. if [ $? -eq 0 ]; then
  691. mntpoint=$(cat $ANSWER)
  692. elif [ $? -eq 1 ]; then
  693. continue
  694. fi
  695. else
  696. mntpoint=swap
  697. fi
  698. DIALOG --yesno "`printf "$LANG_NEWFILESYSTEM" "$dev"`" ${YESNOSIZE}
  699. if [ $? -eq 0 ]; then
  700. reformat=1
  701. elif [ $? -eq 1 ]; then
  702. reformat=0
  703. else
  704. continue
  705. fi
  706. fssize=$(lsblk -nr $dev|awk '{print $4}')
  707. set -- "$fstype" "$fssize" "$mntpoint" "$reformat"
  708. if [ -n "$1" -a -n "$2" -a -n "$3" -a -n "$4" ]; then
  709. local bdev=$(basename $dev)
  710. local ddev=$(basename $(dirname $dev))
  711. if [ "$ddev" != "dev" ]; then
  712. sed -i -e "/^MOUNTPOINT \/dev\/${ddev}\/${bdev}.*/d" $AYAR_DOSYASI
  713. else
  714. sed -i -e "/^MOUNTPOINT \/dev\/${bdev}.*/d" $AYAR_DOSYASI
  715. fi
  716. echo "MOUNTPOINT $dev $1 $2 $3 $4" >>$AYAR_DOSYASI
  717. fi
  718. done
  719. }
  720. menu_partitions() {
  721. DIALOG --title " $LANG_SELECTDISKPART " \
  722. --menu "$MENULABEL" ${MENUSIZE} $(show_disks)
  723. if [ $? -eq 0 ]; then
  724. local device=$(cat $ANSWER)
  725. DIALOG --title "`printf "$LANG_MODPARTTABLE" "$device"`" --msgbox "`printf "$LANG_PARTITIONDIALOG" "${BOLD}" "$device" "${RESET}" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}"`" 18 80
  726. if [ $? -eq 0 ]; then
  727. while true; do
  728. clear; cfdisk $device; PARTITIONS_YAPILDI=1
  729. break
  730. done
  731. else
  732. return
  733. fi
  734. fi
  735. }
  736. menu_keymap() {
  737. if [ -f /usr/bin/lightdm ];then
  738. local _keymaps="$(sed '/^! layout$/,/^ *$/!d;//d' /usr/share/X11/xkb/rules/base.lst | awk {'print $1 ":" $2'})"
  739. else
  740. local _keymaps="$(find /usr/share/kbd/keymaps/ -type f -iname "*.map.gz" -printf "%f\n" | sed 's|.map.gz||g' | sort)"
  741. fi
  742. local _KEYMAPS=
  743. for f in ${_keymaps}; do
  744. _KEYMAPS="${_KEYMAPS} ${f} -"
  745. done
  746. while true; do
  747. DIALOG --title " $LANG_SELKEYMAP " --menu "$MENULABEL" 14 70 14 ${_KEYMAPS}
  748. if [ $? -eq 0 ]; then
  749. set_option KEYMAP "$(cat $ANSWER)"
  750. loadkeys "$(cat $ANSWER)"
  751. KEYBOARD_YAPILDI=1
  752. break
  753. else
  754. return
  755. fi
  756. done
  757. }
  758. set_keymap() {
  759. local KEYMAP=$(get_option KEYMAP)
  760. if [ -f /usr/bin/lightdm ];then
  761. echo "$KEYMAP" | cut -d':' -f1 > $HEDEF/home/"$(get_option USERLOGIN)"/.Xkbmap
  762. else
  763. sed -i -e "s|KEYMAP=.*|KEYMAP=$KEYMAP|g" $HEDEF/etc/sysconfig/rc.site
  764. fi
  765. }
  766. menu_locale() {
  767. local _locales="$(locale -a)"
  768. local LOCALES ISO639 ISO3166
  769. local TMPFILE=$(mktemp -t vinstall-XXXXXXXX || exit 1)
  770. INFOBOX "$LANG_SCANLOCALES ..." 4 60
  771. for f in ${_locales}; do
  772. eval $(echo $f | awk 'BEGIN { FS="." } \
  773. { FS="_"; split($1, a); printf "ISO639=%s ISO3166=%s\n", a[1], a[2] }')
  774. echo "$f|$(iso639_language $ISO639) ($(iso3166_country $ISO3166))|" >> $TMPFILE
  775. done
  776. clear
  777. # ISO-639^e göre dil isimlerinin sıralanması
  778. LOCALES=$(sort -t '|' -k 2 < $TMPFILE | xargs | sed -e's/| /|/g')
  779. rm -f $TMPFILE
  780. while true; do
  781. (IFS="|"; DIALOG --title " $LANG_SELLOCAL " --menu "$MENULABEL" 18 70 18 ${LOCALES})
  782. if [ $? -eq 0 ]; then
  783. set_option LOCALE "$(cat $ANSWER)"
  784. LOCALE_YAPILDI=1
  785. break
  786. else
  787. return
  788. fi
  789. done
  790. }
  791. set_locale() {
  792. local LOCALE=$(get_option LOCALE)
  793. rm -rf $HEDEF/etc/profile.d/i18n.sh
  794. echo "export LANG=$LOCALE" > $HEDEF/etc/profile.d/i18n.sh
  795. echo "export LC_ALL=$LOCALE" >> $HEDEF/etc/profile.d/i18n.sh
  796. echo "export LANGUAGE=$LOCALE" >> $HEDEF/etc/profile.d/i18n.sh
  797. # environment içinde de ayarlanması
  798. echo "LANG=$LOCALE" > $HEDEF/etc/environment
  799. }
  800. menu_timezone() {
  801. local _tzones="$(cd /usr/share/zoneinfo; find Africa/ America/ Antarctica/ Arctic/ Asia/ Atlantic/ Australia/ Europe/ Indian/ Pacific/ UTC Turkey -type f | sort)"
  802. local _TIMEZONES=
  803. for f in ${_tzones}; do
  804. _TIMEZONES="${_TIMEZONES} ${f} -"
  805. done
  806. while true; do
  807. DIALOG --title " $LANG_SELTZONE " --menu "$MENULABEL" 14 70 14 ${_TIMEZONES}
  808. if [ $? -eq 0 ]; then
  809. set_option TIMEZONE "$(cat $ANSWER)"
  810. TIMEZONE_YAPILDI=1
  811. break
  812. else
  813. return
  814. fi
  815. done
  816. }
  817. set_timezone() {
  818. local MYTIMEZONE="$(get_option TIMEZONE)"
  819. if [ -f $HEDEF/etc/sysconfig/clock ];then
  820. sed -i '/^TIMEZONE=/ d' $HEDEF/etc/sysconfig/clock
  821. echo "TIMEZONE=\"$MYTIMEZONE\"" >> $HEDEF/etc/sysconfig/clock
  822. fi
  823. if [ -f /usr/share/zoneinfo/$MYTIMEZONE ];then
  824. rm -f $HEDEF/etc/localtime
  825. ln -s /usr/share/zoneinfo/$MYTIMEZONE $HEDEF/etc/localtime
  826. fi
  827. }
  828. menu_hostname() {
  829. while true; do
  830. DIALOG --inputbox "$LANG_SETHOST:" ${INPUTSIZE}
  831. if [ $? -eq 0 ]; then
  832. set_option HOSTNAME "$(cat $ANSWER)"
  833. HOSTNAME_YAPILDI=1
  834. break
  835. else
  836. return
  837. fi
  838. done
  839. }
  840. set_hostname() {
  841. echo "$(get_option HOSTNAME)" > $HEDEF/etc/hostname
  842. echo "127.0.0.1 $(get_option HOSTNAME)" >> /etc/hosts
  843. #sed -i -e "s|HOSTNAME=.*|HOSTNAME=\"$(get_option HOSTNAME)\"|g" $HEDEF/etc/sysconfig/network
  844. }
  845. menu_rootpassword() {
  846. local _firstpass _secondpass _desc
  847. while true; do
  848. if [ -z "${_firstpass}" ]; then
  849. _desc="$LANG_ROOTPW"
  850. else
  851. _desc="$LANG_ROOTPWAGAIN"
  852. fi
  853. DIALOG --insecure --passwordbox "${_desc}" ${INPUTSIZE}
  854. if [ $? -eq 0 ]; then
  855. if [ -z "${_firstpass}" ]; then
  856. _firstpass="$(cat $ANSWER)"
  857. else
  858. _secondpass="$(cat $ANSWER)"
  859. fi
  860. if [ -n "${_firstpass}" -a -n "${_secondpass}" ]; then
  861. if [ "${_firstpass}" != "${_secondpass}" ]; then
  862. INFOBOX "$LANG_PWNOTMATCH" 6 60
  863. unset _firstpass _secondpass
  864. sleep 2 && clear && continue
  865. fi
  866. set_option ROOTPASSWORD "${_firstpass}"
  867. ROOTPASSWORD_YAPILDI=1
  868. break
  869. fi
  870. else
  871. return
  872. fi
  873. done
  874. }
  875. set_rootpassword() {
  876. echo "root:$(get_option ROOTPASSWORD)" | chpasswd -R $HEDEF -c SHA512
  877. }
  878. menu_useraccount() {
  879. local _firstpass _secondpass _desc
  880. local _groups _status _group _checklist
  881. local _preset
  882. while true; do
  883. _preset=$(get_option USERLOGIN)
  884. [ -z "$_preset" ] && _preset=""
  885. DIALOG --inputbox "$LANG_LOGINNAME:" ${INPUTSIZE} "$_preset"
  886. if [ $? -eq 0 ]; then
  887. set_option USERLOGIN "$(cat $ANSWER)"
  888. USERLOGIN_YAPILDI=1
  889. break
  890. else
  891. return
  892. fi
  893. done
  894. while true; do
  895. _preset=$(get_option USERNAME)
  896. [ -z "$_preset" ] && _preset=""
  897. DIALOG --inputbox "$LANG_USERNAME '$(get_option USERLOGIN)' :" \
  898. ${INPUTSIZE} "$_preset"
  899. if [ $? -eq 0 ]; then
  900. set_option USERNAME "$(cat $ANSWER)"
  901. USERNAME_YAPILDI=1
  902. break
  903. else
  904. return
  905. fi
  906. done
  907. while true; do
  908. if [ -z "${_firstpass}" ]; then
  909. _desc="$LANG_PASSWORD '$(get_option USERLOGIN)'"
  910. else
  911. _desc="$LANG_PASSWORDAGAIN '$(get_option USERLOGIN)'"
  912. fi
  913. DIALOG --insecure --passwordbox "${_desc}" ${INPUTSIZE}
  914. if [ $? -eq 0 ]; then
  915. if [ -z "${_firstpass}" ]; then
  916. _firstpass="$(cat $ANSWER)"
  917. else
  918. _secondpass="$(cat $ANSWER)"
  919. fi
  920. if [ -n "${_firstpass}" -a -n "${_secondpass}" ]; then
  921. if [ "${_firstpass}" != "${_secondpass}" ]; then
  922. INFOBOX "$LANG_PWNOTMATCH" 6 60
  923. unset _firstpass _secondpass
  924. sleep 2 && clear && continue
  925. fi
  926. set_option USERPASSWORD "${_firstpass}"
  927. USERPASSWORD_YAPILDI=1
  928. break
  929. fi
  930. else
  931. return
  932. fi
  933. done
  934. #_groups="wheel,audio,video,floppy,cdrom,optical,kvm"
  935. _groups="users,disk,network,floppy,fuse,video,lp,tty,audio,cdrom,scanner,adm,vboxusers,wheel"
  936. while true; do
  937. _desc="$LANG_GMEMLOGIN '$(get_option USERLOGIN)':"
  938. for _group in $(cat /etc/group); do
  939. _gid="$(echo ${_group} | cut -d: -f3)"
  940. _group="$(echo ${_group} | cut -d: -f1)"
  941. _status="$(echo ${_groups} | grep -w ${_group})"
  942. if [ -z "${_status}" ]; then
  943. _status=off
  944. else
  945. _status=on
  946. fi
  947. if [ -z "${_checklist}" ]; then
  948. _checklist="${_group} ${_group}:${_gid} ${_status}"
  949. else
  950. _checklist="${_checklist} ${_group} ${_group}:${_gid} ${_status}"
  951. fi
  952. done
  953. DIALOG --no-tags --checklist "${_desc}" 20 60 18 ${_checklist}
  954. if [ $? -eq 0 ]; then
  955. set_option USERGROUPS $(cat $ANSWER | sed -e's| |,|g')
  956. USERGROUPS_YAPILDI=1
  957. break
  958. else
  959. return
  960. fi
  961. done
  962. }
  963. set_useraccount() {
  964. USERLOGIN_YAPILDI=$(get_option USERLOGIN)
  965. USERPASSWORD_YAPILDI=$(get_option USERPASSWORD)
  966. USERNAME_YAPILDI=$(get_option USERNAME)
  967. USERGROUPS_YAPILDI=$(get_option USERGROUPS)
  968. [ -z "$USERLOGIN_YAPILDI" ] && return
  969. [ -z "$USERPASSWORD_YAPILDI" ] && return
  970. [ -z "$USERNAME_YAPILDI" ] && return
  971. [ -z "$USERGROUPS_YAPILDI" ] && return
  972. #chroot $HEDEF useradd -m -G $(get_option USERGROUPS) -c "$(get_option USERNAME)" $(get_option USERLOGIN)
  973. useradd -R $HEDEF -m -G $(get_option USERGROUPS) -c "$(get_option USERNAME)" $(get_option USERLOGIN)
  974. #chroot $HEDEF echo "$(get_option USERLOGIN):$(get_option USERPASSWORD)" | chpasswd -R $HEDEF -c SHA512
  975. echo "$(get_option USERLOGIN):$(get_option USERPASSWORD)" | chpasswd -R $HEDEF -c SHA512
  976. }
  977. menu_bootloader() {
  978. while true; do
  979. DIALOG --title " $LANG_BOOTLOADER" \
  980. --menu "$MENULABEL" ${MENUSIZE} $(show_disks) none "$LANG_BOOTLOTHER"
  981. if [ $? -eq 0 ]; then
  982. set_option BOOTLOADER "$(cat $ANSWER)"
  983. BOOTLOADER_YAPILDI=1
  984. break
  985. else
  986. return
  987. fi
  988. done
  989. while true; do
  990. DIALOG --yesno "$LANG_BOOTLGRAPH" ${YESNOSIZE}
  991. if [ $? -eq 0 ]; then
  992. set_option TEXTCONSOLE 0
  993. break
  994. elif [ $? -eq 1 ]; then
  995. set_option TEXTCONSOLE 1
  996. break
  997. else
  998. return
  999. fi
  1000. done
  1001. }
  1002. set_bootloader() {
  1003. local dev=$(get_option BOOTLOADER) grub_args="--force "
  1004. if [ "$dev" = "none" ]; then return; fi
  1005. # efi sistem ve efivar kontrolü
  1006. if [ -n "$EFI_SYSTEM" ]; then
  1007. grub_args="--force --target=$EFI_TARGET --efi-directory=/boot/efi --bootloader-id=boot --recheck"
  1008. chroot $HEDEF grub-install $grub_args $dev >$LOG 2>&1
  1009. cp $HEDEF/boot/efi/EFI/boot/grubx64.efi $HEDEF/boot/efi/EFI/boot/bootx64.efi
  1010. else
  1011. echo "`printf "$LANG_GRUBINST" "$grub_args $dev"`" >$LOG
  1012. chroot $HEDEF grub-install $grub_args $dev >$LOG 2>&1
  1013. fi
  1014. if [ $? -ne 0 ]; then
  1015. DIALOG --msgbox "`printf "$LANG_GRUBFAIL" "${BOLD}${RED}" "${RESET}" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1016. DIE 1
  1017. fi
  1018. echo "`printf "$LANG_GRUBMKCONF" "$HEDEF"`" >$LOG
  1019. chroot $HEDEF grub-mkconfig -o /boot/grub/grub.cfg >$LOG 2>&1
  1020. if [ $? -ne 0 ]; then
  1021. DIALOG --msgbox "`printf "$LANG_GRUBMKCONFFAIL" "${BOLD}${RED}" "${RESET}" "$LOG"`" ${MSGBOXSIZE}
  1022. DIE 1
  1023. fi
  1024. }
  1025. validate_filesystems() {
  1026. local mnts dev size fstype mntpt mkfs rootfound fmt
  1027. local usrfound efi_system_partition
  1028. unset TARGETFS
  1029. mnts=$(grep -E '^MOUNTPOINT.*' $AYAR_DOSYASI)
  1030. set -- ${mnts}
  1031. while [ $# -ne 0 ]; do
  1032. fmt=""
  1033. dev=$2; fstype=$3; size=$4; mntpt="$5"; mkfs=$6
  1034. shift 6
  1035. if [ "$mntpt" = "/" ]; then
  1036. rootfound=1
  1037. elif [ "$mntpt" = "/usr" ]; then
  1038. usrfound=1
  1039. elif [ "$fstype" = "vfat" -a "$mntpt" = "/boot/efi" ]; then
  1040. efi_system_partition=1
  1041. fi
  1042. if [ "$mkfs" -eq 1 ]; then
  1043. fmt="$LANG_NEWFSYSTEM: "
  1044. fi
  1045. if [ -z "$TARGETFS" ]; then
  1046. TARGETFS="`printf "$LANG_MOUNTEDON" "${fmt}$dev" "$size" "$mntpt" "${fstype}"`"
  1047. else
  1048. TARGETFS="`printf "$LANG_MOUNTEDON" "${TARGETFS}${fmt}${dev}" "$size" "$mntpt" "${fstype}"`"
  1049. fi
  1050. done
  1051. if [ -z "$rootfound" ]; then
  1052. DIALOG --msgbox "`printf "$LANG_FSYSTEMNOTSET" "${BOLD}${RED}" "${RESET}" `" ${MSGBOXSIZE}
  1053. return 1
  1054. elif [ -n "$usrfound" ]; then
  1055. DIALOG --msgbox "`printf "$LANG_FSYSNOTSUPPORTED" "${BOLD}${RED}" "${RESET}"`" ${MSGBOXSIZE}
  1056. return 1
  1057. elif [ -n "$EFI_SYSTEM" -a -z "$efi_system_partition" ]; then
  1058. DIALOG --msgbox "`printf "$LANG_FSYSEFINOTSET" "${BOLD}${RED}" "${RESET}"`" ${MSGBOXSIZE}
  1059. fi
  1060. FILESYSTEMS_YAPILDI=1
  1061. }
  1062. create_filesystems() {
  1063. local mnts dev mntpt fstype fspassno mkfs size rv uuid
  1064. mnts=$(grep -E '^MOUNTPOINT.*' $AYAR_DOSYASI)
  1065. set -- ${mnts}
  1066. while [ $# -ne 0 ]; do
  1067. dev=$2; fstype=$3; mntpt="$5"; mkfs=$6
  1068. shift 6
  1069. # swap bölümleme
  1070. if [ "$fstype" = "swap" ]; then
  1071. swapoff $dev >/dev/null 2>&1
  1072. if [ "$mkfs" -eq 1 ]; then
  1073. mkswap $dev >$LOG 2>&1
  1074. if [ $? -ne 0 ]; then
  1075. DIALOG --msgbox "`printf "$LANG_SWAPFAIL" "${BOLD}${RED}" "${RESET}" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1076. DIE 1
  1077. fi
  1078. fi
  1079. swapon $dev >$LOG 2>&1
  1080. if [ $? -ne 0 ]; then
  1081. DIALOG --msgbox "`printf "$LANG_SWAPERROR" "${BOLD}${RED}" "${RESET}" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1082. DIE 1
  1083. fi
  1084. # hedef fstaba girdi eklenmesi
  1085. uuid=$(blkid -o value -s UUID "$dev")
  1086. echo "UUID=$uuid none swap sw 0 0" >>$TARGET_FSTAB
  1087. continue
  1088. fi
  1089. if [ "$mkfs" -eq 1 ]; then
  1090. case "$fstype" in
  1091. btrfs) MKFS="mkfs.btrfs -f"; modprobe btrfs >$LOG 2>&1;;
  1092. ext2) MKFS="mke2fs -F"; modprobe ext2 >$LOG 2>&1;;
  1093. ext3) MKFS="mke2fs -F -j"; modprobe ext3 >$LOG 2>&1;;
  1094. ext4) MKFS="mke2fs -F -t ext4"; modprobe ext4 >$LOG 2>&1;;
  1095. f2fs) MKFS="mkfs.f2fs"; modprobe f2fs >$LOG 2>&1;;
  1096. vfat) MKFS="mkfs.vfat -F32"; modprobe vfat >$LOG 2>&1;;
  1097. xfs) MKFS="mkfs.xfs -f"; modprobe xfs >$LOG 2>&1;;
  1098. esac
  1099. TITLE="`printf "$LANG_ERRLOGTITLE" "$LOG"`"
  1100. INFOBOX "`printf "$LANG_CREATEFSYS" "$fstype" "$dev" "$mntpt"`" 8 60
  1101. echo "`printf "$LANG_CREATEMKFS" "$MKFS $dev"`" >$LOG
  1102. # hedef disk bölümü bağlı olabilir, çözmek için
  1103. mount | grep -q "$dev" && umount -l $dev
  1104. $MKFS $dev >$LOG 2>&1; rv=$?
  1105. if [ $rv -ne 0 ]; then
  1106. DIALOG --msgbox "`printf "$LANG_CREATEFAIL" "${BOLD}${RED}" "${RESET}" "$fstype" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1107. DIE 1
  1108. fi
  1109. fi
  1110. # rootfs nin bağlanması
  1111. [ "$mntpt" != "/" ] && continue
  1112. mkdir -p $HEDEF
  1113. echo "`printf "$LANG_MOUNTINGON" "$dev" "$mntpt" "$fstype"`" >$LOG
  1114. mount -t $fstype $dev $HEDEF >$LOG 2>&1
  1115. if [ $? -ne 0 ]; then
  1116. DIALOG --msgbox "`printf "$LANG_MOUNTINGERR" "${BOLD}${RED}" "${RESET}" "$dev" "${mntpt}" "$LOG"`" ${MSGBOXSIZE}
  1117. DIE 1
  1118. fi
  1119. # hedef fstaba girdi eklenmesi
  1120. uuid=$(blkid -o value -s UUID "$dev")
  1121. if [ "$fstype" = "f2fs" ]; then
  1122. fspassno=0
  1123. else
  1124. fspassno=1
  1125. fi
  1126. echo "UUID=$uuid $mntpt $fstype defaults 0 $fspassno" >>$TARGET_FSTAB
  1127. done
  1128. # dosya sistemlerinin hedefe bağlanması
  1129. mnts=$(grep -E '^MOUNTPOINT.*' $AYAR_DOSYASI)
  1130. set -- ${mnts}
  1131. while [ $# -ne 0 ]; do
  1132. dev=$2; fstype=$3; mntpt="$5"
  1133. shift 6
  1134. [ "$mntpt" = "/" -o "$fstype" = "swap" ] && continue
  1135. mkdir -p ${HEDEF}${mntpt}
  1136. echo "$LANG_MOUNTINGON" >$LOG
  1137. mount -t $fstype $dev ${HEDEF}${mntpt} >$LOG 2>&1
  1138. if [ $? -ne 0 ]; then
  1139. DIALOG --msgbox "$LANG_MOUNTINGERR" ${MSGBOXSIZE}
  1140. DIE
  1141. fi
  1142. # hedef fstaba girdi eklenmesi
  1143. uuid=$(blkid -o value -s UUID "$dev")
  1144. echo "UUID=$uuid $mntpt $fstype defaults 0 2" >>$TARGET_FSTAB
  1145. done
  1146. }
  1147. mount_filesystems() {
  1148. for f in sys proc dev; do
  1149. [ ! -d $HEDEF/$f ] && mkdir $HEDEF/$f
  1150. echo "Mounting $HEDEF/$f..." >$LOG
  1151. mount --bind /$f $HEDEF/$f >$LOG 2>&1
  1152. done
  1153. }
  1154. umount_filesystems() {
  1155. local f
  1156. for f in sys/fs/fuse/connections sys proc dev; do
  1157. echo "Unmounting $HEDEF/$f..." >$LOG
  1158. umount $HEDEF/$f >$LOG 2>&1
  1159. done
  1160. local mnts="$(grep -E '^MOUNTPOINT.*$' $AYAR_DOSYASI)"
  1161. set -- ${mnts}
  1162. while [ $# -ne 0 ]; do
  1163. local dev=$2; local fstype=$3; local mntpt=$5
  1164. shift 6
  1165. if [ "$fstype" = "swap" ]; then
  1166. echo "`printf "$LANG_SWAPDISABLING" "$dev" `" >$LOG
  1167. swapoff $dev >$LOG 2>&1
  1168. continue
  1169. fi
  1170. if [ "$mntpt" != "/" ]; then
  1171. echo "`printf "$LANG_SWAPUNMOUNTING" "$HEDEF/$mntpt" `" >$LOG
  1172. umount $HEDEF/$mntpt >$LOG 2>&1
  1173. fi
  1174. done
  1175. echo "`printf "$LANG_SWAPUNMOUNTING" "$HEDEF"`" >$LOG
  1176. umount $HEDEF >$LOG 2>&1
  1177. }
  1178. log_and_count() {
  1179. local progress whole tenth
  1180. while read line; do
  1181. #echo "$line" >$LOG
  1182. copy_count=$((copy_count + 1))
  1183. progress=$((1000 * copy_count / copy_total))
  1184. if [ "$progress" != "$copy_progress" ]; then
  1185. whole=$((progress / 10))
  1186. tenth=$((progress % 10))
  1187. printf "$LANG_PROGRESS" $whole $tenth $copy_count $copy_total
  1188. copy_progress=$progress
  1189. fi
  1190. echo "$copy_progress" >$LOG
  1191. done
  1192. }
  1193. copy_rootfs() {
  1194. local tar_in="--create --one-file-system --xattrs"
  1195. TITLE="`printf "$LANG_ERRLOGTITLE" "$LOG"`"
  1196. INFOBOX "$LANG_COUNTFILES" 4 60
  1197. copy_total=$(tar ${tar_in} -v -f /dev/null / 2>/dev/null | wc -l)
  1198. export copy_total copy_count=0 copy_progress=
  1199. clear
  1200. tar ${tar_in} -f - / 2>/dev/null | \
  1201. tar --extract --xattrs --xattrs-include='*' --preserve-permissions -v -f - -C $HEDEF | \
  1202. log_and_count | \
  1203. DIALOG --title "${TITLE}" \
  1204. --progressbox "$LANG_CPLIVEIMG" 5 60
  1205. if [ $? -ne 0 ]; then
  1206. DIE 1
  1207. fi
  1208. unset copy_total copy_count copy_percent
  1209. }
  1210. menu_install() {
  1211. # dosya sistemi hazır değilse devam edilmeyecek.
  1212. validate_filesystems || return 1
  1213. ROOTPASSWORD_YAPILDI="$(get_option ROOTPASSWORD)"
  1214. BOOTLOADER_YAPILDI="$(get_option BOOTLOADER)"
  1215. if [ -z "$FILESYSTEMS_YAPILDI" ]; then
  1216. DIALOG --msgbox "`printf "$LANG_FSYSNOTCONF" "${BOLD}" "${RESET}"`" ${MSGBOXSIZE}
  1217. return 1
  1218. elif [ -z "$ROOTPASSWORD_YAPILDI" ]; then
  1219. DIALOG --msgbox "`printf "$LANG_ROOTPWNOTCONF" "${BOLD}" "${RESET}"`" ${MSGBOXSIZE}
  1220. return 1
  1221. elif [ -z "$BOOTLOADER_YAPILDI" ]; then
  1222. DIALOG --msgbox "`printf "$LANG_BOOTLNOTCONF" "${BOLD}" "${RESET}"`" ${MSGBOXSIZE}
  1223. return 1
  1224. fi
  1225. if [ -z "$FORMAT_ONAY" ]; then
  1226. DIALOG --yesno "`printf "$LANG_DESTROYWARN" "${BOLD}" "${RESET}" "${BOLD}${TARGETFS}${RESET}" "${BOLD}${RED}" "${RESET}" "${BOLD}" "${RESET}"`" 20 80 || return
  1227. fi
  1228. unset TARGETFS
  1229. # Dosya sistemlerinin oluşturulup-bağlanması
  1230. create_filesystems
  1231. # ağdan paket kurulum eklenecek.
  1232. KAYNAK="YEREL"
  1233. if [ $KAYNAK="YEREL" ]; then
  1234. # dosya sisteminin kopyalanması
  1235. copy_rootfs
  1236. USERNAME=$CANLI_KULLANICI
  1237. # Canlı kulanıcının silinmesi root değilse
  1238. if [ $USERNAME != "root" ];then
  1239. echo "`printf "$LANG_RMTARGET" "$USERNAME"`" >$LOG
  1240. chroot $HEDEF userdel -r $USERNAME >$LOG 2>&1
  1241. sed -i -e "/$USERNAME ALL=.*/d" $HEDEF/etc/sudoers
  1242. fi
  1243. TITLE="`printf "$LANG_ERRLOGTITLE" "$LOG"`"
  1244. INFOBOX "$LANG_BUILDINGINITRAMFS" 4 60
  1245. echo "$LANG_BUILDINGINITRAMFS" >$LOG
  1246. # gerekli dosya istemlerinin bağlanması
  1247. mount_filesystems
  1248. rm -f $HEDEF/boot/initramfs*
  1249. rm -f $HEDEF/boot/initrd*
  1250. rm -f $HEDEF/boot/kernel*
  1251. cp /boot/kernel-* $HEDEF/boot/
  1252. local sonek="milis"
  1253. local kversion=`ls $HEDEF/boot/kernel-* | xargs -I {} basename {} | head -n1 |cut -d'-' -f2`
  1254. chroot $HEDEF dracut --no-hostonly --xz --omit systemd --add-drivers "ahci" -f /boot/initrd.img-${kversion} $kversion-$sonek --force >>$LOG 2>&1
  1255. #chroot $HEDEF ln -s /boot/kernel-* /boot/kernel
  1256. rmdir $HEDEF/mnt/target
  1257. fi
  1258. INFOBOX "$LANG_APPLYSETTINGS" 4 60
  1259. # fstab ın hedef diske kopyalanması
  1260. install -Dm644 $TARGET_FSTAB $HEDEF/etc/fstab
  1261. # /tmp in tmpfs olarak bağlanması - milis2 de sorun verdi. ln: creating hard link `/usr/bin/abc' => `/tmp/abc#123/usr/bin/abc': Invalid cross-device link
  1262. # echo "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0" >> $HEDEF/etc/fstab
  1263. # keymap, bölgesel ve yerel zaman ayarları, hostname, root-kullanıcı şifre
  1264. #set_keymap
  1265. set_locale
  1266. set_timezone
  1267. set_hostname
  1268. set_rootpassword
  1269. set_useraccount
  1270. # Kullanıcı ve root için öntanımlı ayarların kopyalanması
  1271. #cp $HEDEF/etc/skel/.[bix]* $HEDEF/root
  1272. USERLOGIN="$(get_option USERLOGIN)"
  1273. mkdir -p $HEDEF/home/$USERLOGIN/
  1274. # todo!!! kull. ayarları updates/skel altından alınacak.
  1275. # todo!!! alias mps
  1276. # todo!!! source /etc/profile
  1277. if [ $CANLI_KULLANICI == "root" ];then
  1278. [ -d /root/.config ] && cp -rf /root/.config $HEDEF/home/$USERLOGIN/
  1279. [ -f /root/.xinitrc ] && cp -rf /root/.xinitrc $HEDEF/home/$USERLOGIN/
  1280. [ -f /root/.bashrc ] && cp -f /root/.bashrc $HEDEF/home/$USERLOGIN/
  1281. [ -f /root/.jwmrc ] && cp -rf /root/.jwmrc $HEDEF/home/$USERLOGIN/
  1282. if [ -d /run/initramfs/live/updates/root ];then
  1283. cp -rf /run/initramfs/live/updates/root/. $HEDEF/etc/skel/
  1284. cp -rf /run/initramfs/live/updates/root/. $HEDEF/home/$USERLOGIN/
  1285. fi
  1286. else
  1287. cp -rf /home/$CANLI_KULLANICI/.config $HEDEF/home/$USERLOGIN
  1288. cp -rf /run/initramfs/live/updates/home/$CANLI_KULLANICI/. $HEDEF/etc/skel/
  1289. cp -rf /run/initramfs/live/updates/home/$CANLI_KULLANICI/. $HEDEF/home/$USERLOGIN/
  1290. fi
  1291. # kurulum özgü dosyaların silinmesi
  1292. rm -f $HEDEF/root/bin/canli_kullanici.sh
  1293. rm -rf $HEDEF/etc/canli_kullanici
  1294. rm -rf $HEDEF/opt/Milis-Yukleyici
  1295. rm -f $HEDEF/root/Desktop/kurulum.desktop
  1296. rm -f $HEDEF/root/Masaüstü/kurulum.desktop
  1297. rm -f $HEDEF/home/$USERLOGIN/Desktop/kurulum.desktop
  1298. rm -f $HEDEF/home/$USERLOGIN/Masaüstü/kurulum.desktop
  1299. rm -f $HEDEF/root/Masaüstü/milis-kur.desktop
  1300. rm -f $HEDEF/etc/shadow- $HEDEF/etc/gshadow- $HEDEF/etc/passwd- $HEDEF/etc/group-
  1301. #sed -i "/^$USERLOGIN/d" $HEDEF/etc/security/opasswd
  1302. [ -f $HEDEF/etc/lightdm/lightdm.conf.orj ] && cp $HEDEF/etc/lightdm/lightdm.conf.orj $HEDEF/etc/lightdm/lightdm.conf
  1303. YDIL="$(echo "$(get_option LOCALE)" | tr "." "\n" | head -n1)"
  1304. echo "$YDIL" > $HEDEF/home/$USERLOGIN/.config/user-dirs.locale
  1305. # dil Türkçe ise kullanıcı dizinlerindeki Türkçe adlandırmanın düzeltilmesi
  1306. set_keymap
  1307. chroot $HEDEF chown $USERLOGIN:$USERLOGIN -R /home/$USERLOGIN
  1308. rm -f $HEDEF/home/$USERLOGIN/.config/user-dirs.dirs
  1309. [ -d $HEDEF/dev/snd ] && chroot $HEDEF setfacl -m u:$USERLOGIN:rw /dev/snd/*
  1310. if [ -f $HEDEF/etc/sudoers ]; then
  1311. if [ -z "$(echo $(get_option USERGROUPS) | grep -w wheel)" -a -n "$USERLOGIN" ]; then
  1312. # wheel grubuna üye olamayan kullanıcı için sudo açılır.
  1313. echo "# `printf "$LANG_ENABLESUDO" "$USERLOGIN"`" >> $HEDEF/etc/sudoers
  1314. echo "$USERLOGIN ALL=(ALL) ALL" >> $HEDEF/etc/sudoers
  1315. else
  1316. # wheel grubuna üye olan kullanıcı için sudoers eklemesi yapılır.
  1317. sed -i $HEDEF/etc/sudoers \
  1318. -e "s;#.*%wheel ALL=(ALL) ALL;%wheel ALL=(ALL) ALL;"
  1319. fi
  1320. unset USERLOGIN
  1321. fi
  1322. # Text tabanlı açılışı aktif et seçiliyse
  1323. if [ "$(get_option TEXTCONSOLE)" = "1" ]; then
  1324. sed -i $HEDEF/etc/default/grub \
  1325. -e 's|#\(GRUB_TERMINAL_INPUT\).*|\1=console|' \
  1326. -e 's|#\(GRUB_TERMINAL_OUTPUT\).*|\1=console|'
  1327. fi
  1328. # Bootloader yüklemesi
  1329. set_bootloader
  1330. sync && sync && sync
  1331. # bağlanan dizinler çözülür
  1332. umount_filesystems
  1333. # sistemin kopyalandıktan sonra yebaşla sorusu
  1334. if [ -z "$YEBASLAT_ONAY" ]; then
  1335. DIALOG --yesno "`printf "$LANG_INSTALLSUCCESS" "${BOLD}" "${RESET}"`" ${YESNOSIZE}
  1336. if [ $? -eq 0 ]; then
  1337. shutdown -r now
  1338. else
  1339. return
  1340. fi
  1341. fi
  1342. }
  1343. menu() {
  1344. if [ -z "$DEFITEM" ]; then
  1345. DEFITEM="$LANG_MENUKEYBOARD"
  1346. fi
  1347. DIALOG --default-item $DEFITEM \
  1348. --extra-button --extra-label "$LANG_MENUSETTINGS" \
  1349. --title " $LANG_INSTMENU " \
  1350. --menu "$MENULABEL" 10 70 0 \
  1351. "$LANG_MENUKEYBOARD" "$LANG_KEYBOARDSET" \
  1352. "$LANG_MENUHOSTNAME" "$LANG_HOSTSET" \
  1353. "$LANG_MENULOCALE" "$LANG_LOCALESET" \
  1354. "$LANG_MENUTIMEZONE" "$LANG_TIMEZONESET" \
  1355. "$LANG_MENUROOTPW" "$LANG_ROOTPWSET" \
  1356. "$LANG_MENUUSERACC" "$LANG_USERNPWSET" \
  1357. "$LANG_MENUBOOTLOADER" "$LANG_BOOTLOADERSET" \
  1358. "$LANG_MENUPARTITION" "$LANG_PARTITIONSET" \
  1359. "$LANG_MENUFILESYSTEM" "$LANG_FSYSSET" \
  1360. "$LANG_MENUINSTALL" "$LANG_INSTALLSETTINGS" \
  1361. "$LANG_MENUEXIT" "$LANG_EXITINST"
  1362. if [ $? -eq 3 ]; then
  1363. # Ayarların gösterilmesi
  1364. cp $AYAR_DOSYASI /tmp/conf_hidden.$$;
  1365. sed -i "s/^ROOTPASSWORD.*/ROOTPASSWORD <-hidden->/" /tmp/conf_hidden.$$
  1366. DIALOG --title "$LANG_SAVEDSETTINGS" --textbox /tmp/conf_hidden.$$ 18 90
  1367. rm /tmp/conf_hidden.$$
  1368. return
  1369. fi
  1370. case $(cat $ANSWER) in
  1371. "$LANG_MENUKEYBOARD") menu_keymap && [ -n "$KEYBOARD_YAPILDI" ] && DEFITEM="$LANG_MENUHOSTNAME";;
  1372. "$LANG_MENUHOSTNAME") menu_hostname && [ -n "$HOSTNAME_YAPILDI" ] && DEFITEM="$LANG_MENULOCALE";;
  1373. "$LANG_MENULOCALE") menu_locale && [ -n "$LOCALE_YAPILDI" ] && DEFITEM="$LANG_MENUTIMEZONE";;
  1374. "$LANG_MENUTIMEZONE") menu_timezone && [ -n "$TIMEZONE_YAPILDI" ] && DEFITEM="$LANG_MENUROOTPW";;
  1375. "$LANG_MENUROOTPW") menu_rootpassword && [ -n "$ROOTPASSWORD_YAPILDI" ] && DEFITEM="$LANG_MENUUSERACC";;
  1376. "$LANG_MENUUSERACC") menu_useraccount && [ -n "$USERNAME_YAPILDI" ] && [ -n "$USERPASSWORD_YAPILDI" ] && DEFITEM="$LANG_MENUBOOTLOADER";;
  1377. "$LANG_MENUBOOTLOADER") menu_bootloader && [ -n "$BOOTLOADER_YAPILDI" ] && DEFITEM="$LANG_MENUPARTITION";;
  1378. "$LANG_MENUPARTITION") menu_partitions && [ -n "$PARTITIONS_YAPILDI" ] && DEFITEM="$LANG_MENUFILESYSTEM";;
  1379. "$LANG_MENUFILESYSTEM") menu_filesystems && [ -n "$FILESYSTEMS_YAPILDI" ] && DEFITEM="$LANG_MENUINSTALL";;
  1380. "$LANG_MENUINSTALL") menu_install;;
  1381. "$LANG_MENUEXIT") DIE;;
  1382. *) DIALOG --yesno "$LANG_ABORTINST" ${YESNOSIZE} && DIE
  1383. esac
  1384. }
  1385. if [ ! -x /bin/dialog ]; then
  1386. echo "$LANG_ERRDIALOG"
  1387. exit 1
  1388. fi
  1389. if [ "$(id -u)" != "0" ]; then
  1390. echo "$LANG_INSTMUSTROOT" 1>&2
  1391. exit 1
  1392. fi
  1393. #
  1394. # kuruluma giriş noktası - eğer kurulum ayar dosyası parametre verilirse direk kuruluma başlayacak.
  1395. #
  1396. [ ! -z $DOSYADAN_KURULUM ] && menu_install && exit 0
  1397. DIALOG --title "${BOLD}${RED} $LANG_ENTERMILIS ${RESET}" --msgbox "`printf "$LANG_MAINDIALOG" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}"`" 16 80
  1398. while true; do
  1399. menu
  1400. done
  1401. exit 0