def particion_1(self): particion_boot = '' self.par.accion('Eliminando Particiones') gen.desmontar(self.disco) # Desmonta todas las particiones del disco p = self.part.lista_particiones(self.disco) print self.ini, self.fin if self.vacio == False: for s in p: num = s[10] if s[4].find('swap') > -1: cmd = 'swapoff '.format(s[0]) print cmd, commands.getstatusoutput(cmd) if num != '': cmd = 'parted -s {0} rm {1}'.format(self.disco, num) print cmd, commands.getstatusoutput(cmd) ini = 1049 # Inicio de la partición fin = gen.kb(p[0][9]) # Fin de la partición else: ini = float(self.ini) # Inicio de la partición fin = float(self.fin) # Fin de la partición disco = self.disco # Ruta del disco ram = int(gen.ram()) # Cantidad de Ram swap = (ram * 2) if ram < 1048576 else ram #tamaño de la swap fin_ext = int(fin) # Fin de la partición Extendida ini_ext = fin_ext - swap # Inicio de la partición Extendida ini_swap = ini_ext + 32 # Inicio de la partición Swap fin_swap = fin_ext # Fin de la partición Swap ini_root = int(ini) # Inicio de la particion Root fin_root = ini_ext # Fin de la partición Root self.par.accion('Creando Particiones') self.part.particionar(disco, 'primary', 'ext4', ini_root, fin_root) self.part.particionar(disco, 'extended', '', ini_ext, fin_ext) self.part.particionar(disco, 'logical', 'linux-swap', ini_swap,fin_swap) p = self.part.lista_particiones(self.disco) for s in p: # vuelvo a listar las particiones para buscar el nombre de cada # particion creada l = [str(int(float(s[1][:-2].replace(',', '.'))) + 0), \ str(int(float(s[1][:-2].replace(',', '.'))) + 1), \ str(int(float(s[1][:-2].replace(',', '.'))) - 1)] if str(ini_root) in l: self.par.accion('Formateando partición {0} (/) como ext4'\ .format(s[0])) os.system('mkfs.ext4 {0}'.format(s[0])) self.particiones_montadas[s[0]] = '/target' self.particiones_montadas2[s[0]] = '/target' os.system("parted {0} toggle {1} boot".format(s[0][:-1], s[0][-1:])) particion_boot=s[0] if str(ini_swap) in l: self.par.accion('Formateando partición {0} como swap'\ .format(s[0])) os.system('mkswap {0}'.format(s[0])) os.system('swapon {0}'.format(s[0])) gen.montar(self.particiones_montadas) return [self.particiones_montadas2, particion_boot]
def particionar(self): particion = [] for fila in self.lista: suma = 0 if fila[0] != '': disco = fila[0] if fila[1] == 'Primaria': tipo = 'primary' particion.append([fila[2], fila[5], fila[3]]) if fila[1] == 'Lógica': tipo = 'logical' suma = 32 particion.append([fila[2], fila[5] + 32, fila[3]]) if fila[1] == 'Extendida': tipo = 'extended' inicio = fila[5] + suma cmd = 'parted -s {0} mkpart {1} {2} {3}k {4}k'.\ format(fila[0], tipo, fila[2], fila[5] + suma, fila[6] ) print cmd, commands.getstatusoutput(cmd) particiones = self.part.lista_particiones(disco) for inicios in particiones: # vuelvo a listar las particiones para buscar el nombre de cada # particion creada inicio = [inicios[1][:-2] , \ str(int(float(inicios[1][:-2].replace(',', '.'))) + 1), \ str(int(float(inicios[1][:-2].replace(',', '.'))) - 1)] for part in particion: cmd = '' if str(part[1]) in inicio: if part[0] == 'ext4': cmd = 'mkfs.ext4 ' if part[2] != 'Ninguno': self.particiones_montadas[inicios[0]] = '/target/' + part[2] self.particiones_montadas2[inicios[0]] = '/target/' + part[2] elif part[0] == 'ext3': cmd = 'mkfs.ext3 ' if part[2] != 'Ninguno': self.particiones_montadas[inicios[0]] = '/target/' + part[2] self.particiones_montadas2[inicios[0]] = '/target/' + part[2] elif part[0] == 'ext2': cmd = 'mkfs.ext2 ' if part[2] != 'Ninguno': self.particiones_montadas[inicios[0]] = '/target/' + part[2] self.particiones_montadas2[inicios[0]] = '/target/' + part[2] elif part[0] == 'linux-swap': cmd = 'mkswap ' os.system('swapon {0}'.format(inicios[0])) elif part[0] == 'reiserfs': cmd = 'echo y | mkreiserfs ' if part[2] != 'Ninguno': self.particiones_montadas[inicios[0]] = '/target/' + part[2] self.particiones_montadas2[inicios[0]] = '/target/' + part[2] elif part[0] == 'fat16': cmd = 'mkfs.vfat -F 16 ' if part[2] != 'Ninguno': self.particiones_montadas[inicios[0]] = '/target/' + part[2] self.particiones_montadas2[inicios[0]] = '/target/' + part[2] elif part[0] == 'fat32': cmd = 'mkfs.vfat -F 32 ' if part[2] != 'Ninguno': self.particiones_montadas[inicios[0]] = '/target/' + part[2] self.particiones_montadas2[inicios[0]] = '/target/' + part[2] cmd = cmd + str(inicios[0]) print '---', cmd, commands.getstatusoutput(cmd) commands.getstatusoutput(cmd) if part[2] == '/boot' or (part[2] == '/' and self.boot == False): self.boot = inicios[0] gen.montar(self.particiones_montadas) return [self.particiones_montadas2, self.boot]
def particion_2(self): particion_boot = '' self.par.accion('Eliminando Particiones') gen.desmontar(self.disco) # Desmonta todas las particiones del disco p = self.part.lista_particiones(self.disco) if self.vacio == False: ini = 1049 # Inicio de la partición fin = gen.kb(p[0][9]) # Fin de la partición for s in p: num = s[10] if s[4].find('swap') > -1: cmd = 'swapoff '.format(s[0]) print cmd, commands.getstatusoutput(cmd) if num != '': cmd = 'parted -s {0} rm {1}'.format(self.disco, num) print cmd, commands.getstatusoutput(cmd) else: ini = float(self.ini) # Inicio de la partición fin = float(self.fin) # Fin de la partición disco = self.disco # Ruta del disco ram = int(gen.ram()) # Cantidad de Ram swap = (ram * 2) if ram < 1048576 else ram #tamaño de la swap ini_root = int(ini) # Inicio de la particion Root fin_root = ini_root + int(gen.kb( self.root_p2)) #Fin de la partición Root ini_ext = (int(fin_root) + 32) # Inicio de la partición Extendida fin_ext = (int(fin)) # Fin de la partición Extendida ini_home = ini_ext + 32 # Inicio de la partición Home fin_home = fin_ext - swap # Fin de la partición Home ini_swap = fin_ext - swap + 32 # Inicio de la partición Swap fin_swap = fin_ext # Fin de la partición Swap self.par.accion('Creando Particiones') self.part.particionar(disco, 'primary', 'ext4', ini_root, fin_root) self.part.particionar(disco, 'extended', '', ini_ext, fin_ext) self.part.particionar(disco, 'logical', 'ext4', ini_home, fin_home) self.part.particionar(disco, 'logical', 'linux-swap', ini_swap, fin_swap) p = self.part.lista_particiones(disco) for s in p: # vuelvo a listar las particiones para buscar el nombre de cada # particion creada l = [str(int(float(s[1][:-2].replace(',', '.'))) + 0), \ str(int(float(s[1][:-2].replace(',', '.'))) + 1), \ str(int(float(s[1][:-2].replace(',', '.'))) - 1)] print ini_root, ini_home, ini_swap, l if str(ini_root) in l: self.par.accion('Formateando partición {0} como ext4'\ .format(s[0])) os.system('mkfs.ext4 {0}'.format(s[0])) self.particiones_montadas[s[0]] = '/target' self.particiones_montadas2[s[0]] = '/target' os.system("parted {0} toggle {1} boot".format( s[0][:-1], s[0][-1:])) particion_boot = s[0] if str(ini_home) in l: self.par.accion('Formateando partición {0} como ext4'\ .format(s[0])) os.system('mkfs.ext4 {0}'.format(s[0])) self.particiones_montadas[s[0]] = '/target/home' self.particiones_montadas2[s[0]] = '/target/home' if str(ini_swap) in l: self.par.accion('Formateando partición {0} como swap'\ .format(s[0])) os.system('mkswap {0}'.format(s[0])) os.system('swapon {0}'.format(s[0])) gen.montar(self.particiones_montadas) return [self.particiones_montadas2, particion_boot]
def particion_1(self): particion_boot = '' ini = int(gen.kb(self.ini)) # Inicio de la partición fin = int(gen.kb(self.fin)) # Fin de la partición swap = self.swap # existe o no una partición swap en el disco fs = self.fs # Sistema de Archivos de la partición particion = self.particion # Ruta de la partición disco = self.disco # Ruta del disco num = self.num # número de la partición ram = int(gen.ram()) # Cantidad de Ram ini_win = int(ini) # Inicio de la partición con windows fin_win = int(self.nuevo_fin) # Fin de la partición con windows ini_root = fin_win + ini_win + 32 # Inicio de la particion Root if swap == True: # Si existe una partición Swap fin_root = fin # Fin de la partición Root else: # Si no existe una partición Swap swap = (ram * 2) if ram < 1048576 else ram #tamaño de la swap ini_ext = fin - swap # Inicio de la partición Extendida fin_ext = fin # Fin de la partición Extendida ini_swap = ini_ext + 32 # Inicio de la partición Swap fin_swap = fin_ext # Fin de la partición Swap fin_root = ini_ext # Fin de la partición Root swap = False self.par.accion('Desmontando dispositivo') os.system('umount -l {0}'.format(self.particion) ) self.par.accion('redimensionando partición {0}'.format(self.particion)) print "fs: " + fs if fs == 'ntfs': # Redimensiono la particion si es NTFS cmd = 'echo y | ntfsresize -P --force {0} -s {1}k'.\ format(particion, fin_win) print cmd, commands.getstatusoutput(cmd) cmd = 'parted -s {0} rm {1}'.format(disco, num) print cmd, commands.getstatusoutput(cmd) cmd = 'parted -s {0} mkpart primary NTFS {1}k {2}k'.\ format(disco, ini_win, fin_win + ini_win) print cmd, commands.getstatusoutput(cmd) elif fs == 'fat32' or fs == 'ext3': # Redimensiono la partición si es FAT32 o EXT3 cmd = 'parted -s {0} resize {1} {2}k {3}k'.\ format(disco, num, ini_win, fin_win + ini_win) print cmd commands.getstatusoutput(cmd) #commands.getstatusoutput(cmd) self.par.accion('Creando Particiones') self.part.particionar(disco, 'primary', 'ext4', ini_root, fin_root) if swap == False: self.part.particionar(disco, 'extended', '', ini_ext, fin_ext) self.part.particionar(disco, 'logical', 'linux-swap', ini_swap,\ fin_swap) p = self.part.lista_particiones(disco) for s in p: # vuelvo a listar las particiones para buscar el nombre de cada # particion creada l = [s[1][:-2], \ str(int(float(s[1][:-2].replace(',', '.'))) + 1), \ str(int(float(s[1][:-2].replace(',', '.'))) - 1)] if str(ini_root) in l: self.par.accion('Formateando partición {0} como ext4'. \ format(s[0])) os.system('mkfs.ext4 {0}'.format(s[0])) self.particiones_montadas[s[0]] = '/target' self.particiones_montadas2[s[0]] = '/target' os.system("parted {0} toggle {1} boot".format(s[0][:-1], s[0][-1:])) particion_boot=s[0] if swap == False: if str(ini_swap) in l: self.par.accion('Formateando partición {0} como swap'. \ format(s[0])) os.system('mkswap {0}'.format(s[0])) os.system('swapon {0}'.format(s[0])) gen.montar(self.particiones_montadas) return [self.particiones_montadas2, particion_boot]
def particionar(self): particion = [] for fila in self.lista: suma = 0 if fila[0] != '': disco = fila[0] if fila[1] == 'Primaria': tipo = 'primary' particion.append([fila[2], fila[5], fila[3]]) if fila[1] == 'Lógica': tipo = 'logical' suma = 32 particion.append([fila[2], fila[5] + 32, fila[3]]) if fila[1] == 'Extendida': tipo = 'extended' inicio = fila[5] + suma cmd = 'parted -s {0} mkpart {1} {2} {3}k {4}k'.\ format(fila[0], tipo, fila[2], fila[5] + suma, fila[6] ) print cmd, commands.getstatusoutput(cmd) particiones = self.part.lista_particiones(disco) for inicios in particiones: # vuelvo a listar las particiones para buscar el nombre de cada # particion creada inicio = [inicios[1][:-2] , \ str(int(float(inicios[1][:-2].replace(',', '.'))) + 1), \ str(int(float(inicios[1][:-2].replace(',', '.'))) - 1)] for part in particion: cmd = '' if str(part[1]) in inicio: if part[0] == 'ext4': cmd = 'mkfs.ext4 ' if part[2] != 'Ninguno': self.particiones_montadas[ inicios[0]] = '/target/' + part[2] self.particiones_montadas2[ inicios[0]] = '/target/' + part[2] elif part[0] == 'ext3': cmd = 'mkfs.ext3 ' if part[2] != 'Ninguno': self.particiones_montadas[ inicios[0]] = '/target/' + part[2] self.particiones_montadas2[ inicios[0]] = '/target/' + part[2] elif part[0] == 'ext2': cmd = 'mkfs.ext2 ' if part[2] != 'Ninguno': self.particiones_montadas[ inicios[0]] = '/target/' + part[2] self.particiones_montadas2[ inicios[0]] = '/target/' + part[2] elif part[0] == 'linux-swap': cmd = 'mkswap ' os.system('swapon {0}'.format(inicios[0])) elif part[0] == 'reiserfs': cmd = 'echo y | mkreiserfs ' if part[2] != 'Ninguno': self.particiones_montadas[ inicios[0]] = '/target/' + part[2] self.particiones_montadas2[ inicios[0]] = '/target/' + part[2] elif part[0] == 'fat16': cmd = 'mkfs.vfat -F 16 ' if part[2] != 'Ninguno': self.particiones_montadas[ inicios[0]] = '/target/' + part[2] self.particiones_montadas2[ inicios[0]] = '/target/' + part[2] elif part[0] == 'fat32': cmd = 'mkfs.vfat -F 32 ' if part[2] != 'Ninguno': self.particiones_montadas[ inicios[0]] = '/target/' + part[2] self.particiones_montadas2[ inicios[0]] = '/target/' + part[2] cmd = cmd + str(inicios[0]) print '---', cmd, commands.getstatusoutput(cmd) commands.getstatusoutput(cmd) if part[2] == '/boot' or (part[2] == '/' and self.boot == False): self.boot = inicios[0] gen.montar(self.particiones_montadas) return [self.particiones_montadas2, self.boot]