efi kurulum test1

This commit is contained in:
Furkan Kalkan 2016-11-10 00:23:33 +02:00 committed by GitHub
parent 59134aa913
commit ae9b675410
1 changed files with 43 additions and 6 deletions

View File

@ -27,6 +27,9 @@ def runShellCommand(c):
out = subprocess.check_output(c,stderr=subprocess.STDOUT,shell=True,universal_newlines=True)
return out.replace("\b","") #encode byte format to string, ugly hack
def isEFI():
return os.path.isdir("/sys/firmware/efi")
def greetingDialog():
greeting = """
Milis GNU/Linux kurulum aracı Milis'i bilgisayarınıza güvenli bir şekilde kurmanızı sağlamak amacıyla geliştirilmiş basit bir kurulum aracıdır.
@ -104,9 +107,18 @@ def chooseDisk():
log.write("{} \t {}\n".format(disq[0],disq[1]))
status,selectedDisk = d.menu(title="Adım 2: Disk İşlemleri",text="Lütfen bölümleme yapmak istediğiniz diski seçiniz:",choices=diskChoice,width=70)
log.write("\n[+] Seçilmiş Disk: {}\n\n".format(selectedDisk))
if isEFI():
d.messagebox(title="Uyarı !",text="(U)EFI kullanan bir sistem kullanıyorsunuz.\n\n \
Kurulum aracımız (U)EFI desteklemekle birlikte henüz deneysel bir özelliktir ve kurulum \
sonrası yaşanacak veri kayıplarından kullanıcı sorumludur.\
Eğer sisteminizde hali hazırda EFI kullanan başka bir işletim sistemi varsa muhtemelen \
diski GPT olarak bölümlemenize ve EFI bölümünü elle oluşturmanıza gerek kalmayacaktır. \
Eğer sanal makinaya ya da boş bir diske kuruyorsanız ve ne yapacağınızı bilmiyorsanız \
https://milis.gungre.ch/efikurulum.html adresindeki makaleye göz atınız.")
os.system("cfdisk /dev/" + selectedDisk)
choosePart()
def choosePart():
partChoice = []
validParts = ['sd','hd','mmcblk0p']
@ -173,18 +185,43 @@ def copySystemFiles(target):
def initramfsCreate(target):
os.system('chroot /mnt dracut --no-hostonly --add-drivers "ahci" -f /boot/initramfs')
log.write('[+] Initramfs oluşturuldu.')
if isEFI():
d.messagebox("Uyarı !", text="")
if d.yesno(title="Adım 4: Önyükleyici kurulumu",text=" GNU/GRUB, Linux ve Windows gibi diğer işletim sistemlerini yüklemek için kullanılan bir önyükleyicidir. Bu Milis'i açabilmek için gerekli bir adımdır\
fakat ne yaptığınızı biliyorsanız bir nedenden ötürü grub kurmak istemeyebilirsiniz.\n\n Grub önyükleyiciyi kurmak istiyor musunuz ?",width=70) == "ok":
installGrub(target)
else:
finishInstall()
def mountEFIPart():
partTypes = runShellCommand("fdisk -lo device,type | awk '!/^($|I|D|U|S|A|T)/ {print $2}'").split('\n')
partNames = runShellCommand("fdisk -lo device,type | awk '!/^($|I|D|U|S|A|T)/ {print $1}'").split('\n')
try:
efipart = partNames[partTypes.index('EFI')]
os.system("mount {} /mnt/boot/efi".format(efipart))
except ValueError:
d.messagebox(title="Hata !",text="Sisteminizde EFI Sistem bölümünü bulunamadı. Bu bölümün olup olmadığını kontrol ediniz.\
Eğer bölümün olduğuna eminseniz https://github.com/milisarge/malfs-milis/issues adresinden bug bildiriminde bulunabilirsiniz.")
sys.exit()
def installGrub(target):
os.system("mount --bind /dev /mnt/dev")
os.system("mount --bind /sys /mnt/sys")
os.system("mount --bind /proc /mnt/proc")
if isEFI():
try:
os.mkdir("/mnt/boot/efi")
except:
pass
mountEFIPart()
os.system("chroot /mnt grub-install --efi-directory=/mnt/boot/efi --target=x86_64-efi --bootloader-id=Milis {}".format(target[:-1]))
log.write('[+] Grub kuruldu: {}\n'.format(target[:-1]))
os.system("chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg")
else:
target = target[:-1]
if target == "/dev/mmcblk0": #SD kart'a kurulum fix
if target == "/dev/mmcblk0": #SD kart'a kurulum fix (deneysel)
os.system("grub-install --boot-directory=/mnt/boot /dev/mmcblk0")
else:
os.system("grub-install --boot-directory=/mnt/boot " + target)