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]
Esempio n. 3
0
    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]
Esempio n. 4
0
    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]
Esempio n. 5
0
    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]