aylinux-kur 56 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625
  1. #!/bin/bash
  2. #
  3. # Aylinux konsol kurulumu için Milis Linux kurulum çatallaması
  4. # This installer forked from Void Linux installer for Milis Linux terminal based installation
  5. #
  6. # 2018-2020 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="%sAylinux has been installed successfully!%s\nDo you want to reboot the system?"
  116. LANG_MENUSETTINGS="Settings"
  117. LANG_INSTMENU="Aylinux 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="Aylinux-installer must run as root"
  143. LANG_SAVEDSETTINGS="Saved settings for installation"
  144. LANG_ENTERMILIS="Aylinux/ $LANG_LANG"
  145. LANG_MAINDIALOG="\n
  146. Welcome to the Aylinux 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 kurulum için hazırlanıyor..."
  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="%sAylinux başarıyla yüklendi!%s\nSistemi yeniden başlatmak ister misiniz?"
  232. LANG_MENUSETTINGS="Ayarlar"
  233. LANG_INSTMENU="Aylinux 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 çık?"
  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="Aylinux / $LANG_LANG"
  261. LANG_MAINDIALOG="\n
  262. Aylinux kurulumuna hoş geldiniz. Milis Linux üzerinde 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=/tmp/kurulum.log
  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. [ ! -z $2 ] && SCRMODE="$2"
  296. else
  297. AYAR_DOSYASI=/tmp/.kurulum.conf
  298. if [ ! -f $AYAR_DOSYASI ]; then
  299. touch -f $AYAR_DOSYASI
  300. fi
  301. fi
  302. ANSWER=$(mktemp -t vinstall-XXXXXXXX || exit 1)
  303. TARGET_FSTAB=$(mktemp -t vinstall-fstab-XXXXXXXX || exit 1)
  304. if [ -f /etc/aylinux-surum ];then
  305. MILIS_SURUM=$(cat /etc/aylinux-surum)
  306. else
  307. MILIS_SURUM="Aylinux 2021"
  308. fi
  309. if [ -f /etc/canli_kullanici ];then
  310. CANLI_KULLANICI=$(cat /etc/canli_kullanici)
  311. else
  312. CANLI_KULLANICI="root"
  313. fi
  314. trap "DIE" INT TERM QUIT
  315. # konsol log yazmasının kapatılması
  316. if [ -w /proc/sys/kernel/printk ]; then
  317. echo 0 >/proc/sys/kernel/printk
  318. fi
  319. # EFIli sistem tesbiti
  320. if [ -e /sys/firmware/efi/systab ]; then
  321. EFI_SYSTEM=1
  322. EFI_FW_BITS=$(cat /sys/firmware/efi/fw_platform_size)
  323. if [ $EFI_FW_BITS -eq 32 ]; then
  324. EFI_TARGET=i386-efi
  325. else
  326. EFI_TARGET=x86_64-efi
  327. fi
  328. fi
  329. # menü renkleri
  330. BLACK="\Z0"
  331. RED="\Z1"
  332. GREEN="\Z2"
  333. YELLOW="\Z3"
  334. BLUE="\Z4"
  335. MAGENTA="\Z5"
  336. CYAN="\Z6"
  337. WHITE="\Z7"
  338. BOLD="\Zb"
  339. REVERSE="\Zr"
  340. UNDERLINE="\Zu"
  341. RESET="\Zn"
  342. # menü pencere özellikleri
  343. MENULABEL="${BOLD}${LANG_MENULABEL}${RESET}"
  344. MENUSIZE="14 60 0"
  345. INPUTSIZE="8 60"
  346. MSGBOXSIZE="8 70"
  347. YESNOSIZE="$INPUTSIZE"
  348. WIDGET_SIZE="10 70"
  349. DIALOG() {
  350. rm -f $ANSWER
  351. dialog --colors --keep-tite --no-shadow --no-mouse \
  352. --backtitle "${BOLD}${WHITE}Ayinux ${LANG_INSTALLATION} ($MILIS_SURUM)${RESET}" \
  353. --cancel-label "$LANG_BACK" --aspect 20 "$@" 2>$ANSWER
  354. return $?
  355. }
  356. INFOBOX() {
  357. dialog --colors --no-shadow --no-mouse \
  358. --backtitle "${BOLD}${WHITE}Ayinux ${LANG_INSTALLATION} ($MILIS_SURUM)${RESET}" \
  359. --title "${TITLE}" --aspect 20 --infobox "$@"
  360. }
  361. DIE() {
  362. rval=$1
  363. [ -z "$rval" ] && rval=0
  364. clear
  365. rm -f $ANSWER $TARGET_FSTAB
  366. # printk yeniden aktif etme
  367. if [ -w /proc/sys/kernel/printk ]; then
  368. echo 4 >/proc/sys/kernel/printk
  369. fi
  370. umount_filesystems
  371. exit $rval
  372. }
  373. set_option() {
  374. if grep -Eq "^${1}.*" $AYAR_DOSYASI; then
  375. sed -i -e "/^${1}.*/d" $AYAR_DOSYASI
  376. fi
  377. echo "${1} ${2}" >>$AYAR_DOSYASI
  378. }
  379. get_option() {
  380. echo $(grep -E "^${1}.*" $AYAR_DOSYASI|sed -e "s|${1}||")
  381. }
  382. # ISO-639'e göre dil isimleri
  383. iso639_language() {
  384. case "$1" in
  385. aa) echo "Afar" ;;
  386. af) echo "Afrikaans" ;;
  387. an) echo "Aragonese" ;;
  388. ar) echo "Arabic" ;;
  389. ast) echo "Asturian" ;;
  390. be) echo "Belgian" ;;
  391. bg) echo "Bulgarian" ;;
  392. bhb) echo "Bhili" ;;
  393. br) echo "Breton" ;;
  394. bs) echo "Bosnian" ;;
  395. ca) echo "Catalan" ;;
  396. cs) echo "Czech" ;;
  397. cy) echo "Welsh" ;;
  398. da) echo "Danish" ;;
  399. de) echo "German" ;;
  400. el) echo "Greek" ;;
  401. en) echo "English" ;;
  402. es) echo "Spanish" ;;
  403. et) echo "Estonian" ;;
  404. eu) echo "Basque" ;;
  405. fi) echo "Finnish" ;;
  406. fo) echo "Faroese" ;;
  407. fr) echo "French" ;;
  408. ga) echo "Irish" ;;
  409. gd) echo "Scottish Gaelic" ;;
  410. gl) echo "Galician" ;;
  411. gv) echo "Manx" ;;
  412. he) echo "Hebrew" ;;
  413. hr) echo "Croatian" ;;
  414. hsb) echo "Upper Sorbian" ;;
  415. hu) echo "Hungarian" ;;
  416. id) echo "Indonesian" ;;
  417. is) echo "Icelandic" ;;
  418. it) echo "Italian" ;;
  419. iw) echo "Hebrew" ;;
  420. ja) echo "Japanese" ;;
  421. ka) echo "Georgian" ;;
  422. kk) echo "Kazakh" ;;
  423. kl) echo "Kalaallisut" ;;
  424. ko) echo "Korean" ;;
  425. ku) echo "Kurdish" ;;
  426. kw) echo "Cornish" ;;
  427. lg) echo "Ganda" ;;
  428. lt) echo "Lithuanian" ;;
  429. lv) echo "Latvian" ;;
  430. mg) echo "Malagasy" ;;
  431. mi) echo "Maori" ;;
  432. mk) echo "Macedonian" ;;
  433. ms) echo "Malay" ;;
  434. mt) echo "Maltese" ;;
  435. nb) echo "Norwegian Bokmål" ;;
  436. nl) echo "Dutch" ;;
  437. nn) echo "Norwegian Nynorsk" ;;
  438. oc) echo "Occitan" ;;
  439. om) echo "Oromo" ;;
  440. pl) echo "Polish" ;;
  441. pt) echo "Portugese" ;;
  442. ro) echo "Romanian" ;;
  443. ru) echo "Russian" ;;
  444. sk) echo "Slovak" ;;
  445. sl) echo "Slovenian" ;;
  446. so) echo "Somali" ;;
  447. sq) echo "Albanian" ;;
  448. st) echo "Southern Sotho" ;;
  449. sv) echo "Swedish" ;;
  450. tcy) echo "Tulu" ;;
  451. tg) echo "Tajik" ;;
  452. th) echo "Thai" ;;
  453. tl) echo "Tagalog" ;;
  454. tr) echo "Türkçe" ;;
  455. uk) echo "Ukrainian" ;;
  456. uz) echo "Uzbek" ;;
  457. wa) echo "Walloon" ;;
  458. xh) echo "Xhosa" ;;
  459. yi) echo "Yiddish" ;;
  460. zh) echo "Chinese" ;;
  461. zu) echo "Zulu" ;;
  462. *) echo "$1" ;;
  463. esac
  464. }
  465. # ISO-3166 ülke kodları yerel ayarlar için
  466. iso3166_country() {
  467. case "$1" in
  468. AD) echo "Andorra" ;;
  469. AE) echo "United Arab Emirates" ;;
  470. AL) echo "Albania" ;;
  471. AR) echo "Argentina" ;;
  472. AT) echo "Austria" ;;
  473. AU) echo "Australia" ;;
  474. BA) echo "Bonsia and Herzegovina" ;;
  475. BE) echo "Belgium" ;;
  476. BG) echo "Bulgaria" ;;
  477. BH) echo "Bahrain" ;;
  478. BO) echo "Bolivia" ;;
  479. BR) echo "Brazil" ;;
  480. BW) echo "Botswana" ;;
  481. BY) echo "Belarus" ;;
  482. CA) echo "Canada" ;;
  483. CH) echo "Switzerland" ;;
  484. CL) echo "Chile" ;;
  485. CN) echo "China" ;;
  486. CO) echo "Colombia" ;;
  487. CR) echo "Costa Rica" ;;
  488. CY) echo "Cyprus" ;;
  489. CZ) echo "Czech Republic" ;;
  490. DE) echo "Germany" ;;
  491. DJ) echo "Djibouti" ;;
  492. DK) echo "Denmark" ;;
  493. DO) echo "Dominican Republic" ;;
  494. DZ) echo "Algeria" ;;
  495. EC) echo "Ecuador" ;;
  496. EE) echo "Estonia" ;;
  497. EG) echo "Egypt" ;;
  498. ES) echo "Spain" ;;
  499. FI) echo "Finland" ;;
  500. FO) echo "Faroe Islands" ;;
  501. FR) echo "France" ;;
  502. GB) echo "Great Britain" ;;
  503. GE) echo "Georgia" ;;
  504. GL) echo "Greenland" ;;
  505. GR) echo "Greece" ;;
  506. GT) echo "Guatemala" ;;
  507. HK) echo "Hong Kong" ;;
  508. HN) echo "Honduras" ;;
  509. HR) echo "Croatia" ;;
  510. HU) echo "Hungary" ;;
  511. ID) echo "Indonesia" ;;
  512. IE) echo "Ireland" ;;
  513. IL) echo "Israel" ;;
  514. IN) echo "India" ;;
  515. IQ) echo "Iraq" ;;
  516. IS) echo "Iceland" ;;
  517. IT) echo "Italy" ;;
  518. JO) echo "Jordan" ;;
  519. JP) echo "Japan" ;;
  520. KE) echo "Kenya" ;;
  521. KR) echo "Korea, Republic of" ;;
  522. KW) echo "Kuwait" ;;
  523. KZ) echo "Kazakhstan" ;;
  524. LB) echo "Lebanon" ;;
  525. LT) echo "Lithuania" ;;
  526. LU) echo "Luxembourg" ;;
  527. LV) echo "Latvia" ;;
  528. LY) echo "Libya" ;;
  529. MA) echo "Morocco" ;;
  530. MG) echo "Madagascar" ;;
  531. MK) echo "Macedonia" ;;
  532. MT) echo "Malta" ;;
  533. MX) echo "Mexico" ;;
  534. MY) echo "Malaysia" ;;
  535. NI) echo "Nicaragua" ;;
  536. NL) echo "Netherlands" ;;
  537. NO) echo "Norway" ;;
  538. NZ) echo "New Zealand" ;;
  539. OM) echo "Oman" ;;
  540. PA) echo "Panama" ;;
  541. PE) echo "Peru" ;;
  542. PH) echo "Philippines" ;;
  543. PL) echo "Poland" ;;
  544. PR) echo "Puerto Rico" ;;
  545. PT) echo "Portugal" ;;
  546. PY) echo "Paraguay" ;;
  547. QA) echo "Qatar" ;;
  548. RO) echo "Romania" ;;
  549. RU) echo "Russian Federation" ;;
  550. SA) echo "Saudi Arabia" ;;
  551. SD) echo "Sudan" ;;
  552. SE) echo "Sweden" ;;
  553. SG) echo "Singapore" ;;
  554. SI) echo "Slovenia" ;;
  555. SK) echo "Slovakia" ;;
  556. SO) echo "Somalia" ;;
  557. SV) echo "El Salvador" ;;
  558. SY) echo "Syria" ;;
  559. TH) echo "Thailand" ;;
  560. TJ) echo "Tajikistan" ;;
  561. TN) echo "Tunisia" ;;
  562. TR) echo "Türkiye" ;;
  563. TW) echo "Taiwan" ;;
  564. UA) echo "Ukraine" ;;
  565. UG) echo "Uganda" ;;
  566. US) echo "United States of America" ;;
  567. UY) echo "Uruguay" ;;
  568. UZ) echo "Uzbekistan" ;;
  569. VE) echo "Venezuela" ;;
  570. YE) echo "Yemen" ;;
  571. ZA) echo "South Africa" ;;
  572. ZW) echo "Zimbabwe" ;;
  573. *) echo "$1" ;;
  574. esac
  575. }
  576. show_disks() {
  577. local dev size sectorsize gbytes
  578. # IDE
  579. for dev in $(ls /sys/block|grep -E '^hd'); do
  580. if [ "$(cat /sys/block/$dev/device/media)" = "disk" ]; then
  581. # sektör, alan bilgisinin bulunması;
  582. echo "/dev/$dev"
  583. size=$(cat /sys/block/$dev/size)
  584. sectorsize=$(cat /sys/block/$dev/queue/hw_sector_size)
  585. gbytes="$(($size * $sectorsize / 1024 / 1024 / 1024))"
  586. echo "size:${gbytes}GB;sector_size:$sectorsize"
  587. fi
  588. done
  589. # SATA/SCSI ve Virtual diskleri (virtio)
  590. for dev in $(ls /sys/block|grep -E '^([sv]|xv)d|mmcblk|nvme'); do
  591. echo "/dev/$dev"
  592. size=$(cat /sys/block/$dev/size)
  593. sectorsize=$(cat /sys/block/$dev/queue/hw_sector_size)
  594. gbytes="$(($size * $sectorsize / 1024 / 1024 / 1024))"
  595. echo "size:${gbytes}GB;sector_size:$sectorsize"
  596. done
  597. # cciss(4) aygıtları
  598. for dev in $(ls /dev/cciss 2>/dev/null|grep -E 'c[0-9]d[0-9]$'); do
  599. echo "/dev/cciss/$dev"
  600. size=$(cat /sys/block/cciss\!$dev/size)
  601. sectorsize=$(cat /sys/block/cciss\!$dev/queue/hw_sector_size)
  602. gbytes="$(($size * $sectorsize / 1024 / 1024 / 1024))"
  603. echo "size:${gbytes}GB;sector_size:$sectorsize"
  604. done
  605. }
  606. show_partitions() {
  607. local dev fstype fssize p part
  608. set -- $(show_disks)
  609. while [ $# -ne 0 ]; do
  610. disk=$(basename $1)
  611. shift 2
  612. # ATA/SCSI/SATA
  613. for p in /sys/block/$disk/$disk*; do
  614. if [ -d $p ]; then
  615. part=$(basename $p)
  616. fstype=$(lsblk -nfr /dev/$part|awk '{print $2}'|head -1)
  617. [ "$fstype" = "iso9660" ] && continue
  618. [ "$fstype" = "crypto_LUKS" ] && continue
  619. [ "$fstype" = "LVM2_member" ] && continue
  620. fssize=$(lsblk -nr /dev/$part|awk '{print $4}'|head -1)
  621. echo "/dev/$part"
  622. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  623. fi
  624. done
  625. done
  626. # Device Mapper
  627. for p in /dev/mapper/*; do
  628. part=$(basename $p)
  629. [ "${part}" = "live-rw" ] && continue
  630. [ "${part}" = "live-base" ] && continue
  631. [ "${part}" = "control" ] && continue
  632. fstype=$(lsblk -nfr $p|awk '{print $2}'|head -1)
  633. fssize=$(lsblk -nr $p|awk '{print $4}'|head -1)
  634. echo "${p}"
  635. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  636. done
  637. # Software raid (md)
  638. for p in $(ls -d /dev/md* 2>/dev/null|grep '[0-9]'); do
  639. part=$(basename $p)
  640. if cat /proc/mdstat|grep -qw $part; then
  641. fstype=$(lsblk -nfr /dev/$part|awk '{print $2}')
  642. [ "$fstype" = "crypto_LUKS" ] && continue
  643. [ "$fstype" = "LVM2_member" ] && continue
  644. fssize=$(lsblk -nr /dev/$part|awk '{print $4}')
  645. echo "$p"
  646. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  647. fi
  648. done
  649. # cciss(4) aygıtları
  650. for part in $(ls /dev/cciss 2>/dev/null|grep -E 'c[0-9]d[0-9]p[0-9]+'); do
  651. fstype=$(lsblk -nfr /dev/cciss/$part|awk '{print $2}')
  652. [ "$fstype" = "crypto_LUKS" ] && continue
  653. [ "$fstype" = "LVM2_member" ] && continue
  654. fssize=$(lsblk -nr /dev/cciss/$part|awk '{print $4}')
  655. echo "/dev/cciss/$part"
  656. echo "size:${fssize:-unknown};fstype:${fstype:-none}"
  657. done
  658. if [ -e /sbin/lvs ]; then
  659. # LVM
  660. lvs --noheadings|while read lvname vgname perms size; do
  661. echo "/dev/mapper/${vgname}-${lvname}"
  662. echo "size:${size};fstype:lvm"
  663. done
  664. fi
  665. }
  666. menu_filesystems() {
  667. local dev fstype fssize mntpoint reformat
  668. while true; do
  669. DIALOG --ok-label "$LANG_CHANGE" --cancel-label "$LANG_DONE" \
  670. --title " $LANG_SELECTPARTITION " --menu "$MENULABEL" \
  671. ${MENUSIZE} $(show_partitions)
  672. [ $? -ne 0 ] && return
  673. dev=$(cat $ANSWER)
  674. DIALOG --title " `printf "$LANG_SELECTFILESYSTEM" "$dev"` " \
  675. --menu "$MENULABEL" ${MENUSIZE} \
  676. "btrfs" "Oracle Btrfs" \
  677. "ext2" "Linux ext2 (no journaling)" \
  678. "ext3" "Linux ext3 (journal)" \
  679. "ext4" "Linux ext4 (journal)" \
  680. "f2fs" "Flash-Friendly Filesystem" \
  681. "swap" "Linux swap" \
  682. "vfat" "FAT32" \
  683. "xfs" "SGI's XFS"
  684. if [ $? -eq 0 ]; then
  685. fstype=$(cat $ANSWER)
  686. else
  687. continue
  688. fi
  689. if [ "$fstype" != "swap" ]; then
  690. DIALOG --inputbox "`printf "$LANG_MOUNTPOINT" "$dev"`:" ${INPUTSIZE}
  691. if [ $? -eq 0 ]; then
  692. mntpoint=$(cat $ANSWER)
  693. elif [ $? -eq 1 ]; then
  694. continue
  695. fi
  696. else
  697. mntpoint=swap
  698. fi
  699. DIALOG --yesno "`printf "$LANG_NEWFILESYSTEM" "$dev"`" ${YESNOSIZE}
  700. if [ $? -eq 0 ]; then
  701. reformat=1
  702. elif [ $? -eq 1 ]; then
  703. reformat=0
  704. else
  705. continue
  706. fi
  707. fssize=$(lsblk -nr $dev|awk '{print $4}')
  708. set -- "$fstype" "$fssize" "$mntpoint" "$reformat"
  709. if [ -n "$1" -a -n "$2" -a -n "$3" -a -n "$4" ]; then
  710. local bdev=$(basename $dev)
  711. local ddev=$(basename $(dirname $dev))
  712. if [ "$ddev" != "dev" ]; then
  713. sed -i -e "/^MOUNTPOINT \/dev\/${ddev}\/${bdev}.*/d" $AYAR_DOSYASI
  714. else
  715. sed -i -e "/^MOUNTPOINT \/dev\/${bdev}.*/d" $AYAR_DOSYASI
  716. fi
  717. echo "MOUNTPOINT $dev $1 $2 $3 $4" >>$AYAR_DOSYASI
  718. fi
  719. done
  720. }
  721. menu_partitions() {
  722. DIALOG --title " $LANG_SELECTDISKPART " \
  723. --menu "$MENULABEL" ${MENUSIZE} $(show_disks)
  724. if [ $? -eq 0 ]; then
  725. local device=$(cat $ANSWER)
  726. DIALOG --title "`printf "$LANG_MODPARTTABLE" "$device"`" --msgbox "`printf "$LANG_PARTITIONDIALOG" "${BOLD}" "$device" "${RESET}" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}"`" 18 80
  727. if [ $? -eq 0 ]; then
  728. while true; do
  729. clear; cfdisk $device; PARTITIONS_YAPILDI=1
  730. break
  731. done
  732. else
  733. return
  734. fi
  735. fi
  736. }
  737. menu_keymap() {
  738. if [ -f /usr/bin/lightdm ];then
  739. local _keymaps="$(sed '/^! layout$/,/^ *$/!d;//d' /usr/share/X11/xkb/rules/base.lst | awk {'print $1 ":" $2'})"
  740. else
  741. local _keymaps="$(find /usr/share/kbd/keymaps/ -type f -iname "*.map.gz" -printf "%f\n" | sed 's|.map.gz||g' | sort)"
  742. fi
  743. local _KEYMAPS=
  744. for f in ${_keymaps}; do
  745. _KEYMAPS="${_KEYMAPS} ${f} -"
  746. done
  747. while true; do
  748. DIALOG --title " $LANG_SELKEYMAP " --menu "$MENULABEL" 14 70 14 ${_KEYMAPS}
  749. if [ $? -eq 0 ]; then
  750. set_option KEYMAP "$(cat $ANSWER)"
  751. loadkeys "$(cat $ANSWER)"
  752. KEYBOARD_YAPILDI=1
  753. break
  754. else
  755. return
  756. fi
  757. done
  758. }
  759. set_keymap() {
  760. local KEYMAP=$(get_option KEYMAP)
  761. if [ -f /usr/bin/lightdm ];then
  762. echo "$KEYMAP" | cut -d':' -f1 > $HEDEF/home/"$(get_option USERLOGIN)"/.Xkbmap
  763. else
  764. sed -i -e "s|KEYMAP=.*|KEYMAP=$KEYMAP|g" $HEDEF/etc/sysconfig/rc.site
  765. fi
  766. }
  767. menu_locale() {
  768. local _locales="$(locale -a)"
  769. local LOCALES ISO639 ISO3166
  770. local TMPFILE=$(mktemp -t vinstall-XXXXXXXX || exit 1)
  771. INFOBOX "$LANG_SCANLOCALES ..." 4 60
  772. for f in ${_locales}; do
  773. eval $(echo $f | awk 'BEGIN { FS="." } \
  774. { FS="_"; split($1, a); printf "ISO639=%s ISO3166=%s\n", a[1], a[2] }')
  775. echo "$f|$(iso639_language $ISO639) ($(iso3166_country $ISO3166))|" >> $TMPFILE
  776. done
  777. clear
  778. # ISO-639^e göre dil isimlerinin sıralanması
  779. LOCALES=$(sort -t '|' -k 2 < $TMPFILE | xargs | sed -e's/| /|/g')
  780. rm -f $TMPFILE
  781. while true; do
  782. (IFS="|"; DIALOG --title " $LANG_SELLOCAL " --menu "$MENULABEL" 18 70 18 ${LOCALES})
  783. if [ $? -eq 0 ]; then
  784. set_option LOCALE "$(cat $ANSWER)"
  785. LOCALE_YAPILDI=1
  786. break
  787. else
  788. return
  789. fi
  790. done
  791. }
  792. set_locale() {
  793. local LOCALE=$(get_option LOCALE)
  794. rm -rf $HEDEF/etc/profile.d/i18n.sh
  795. echo "export LANG=$LOCALE" > $HEDEF/etc/profile.d/i18n.sh
  796. echo "export LC_ALL=$LOCALE" >> $HEDEF/etc/profile.d/i18n.sh
  797. echo "export LANGUAGE=$LOCALE" >> $HEDEF/etc/profile.d/i18n.sh
  798. # environment içinde de ayarlanması
  799. echo "LANG=$LOCALE" > $HEDEF/etc/environment
  800. }
  801. menu_timezone() {
  802. local _tzones="$(cd /usr/share/zoneinfo; find Africa/ America/ Antarctica/ Arctic/ Asia/ Atlantic/ Australia/ Europe/ Indian/ Pacific/ UTC Turkey -type f | sort)"
  803. local _TIMEZONES=
  804. for f in ${_tzones}; do
  805. _TIMEZONES="${_TIMEZONES} ${f} -"
  806. done
  807. while true; do
  808. DIALOG --title " $LANG_SELTZONE " --menu "$MENULABEL" 14 70 14 ${_TIMEZONES}
  809. if [ $? -eq 0 ]; then
  810. set_option TIMEZONE "$(cat $ANSWER)"
  811. TIMEZONE_YAPILDI=1
  812. break
  813. else
  814. return
  815. fi
  816. done
  817. }
  818. set_timezone() {
  819. local MYTIMEZONE="$(get_option TIMEZONE)"
  820. if [ -f $HEDEF/etc/sysconfig/clock ];then
  821. sed -i '/^TIMEZONE=/ d' $HEDEF/etc/sysconfig/clock
  822. echo "TIMEZONE=\"$MYTIMEZONE\"" >> $HEDEF/etc/sysconfig/clock
  823. fi
  824. if [ -f /usr/share/zoneinfo/$MYTIMEZONE ];then
  825. rm -f $HEDEF/etc/localtime
  826. ln -s /usr/share/zoneinfo/$MYTIMEZONE $HEDEF/etc/localtime
  827. fi
  828. }
  829. menu_hostname() {
  830. while true; do
  831. DIALOG --inputbox "$LANG_SETHOST:" ${INPUTSIZE}
  832. if [ $? -eq 0 ]; then
  833. set_option HOSTNAME "$(cat $ANSWER)"
  834. HOSTNAME_YAPILDI=1
  835. break
  836. else
  837. return
  838. fi
  839. done
  840. }
  841. set_hostname() {
  842. echo "$(get_option HOSTNAME)" > $HEDEF/etc/hostname
  843. echo "127.0.0.1 $(get_option HOSTNAME)" >> /etc/hosts
  844. #sed -i -e "s|HOSTNAME=.*|HOSTNAME=\"$(get_option HOSTNAME)\"|g" $HEDEF/etc/sysconfig/network
  845. }
  846. menu_rootpassword() {
  847. local _firstpass _secondpass _desc
  848. while true; do
  849. if [ -z "${_firstpass}" ]; then
  850. _desc="$LANG_ROOTPW"
  851. else
  852. _desc="$LANG_ROOTPWAGAIN"
  853. fi
  854. DIALOG --insecure --passwordbox "${_desc}" ${INPUTSIZE}
  855. if [ $? -eq 0 ]; then
  856. if [ -z "${_firstpass}" ]; then
  857. _firstpass="$(cat $ANSWER)"
  858. else
  859. _secondpass="$(cat $ANSWER)"
  860. fi
  861. if [ -n "${_firstpass}" -a -n "${_secondpass}" ]; then
  862. if [ "${_firstpass}" != "${_secondpass}" ]; then
  863. INFOBOX "$LANG_PWNOTMATCH" 6 60
  864. unset _firstpass _secondpass
  865. sleep 2 && clear && continue
  866. fi
  867. set_option ROOTPASSWORD "${_firstpass}"
  868. ROOTPASSWORD_YAPILDI=1
  869. break
  870. fi
  871. else
  872. return
  873. fi
  874. done
  875. }
  876. set_rootpassword() {
  877. echo "root:$(get_option ROOTPASSWORD)" | chpasswd -R $HEDEF -c SHA512
  878. }
  879. menu_useraccount() {
  880. local _firstpass _secondpass _desc
  881. local _groups _status _group _checklist
  882. local _preset
  883. while true; do
  884. _preset=$(get_option USERLOGIN)
  885. [ -z "$_preset" ] && _preset=""
  886. DIALOG --inputbox "$LANG_LOGINNAME:" ${INPUTSIZE} "$_preset"
  887. if [ $? -eq 0 ]; then
  888. set_option USERLOGIN "$(cat $ANSWER)"
  889. USERLOGIN_YAPILDI=1
  890. break
  891. else
  892. return
  893. fi
  894. done
  895. while true; do
  896. _preset=$(get_option USERNAME)
  897. [ -z "$_preset" ] && _preset=""
  898. DIALOG --inputbox "$LANG_USERNAME '$(get_option USERLOGIN)' :" \
  899. ${INPUTSIZE} "$_preset"
  900. if [ $? -eq 0 ]; then
  901. set_option USERNAME "$(cat $ANSWER)"
  902. USERNAME_YAPILDI=1
  903. break
  904. else
  905. return
  906. fi
  907. done
  908. while true; do
  909. if [ -z "${_firstpass}" ]; then
  910. _desc="$LANG_PASSWORD '$(get_option USERLOGIN)'"
  911. else
  912. _desc="$LANG_PASSWORDAGAIN '$(get_option USERLOGIN)'"
  913. fi
  914. DIALOG --insecure --passwordbox "${_desc}" ${INPUTSIZE}
  915. if [ $? -eq 0 ]; then
  916. if [ -z "${_firstpass}" ]; then
  917. _firstpass="$(cat $ANSWER)"
  918. else
  919. _secondpass="$(cat $ANSWER)"
  920. fi
  921. if [ -n "${_firstpass}" -a -n "${_secondpass}" ]; then
  922. if [ "${_firstpass}" != "${_secondpass}" ]; then
  923. INFOBOX "$LANG_PWNOTMATCH" 6 60
  924. unset _firstpass _secondpass
  925. sleep 2 && clear && continue
  926. fi
  927. set_option USERPASSWORD "${_firstpass}"
  928. USERPASSWORD_YAPILDI=1
  929. break
  930. fi
  931. else
  932. return
  933. fi
  934. done
  935. #_groups="wheel,audio,video,floppy,cdrom,optical,kvm"
  936. _groups="users,disk,network,floppy,fuse,video,lp,tty,audio,cdrom,scanner,adm,vboxusers,wheel"
  937. while true; do
  938. _desc="$LANG_GMEMLOGIN '$(get_option USERLOGIN)':"
  939. for _group in $(cat /etc/group); do
  940. _gid="$(echo ${_group} | cut -d: -f3)"
  941. _group="$(echo ${_group} | cut -d: -f1)"
  942. _status="$(echo ${_groups} | grep -w ${_group})"
  943. if [ -z "${_status}" ]; then
  944. _status=off
  945. else
  946. _status=on
  947. fi
  948. if [ -z "${_checklist}" ]; then
  949. _checklist="${_group} ${_group}:${_gid} ${_status}"
  950. else
  951. _checklist="${_checklist} ${_group} ${_group}:${_gid} ${_status}"
  952. fi
  953. done
  954. DIALOG --no-tags --checklist "${_desc}" 20 60 18 ${_checklist}
  955. if [ $? -eq 0 ]; then
  956. set_option USERGROUPS $(cat $ANSWER | sed -e's| |,|g')
  957. USERGROUPS_YAPILDI=1
  958. break
  959. else
  960. return
  961. fi
  962. done
  963. }
  964. set_useraccount() {
  965. USERLOGIN_YAPILDI=$(get_option USERLOGIN)
  966. USERPASSWORD_YAPILDI=$(get_option USERPASSWORD)
  967. USERNAME_YAPILDI=$(get_option USERNAME)
  968. USERGROUPS_YAPILDI=$(get_option USERGROUPS)
  969. [ -z "$USERLOGIN_YAPILDI" ] && return
  970. [ -z "$USERPASSWORD_YAPILDI" ] && return
  971. [ -z "$USERNAME_YAPILDI" ] && return
  972. [ -z "$USERGROUPS_YAPILDI" ] && return
  973. #chroot $HEDEF useradd -m -G $(get_option USERGROUPS) -c "$(get_option USERNAME)" $(get_option USERLOGIN)
  974. useradd -R $HEDEF -m -G $(get_option USERGROUPS) -c "$(get_option USERNAME)" $(get_option USERLOGIN)
  975. #chroot $HEDEF echo "$(get_option USERLOGIN):$(get_option USERPASSWORD)" | chpasswd -R $HEDEF -c SHA512
  976. echo "$(get_option USERLOGIN):$(get_option USERPASSWORD)" | chpasswd -R $HEDEF -c SHA512
  977. }
  978. menu_bootloader() {
  979. while true; do
  980. DIALOG --title " $LANG_BOOTLOADER" \
  981. --menu "$MENULABEL" ${MENUSIZE} $(show_disks) none "$LANG_BOOTLOTHER"
  982. if [ $? -eq 0 ]; then
  983. set_option BOOTLOADER "$(cat $ANSWER)"
  984. BOOTLOADER_YAPILDI=1
  985. break
  986. else
  987. return
  988. fi
  989. done
  990. while true; do
  991. DIALOG --yesno "$LANG_BOOTLGRAPH" ${YESNOSIZE}
  992. if [ $? -eq 0 ]; then
  993. set_option TEXTCONSOLE 0
  994. break
  995. elif [ $? -eq 1 ]; then
  996. set_option TEXTCONSOLE 1
  997. break
  998. else
  999. return
  1000. fi
  1001. done
  1002. }
  1003. set_bootloader() {
  1004. local dev=$(get_option BOOTLOADER) grub_args="--force "
  1005. if [ "$dev" = "none" ]; then return; fi
  1006. # efi sistem ve efivar kontrolü
  1007. if [ -n "$EFI_SYSTEM" ]; then
  1008. grub_args="--force --target=$EFI_TARGET --efi-directory=/boot/efi --bootloader-id=Aylinux --recheck"
  1009. # efivarfs kernel modülü builtin geldiği varsayılıyor.
  1010. # yoksa modprobe efivarfs
  1011. mount -t efivarfs efivarfs /sys/firmware/efi/efivars
  1012. mount --bind /sys/firmware/efi/efivars $HEDEF/sys/firmware/efi/efivars
  1013. chroot $HEDEF grub-install $grub_args $dev >>$LOG 2>&1
  1014. cp $HEDEF/boot/efi/EFI/boot/grubx64.efi $HEDEF/boot/efi/EFI/boot/bootx64.efi
  1015. else
  1016. echo "`printf "$LANG_GRUBINST" "$grub_args $dev"`" >>$LOG
  1017. chroot $HEDEF grub-install $grub_args $dev >>$LOG 2>&1
  1018. fi
  1019. if [ $? -ne 0 ]; then
  1020. DIALOG --msgbox "`printf "$LANG_GRUBFAIL" "${BOLD}${RED}" "${RESET}" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1021. DIE 1
  1022. fi
  1023. echo "`printf "$LANG_GRUBMKCONF" "$HEDEF"`" >>$LOG
  1024. chroot $HEDEF grub-mkconfig -o /boot/grub/grub.cfg >>$LOG 2>&1
  1025. if [ $? -ne 0 ]; then
  1026. DIALOG --msgbox "`printf "$LANG_GRUBMKCONFFAIL" "${BOLD}${RED}" "${RESET}" "$LOG"`" ${MSGBOXSIZE}
  1027. DIE 1
  1028. fi
  1029. }
  1030. validate_filesystems() {
  1031. local mnts dev size fstype mntpt mkfs rootfound fmt
  1032. local usrfound efi_system_partition
  1033. unset TARGETFS
  1034. mnts=$(grep -E '^MOUNTPOINT.*' $AYAR_DOSYASI)
  1035. set -- ${mnts}
  1036. while [ $# -ne 0 ]; do
  1037. fmt=""
  1038. dev=$2; fstype=$3; size=$4; mntpt="$5"; mkfs=$6
  1039. shift 6
  1040. if [ "$mntpt" = "/" ]; then
  1041. rootfound=1
  1042. elif [ "$mntpt" = "/usr" ]; then
  1043. usrfound=1
  1044. elif [ "$fstype" = "vfat" -a "$mntpt" = "/boot/efi" ]; then
  1045. efi_system_partition=1
  1046. fi
  1047. if [ "$mkfs" -eq 1 ]; then
  1048. fmt="$LANG_NEWFSYSTEM: "
  1049. fi
  1050. if [ -z "$TARGETFS" ]; then
  1051. TARGETFS="`printf "$LANG_MOUNTEDON" "${fmt}$dev" "$size" "$mntpt" "${fstype}"`"
  1052. else
  1053. TARGETFS="`printf "$LANG_MOUNTEDON" "${TARGETFS}${fmt}${dev}" "$size" "$mntpt" "${fstype}"`"
  1054. fi
  1055. done
  1056. if [ -z "$rootfound" ]; then
  1057. DIALOG --msgbox "`printf "$LANG_FSYSTEMNOTSET" "${BOLD}${RED}" "${RESET}" `" ${MSGBOXSIZE}
  1058. return 1
  1059. elif [ -n "$usrfound" ]; then
  1060. DIALOG --msgbox "`printf "$LANG_FSYSNOTSUPPORTED" "${BOLD}${RED}" "${RESET}"`" ${MSGBOXSIZE}
  1061. return 1
  1062. elif [ -n "$EFI_SYSTEM" -a -z "$efi_system_partition" ]; then
  1063. DIALOG --msgbox "`printf "$LANG_FSYSEFINOTSET" "${BOLD}${RED}" "${RESET}"`" ${MSGBOXSIZE}
  1064. fi
  1065. FILESYSTEMS_YAPILDI=1
  1066. }
  1067. create_filesystems() {
  1068. local mnts dev mntpt fstype fspassno mkfs size rv uuid
  1069. mnts=$(grep -E '^MOUNTPOINT.*' $AYAR_DOSYASI)
  1070. set -- ${mnts}
  1071. while [ $# -ne 0 ]; do
  1072. dev=$2; fstype=$3; mntpt="$5"; mkfs=$6
  1073. shift 6
  1074. # swap bölümleme
  1075. if [ "$fstype" = "swap" ]; then
  1076. swapoff $dev >/dev/null 2>&1
  1077. if [ "$mkfs" -eq 1 ]; then
  1078. mkswap $dev >>$LOG 2>&1
  1079. if [ $? -ne 0 ]; then
  1080. if [ $SCRMODE == "text" ];then
  1081. echo "$LANG_SWAPFAIL"
  1082. else
  1083. DIALOG --msgbox "`printf "$LANG_SWAPFAIL" "${BOLD}${RED}" "${RESET}" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1084. fi
  1085. DIE 1
  1086. fi
  1087. fi
  1088. swapon $dev >>$LOG 2>&1
  1089. if [ $? -ne 0 ]; then
  1090. if [ $SCRMODE == "text" ];then
  1091. echo "$LANG_SWAPERROR"
  1092. else
  1093. DIALOG --msgbox "`printf "$LANG_SWAPERROR" "${BOLD}${RED}" "${RESET}" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1094. fi
  1095. DIE 1
  1096. fi
  1097. # hedef fstaba girdi eklenmesi
  1098. uuid=$(blkid -o value -s UUID "$dev")
  1099. echo "UUID=$uuid none swap sw 0 0" >>$TARGET_FSTAB
  1100. continue
  1101. fi
  1102. if [ "$mkfs" -eq 1 ]; then
  1103. case "$fstype" in
  1104. btrfs) MKFS="mkfs.btrfs -f"; modprobe btrfs >>$LOG 2>&1;;
  1105. ext2) MKFS="mke2fs -F"; modprobe ext2 >>$LOG 2>&1;;
  1106. ext3) MKFS="mke2fs -F -j"; modprobe ext3 >>$LOG 2>&1;;
  1107. ext4) MKFS="mke2fs -F -t ext4"; modprobe ext4 >>$LOG 2>&1;;
  1108. f2fs) MKFS="mkfs.f2fs -f"; modprobe f2fs >>$LOG 2>&1;;
  1109. vfat) MKFS="mkfs.vfat -F32"; modprobe vfat >>$LOG 2>&1;;
  1110. xfs) MKFS="mkfs.xfs -f"; modprobe xfs >>$LOG 2>&1;;
  1111. esac
  1112. TITLE="`printf "$LANG_ERRLOGTITLE" "$LOG"`"
  1113. if [ $SCRMODE == "text" ];then
  1114. echo "$LANG_CREATEFSYS"
  1115. else
  1116. INFOBOX "`printf "$LANG_CREATEFSYS" "$fstype" "$dev" "$mntpt"`" 8 60
  1117. fi
  1118. echo "`printf "$LANG_CREATEMKFS" "$MKFS $dev"`" >>$LOG
  1119. # hedef disk bölümü bağlı olabilir, çözmek için
  1120. mount | grep -q "$dev" && umount -l $dev
  1121. $MKFS $dev >>$LOG 2>&1; rv=$?
  1122. if [ $rv -ne 0 ]; then
  1123. if [ $SCRMODE == "text" ];then
  1124. echo "$LANG_CREATEFAIL"
  1125. else
  1126. DIALOG --msgbox "`printf "$LANG_CREATEFAIL" "${BOLD}${RED}" "${RESET}" "$fstype" "$dev" "$LOG"`" ${MSGBOXSIZE}
  1127. fi
  1128. DIE 1
  1129. fi
  1130. fi
  1131. # rootfs nin bağlanması
  1132. [ "$mntpt" != "/" ] && continue
  1133. mkdir -p $HEDEF
  1134. echo "`printf "$LANG_MOUNTINGON" "$dev" "$mntpt" "$fstype"`" >>$LOG
  1135. mount -t $fstype $dev $HEDEF >>$LOG 2>&1
  1136. if [ $? -ne 0 ]; then
  1137. if [ $SCRMODE == "text" ];then
  1138. echo "$LANG_MOUNTINGERR"
  1139. else
  1140. DIALOG --msgbox "`printf "$LANG_MOUNTINGERR" "${BOLD}${RED}" "${RESET}" "$dev" "${mntpt}" "$LOG"`" ${MSGBOXSIZE}
  1141. fi
  1142. DIE 1
  1143. fi
  1144. # hedef fstaba girdi eklenmesi
  1145. uuid=$(blkid -o value -s UUID "$dev")
  1146. if [ "$fstype" = "f2fs" ]; then
  1147. fspassno=0
  1148. else
  1149. fspassno=1
  1150. fi
  1151. echo "UUID=$uuid $mntpt $fstype defaults 0 $fspassno" >>$TARGET_FSTAB
  1152. done
  1153. # dosya sistemlerinin hedefe bağlanması
  1154. mnts=$(grep -E '^MOUNTPOINT.*' $AYAR_DOSYASI)
  1155. set -- ${mnts}
  1156. while [ $# -ne 0 ]; do
  1157. dev=$2; fstype=$3; mntpt="$5"
  1158. shift 6
  1159. [ "$mntpt" = "/" -o "$fstype" = "swap" ] && continue
  1160. mkdir -p ${HEDEF}${mntpt}
  1161. echo "$LANG_MOUNTINGON" >>$LOG
  1162. mount -t $fstype $dev ${HEDEF}${mntpt} >>$LOG 2>&1
  1163. if [ $? -ne 0 ]; then
  1164. if [ $SCRMODE == "text" ];then
  1165. echo "$LANG_MOUNTINGERR"
  1166. else
  1167. DIALOG --msgbox "$LANG_MOUNTINGERR" ${MSGBOXSIZE}
  1168. fi
  1169. DIE
  1170. fi
  1171. # hedef fstaba girdi eklenmesi
  1172. uuid=$(blkid -o value -s UUID "$dev")
  1173. echo "UUID=$uuid $mntpt $fstype defaults 0 2" >>$TARGET_FSTAB
  1174. done
  1175. }
  1176. mount_filesystems() {
  1177. for f in sys proc dev; do
  1178. [ ! -d $HEDEF/$f ] && mkdir $HEDEF/$f
  1179. echo "Mounting $HEDEF/$f..." >>$LOG
  1180. mount --bind /$f $HEDEF/$f >>$LOG 2>&1
  1181. done
  1182. }
  1183. umount_filesystems() {
  1184. local f
  1185. for f in sys/fs/fuse/connections sys proc dev; do
  1186. echo "Unmounting $HEDEF/$f..." >>$LOG
  1187. umount $HEDEF/$f >>$LOG 2>&1
  1188. done
  1189. local mnts="$(grep -E '^MOUNTPOINT.*$' $AYAR_DOSYASI)"
  1190. set -- ${mnts}
  1191. while [ $# -ne 0 ]; do
  1192. local dev=$2; local fstype=$3; local mntpt=$5
  1193. shift 6
  1194. if [ "$fstype" = "swap" ]; then
  1195. echo "`printf "$LANG_SWAPDISABLING" "$dev" `" >>$LOG
  1196. swapoff $dev >>$LOG 2>&1
  1197. continue
  1198. fi
  1199. if [ "$mntpt" != "/" ]; then
  1200. echo "`printf "$LANG_SWAPUNMOUNTING" "$HEDEF/$mntpt" `" >>$LOG
  1201. umount $HEDEF/$mntpt >>$LOG 2>&1
  1202. fi
  1203. done
  1204. echo "`printf "$LANG_SWAPUNMOUNTING" "$HEDEF"`" >>$LOG
  1205. umount $HEDEF >>$LOG 2>&1
  1206. }
  1207. log_and_count() {
  1208. local progress whole tenth
  1209. while read line; do
  1210. #echo "$line" >>$LOG
  1211. copy_count=$((copy_count + 1))
  1212. progress=$((1000 * copy_count / copy_total))
  1213. if [ "$progress" != "$copy_progress" ]; then
  1214. whole=$((progress / 10))
  1215. tenth=$((progress % 10))
  1216. printf "$LANG_PROGRESS" $whole $tenth $copy_count $copy_total
  1217. copy_progress=$progress
  1218. fi
  1219. #echo "$copy_progress" >>$LOG
  1220. done
  1221. }
  1222. copy_rootfs() {
  1223. local tar_in="--create --one-file-system --xattrs"
  1224. TITLE="`printf "$LANG_ERRLOGTITLE" "$LOG"`"
  1225. if [ $SCRMODE == "text" ];then
  1226. echo "$LANG_COUNTFILES"
  1227. else
  1228. INFOBOX "$LANG_COUNTFILES" 4 60
  1229. fi
  1230. copy_total=$(tar ${tar_in} -v -f /dev/null / 2>/dev/null | wc -l)
  1231. export copy_total copy_count=0 copy_progress=
  1232. clear
  1233. if [ $SCRMODE == "text" ];then
  1234. tar ${tar_in} -f - / 2>/dev/null | tar --extract --xattrs --xattrs-include='*' --preserve-permissions -v -f - -C $HEDEF | log_and_count
  1235. else
  1236. tar ${tar_in} -f - / 2>/dev/null | tar --extract --xattrs --xattrs-include='*' --preserve-permissions -v -f - -C $HEDEF | log_and_count | DIALOG --title "${TITLE}" --progressbox "$LANG_CPLIVEIMG" 5 60
  1237. fi
  1238. if [ $? -ne 0 ]; then
  1239. DIE 1
  1240. fi
  1241. unset copy_total copy_count copy_percent
  1242. }
  1243. menu_install() {
  1244. # dosya sistemi hazır değilse devam edilmeyecek.
  1245. validate_filesystems || return 1
  1246. ROOTPASSWORD_YAPILDI="$(get_option ROOTPASSWORD)"
  1247. BOOTLOADER_YAPILDI="$(get_option BOOTLOADER)"
  1248. if [ -z "$FILESYSTEMS_YAPILDI" ]; then
  1249. if [ $SCRMODE == "text" ];then
  1250. echo "$LANG_FSYSNOTCONF"
  1251. else
  1252. DIALOG --msgbox "`printf "$LANG_FSYSNOTCONF" "${BOLD}" "${RESET}"`" ${MSGBOXSIZE}
  1253. fi
  1254. return 1
  1255. elif [ -z "$ROOTPASSWORD_YAPILDI" ]; then
  1256. if [ $SCRMODE == "text" ];then
  1257. echo "$LANG_ROOTPWNOTCONF"
  1258. else
  1259. DIALOG --msgbox "`printf "$LANG_ROOTPWNOTCONF" "${BOLD}" "${RESET}"`" ${MSGBOXSIZE}
  1260. fi
  1261. return 1
  1262. elif [ -z "$BOOTLOADER_YAPILDI" ]; then
  1263. if [ $SCRMODE == "text" ];then
  1264. echo "$LANG_BOOTLNOTCONF"
  1265. else
  1266. DIALOG --msgbox "`printf "$LANG_BOOTLNOTCONF" "${BOLD}" "${RESET}"`" ${MSGBOXSIZE}
  1267. fi
  1268. return 1
  1269. fi
  1270. if [ -z "$FORMAT_ONAY" ]; then
  1271. DIALOG --yesno "`printf "$LANG_DESTROYWARN" "${BOLD}" "${RESET}" "${BOLD}${TARGETFS}${RESET}" "${BOLD}${RED}" "${RESET}" "${BOLD}" "${RESET}"`" 20 80 || return
  1272. fi
  1273. unset TARGETFS
  1274. # Dosya sistemlerinin oluşturulup-bağlanması
  1275. create_filesystems
  1276. # ağdan paket kurulum eklenecek.
  1277. KAYNAK="YEREL"
  1278. if [ $KAYNAK="YEREL" ]; then
  1279. # dosya sisteminin kopyalanması
  1280. copy_rootfs
  1281. USERNAME=$CANLI_KULLANICI
  1282. # Canlı kulanıcının silinmesi root değilse
  1283. if [ $USERNAME != "root" ];then
  1284. echo "`printf "$LANG_RMTARGET" "$USERNAME"`" >>$LOG
  1285. chroot $HEDEF userdel -r $USERNAME >>$LOG 2>&1
  1286. sed -i -e "/$USERNAME ALL=.*/d" $HEDEF/etc/sudoers
  1287. fi
  1288. TITLE="`printf "$LANG_ERRLOGTITLE" "$LOG"`"
  1289. if [ $SCRMODE == "text" ];then
  1290. echo "$LANG_BUILDINGINITRAMFS"
  1291. else
  1292. INFOBOX "$LANG_BUILDINGINITRAMFS" 4 60
  1293. fi
  1294. echo "$LANG_BUILDINGINITRAMFS" >>$LOG
  1295. # gerekli dosya istemlerinin bağlanması
  1296. mount_filesystems
  1297. rm -f $HEDEF/boot/initramfs*
  1298. rm -f $HEDEF/boot/initrd*
  1299. rm -f $HEDEF/boot/kernel*
  1300. cp /boot/kernel-* $HEDEF/boot/
  1301. local sonek="aylinux"
  1302. local kversion=`ls $HEDEF/boot/kernel-* | xargs -I {} basename {} | head -n1 |cut -d'-' -f2`
  1303. chroot $HEDEF dracut --no-hostonly --xz --omit systemd --add-drivers "ahci" -f /boot/initrd.img-${kversion} $kversion-$sonek --force >>$LOG 2>&1
  1304. #chroot $HEDEF ln -s /boot/kernel-* /boot/kernel
  1305. rmdir $HEDEF/mnt/target
  1306. fi
  1307. if [ $SCRMODE == "text" ];then
  1308. echo "$LANG_APPLYSETTINGS"
  1309. else
  1310. INFOBOX "$LANG_APPLYSETTINGS" 4 60
  1311. fi
  1312. # fstab ın hedef diske kopyalanması
  1313. install -Dm644 $TARGET_FSTAB $HEDEF/etc/fstab
  1314. # /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
  1315. # echo "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0" >> $HEDEF/etc/fstab
  1316. # keymap, bölgesel ve yerel zaman ayarları, hostname, root-kullanıcı şifre
  1317. #set_keymap
  1318. set_locale
  1319. set_timezone
  1320. set_hostname
  1321. set_rootpassword
  1322. set_useraccount
  1323. # Kullanıcı ve root için öntanımlı ayarların kopyalanması
  1324. #cp $HEDEF/etc/skel/.[bix]* $HEDEF/root
  1325. USERLOGIN="$(get_option USERLOGIN)"
  1326. mkdir -p $HEDEF/home/$USERLOGIN/
  1327. # todo!!! kull. ayarları updates/skel altından alınacak.
  1328. # todo!!! alias mps
  1329. # todo!!! source /etc/profile
  1330. if [ $CANLI_KULLANICI == "root" ];then
  1331. [ -d /root/.config ] && cp -rf /root/.config $HEDEF/home/$USERLOGIN/
  1332. [ -f /root/.gitconfig ] && cp -f /root/.gitconfig $HEDEF/home/$USERLOGIN/
  1333. [ -f /root/.xinitrc ] && cp -rf /root/.xinitrc $HEDEF/home/$USERLOGIN/
  1334. [ -f /root/.bashrc ] && cp -f /root/.bashrc $HEDEF/home/$USERLOGIN/
  1335. [ -f /root/.jwmrc ] && cp -rf /root/.jwmrc $HEDEF/home/$USERLOGIN/
  1336. if [ -d /run/initramfs/live/updates/root ];then
  1337. cp -rf /run/initramfs/live/updates/root/. $HEDEF/etc/skel/
  1338. cp -rf /run/initramfs/live/updates/root/. $HEDEF/home/$USERLOGIN/
  1339. fi
  1340. else
  1341. cp -rf /home/$CANLI_KULLANICI/.config $HEDEF/home/$USERLOGIN
  1342. cp -rf /run/initramfs/live/updates/home/$CANLI_KULLANICI/. $HEDEF/etc/skel/
  1343. cp -rf /run/initramfs/live/updates/home/$CANLI_KULLANICI/. $HEDEF/home/$USERLOGIN/
  1344. fi
  1345. # kurulum özgü dosyaların silinmesi
  1346. rm -f $HEDEF/root/bin/canli_kullanici.sh
  1347. rm -rf $HEDEF/etc/canli_kullanici
  1348. rm -rf $HEDEF/opt/Aylinux-Yukleyici
  1349. rm -f $HEDEF/root/Desktop/kurulum.desktop
  1350. rm -f $HEDEF/root/kurulum.desktop
  1351. rm -f $HEDEF/usr/share/applications/aylinux-kur.desktop
  1352. rm -f $HEDEF/root/Masaüstü/kurulum.desktop
  1353. rm -f $HEDEF/usr/share/applications/kurulum.desktop
  1354. rm -f $HEDEF/home/$USERLOGIN/Desktop/kurulum.desktop
  1355. rm -f $HEDEF/home/$USERLOGIN/Masaüstü/kurulum.desktop
  1356. rm -f $HEDEF/root/Masaüstü/aylinux-kur.desktop
  1357. rm -f $HEDEF/etc/shadow- $HEDEF/etc/gshadow- $HEDEF/etc/passwd- $HEDEF/etc/group-
  1358. #sed -i "/^$USERLOGIN/d" $HEDEF/etc/security/opasswd
  1359. [ -f $HEDEF/etc/lightdm/lightdm.conf.orj ] && cp $HEDEF/etc/lightdm/lightdm.conf.orj $HEDEF/etc/lightdm/lightdm.conf
  1360. YDIL="$(echo "$(get_option LOCALE)" | tr "." "\n" | head -n1)"
  1361. echo "$YDIL" > $HEDEF/home/$USERLOGIN/.config/user-dirs.locale
  1362. # dil Türkçe ise kullanıcı dizinlerindeki Türkçe adlandırmanın düzeltilmesi
  1363. set_keymap
  1364. chroot $HEDEF chown $USERLOGIN:$USERLOGIN -R /home/$USERLOGIN
  1365. rm -f $HEDEF/home/$USERLOGIN/.config/user-dirs.dirs
  1366. [ -d $HEDEF/dev/snd ] && chroot $HEDEF setfacl -m u:$USERLOGIN:rw /dev/snd/*
  1367. if [ -f $HEDEF/etc/sudoers ]; then
  1368. if [ -z "$(echo $(get_option USERGROUPS) | grep -w wheel)" -a -n "$USERLOGIN" ]; then
  1369. # wheel grubuna üye olamayan kullanıcı için sudo açılır.
  1370. echo "# `printf "$LANG_ENABLESUDO" "$USERLOGIN"`" >> $HEDEF/etc/sudoers
  1371. echo "$USERLOGIN ALL=(ALL) ALL" >> $HEDEF/etc/sudoers
  1372. else
  1373. # wheel grubuna üye olan kullanıcı için sudoers eklemesi yapılır.
  1374. sed -i $HEDEF/etc/sudoers \
  1375. -e "s;#.*%wheel ALL=(ALL) ALL;%wheel ALL=(ALL) ALL;"
  1376. fi
  1377. unset USERLOGIN
  1378. fi
  1379. # Text tabanlı açılışı aktif et seçiliyse
  1380. if [ "$(get_option TEXTCONSOLE)" = "1" ]; then
  1381. sed -i $HEDEF/etc/default/grub \
  1382. -e 's|#\(GRUB_TERMINAL_INPUT\).*|\1=console|' \
  1383. -e 's|#\(GRUB_TERMINAL_OUTPUT\).*|\1=console|'
  1384. fi
  1385. # Bootloader yüklemesi
  1386. set_bootloader
  1387. sync && sync && sync
  1388. # bağlanan dizinler çözülür
  1389. umount_filesystems
  1390. # sistemin kopyalandıktan sonra yebaşla sorusu
  1391. if [ $SCRMODE == "text" ];then
  1392. echo "OK"
  1393. return
  1394. else
  1395. if [ -z "$YEBASLAT_ONAY" ]; then
  1396. DIALOG --yesno "`printf "$LANG_INSTALLSUCCESS" "${BOLD}" "${RESET}"`" ${YESNOSIZE}
  1397. if [ $? -eq 0 ]; then
  1398. shutdown -r now
  1399. else
  1400. return
  1401. fi
  1402. fi
  1403. fi
  1404. }
  1405. menu() {
  1406. if [ -z "$DEFITEM" ]; then
  1407. DEFITEM="$LANG_MENUKEYBOARD"
  1408. fi
  1409. DIALOG --default-item $DEFITEM \
  1410. --extra-button --extra-label "$LANG_MENUSETTINGS" \
  1411. --title " $LANG_INSTMENU " \
  1412. --menu "$MENULABEL" 10 70 0 \
  1413. "$LANG_MENUKEYBOARD" "$LANG_KEYBOARDSET" \
  1414. "$LANG_MENUHOSTNAME" "$LANG_HOSTSET" \
  1415. "$LANG_MENULOCALE" "$LANG_LOCALESET" \
  1416. "$LANG_MENUTIMEZONE" "$LANG_TIMEZONESET" \
  1417. "$LANG_MENUROOTPW" "$LANG_ROOTPWSET" \
  1418. "$LANG_MENUUSERACC" "$LANG_USERNPWSET" \
  1419. "$LANG_MENUBOOTLOADER" "$LANG_BOOTLOADERSET" \
  1420. "$LANG_MENUPARTITION" "$LANG_PARTITIONSET" \
  1421. "$LANG_MENUFILESYSTEM" "$LANG_FSYSSET" \
  1422. "$LANG_MENUINSTALL" "$LANG_INSTALLSETTINGS" \
  1423. "$LANG_MENUEXIT" "$LANG_EXITINST"
  1424. if [ $? -eq 3 ]; then
  1425. # Ayarların gösterilmesi
  1426. cp $AYAR_DOSYASI /tmp/conf_hidden.$$;
  1427. sed -i "s/^ROOTPASSWORD.*/ROOTPASSWORD <-hidden->/" /tmp/conf_hidden.$$
  1428. DIALOG --title "$LANG_SAVEDSETTINGS" --textbox /tmp/conf_hidden.$$ 18 90
  1429. rm /tmp/conf_hidden.$$
  1430. return
  1431. fi
  1432. case $(cat $ANSWER) in
  1433. "$LANG_MENUKEYBOARD") menu_keymap && [ -n "$KEYBOARD_YAPILDI" ] && DEFITEM="$LANG_MENUHOSTNAME";;
  1434. "$LANG_MENUHOSTNAME") menu_hostname && [ -n "$HOSTNAME_YAPILDI" ] && DEFITEM="$LANG_MENULOCALE";;
  1435. "$LANG_MENULOCALE") menu_locale && [ -n "$LOCALE_YAPILDI" ] && DEFITEM="$LANG_MENUTIMEZONE";;
  1436. "$LANG_MENUTIMEZONE") menu_timezone && [ -n "$TIMEZONE_YAPILDI" ] && DEFITEM="$LANG_MENUROOTPW";;
  1437. "$LANG_MENUROOTPW") menu_rootpassword && [ -n "$ROOTPASSWORD_YAPILDI" ] && DEFITEM="$LANG_MENUUSERACC";;
  1438. "$LANG_MENUUSERACC") menu_useraccount && [ -n "$USERNAME_YAPILDI" ] && [ -n "$USERPASSWORD_YAPILDI" ] && DEFITEM="$LANG_MENUBOOTLOADER";;
  1439. "$LANG_MENUBOOTLOADER") menu_bootloader && [ -n "$BOOTLOADER_YAPILDI" ] && DEFITEM="$LANG_MENUPARTITION";;
  1440. "$LANG_MENUPARTITION") menu_partitions && [ -n "$PARTITIONS_YAPILDI" ] && DEFITEM="$LANG_MENUFILESYSTEM";;
  1441. "$LANG_MENUFILESYSTEM") menu_filesystems && [ -n "$FILESYSTEMS_YAPILDI" ] && DEFITEM="$LANG_MENUINSTALL";;
  1442. "$LANG_MENUINSTALL") menu_install;;
  1443. "$LANG_MENUEXIT") DIE;;
  1444. *) DIALOG --yesno "$LANG_ABORTINST" ${YESNOSIZE} && DIE
  1445. esac
  1446. }
  1447. if [ ! -x /bin/dialog ]; then
  1448. echo "$LANG_ERRDIALOG"
  1449. exit 1
  1450. fi
  1451. if [ "$(id -u)" != "0" ]; then
  1452. echo "$LANG_INSTMUSTROOT" 1>&2
  1453. exit 1
  1454. fi
  1455. #
  1456. # kuruluma giriş noktası - eğer kurulum ayar dosyası parametre verilirse direk kuruluma başlayacak.
  1457. #
  1458. [ ! -z $DOSYADAN_KURULUM ] && menu_install && exit 0
  1459. DIALOG --title "${BOLD}${RED} $LANG_ENTERMILIS ${RESET}" --msgbox "`printf "$LANG_MAINDIALOG" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}" "${BOLD}" "${RESET}"`" 16 80
  1460. while true; do
  1461. menu
  1462. done
  1463. exit 0