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]
Example #2
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]
Example #3
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]
    def __init__(self, disco, ini=0, fin=0):
        gtk.Fixed.__init__(self)
        self.disco = disco
        self.ini = ini
        self.fin = fin

        self.swap = gen.ram() if int(gen.ram()) >= 1048576 else int(gen.ram()) * 2
        self.ini = int(float(str(self.ini).replace(',', '.')))
        self.fin = int(float(str(self.fin).replace(',', '.')))
        self.metodo = 'particion_2'
        self.conf = (self.disco, self.ini, self.fin, self.swap, self.metodo)

        txt_info = "Seleccione tipo de instalación que desea realizar"
        self.lbl1 = gtk.Label(txt_info)
        self.lbl1.set_size_request(690, 20)
        self.lbl1.set_justify(gtk.JUSTIFY_CENTER)
        self.put(self.lbl1, 0, 0)

        self.barra = None
        self.barra = barra.Main(self.conf)
        self.barra.set_size_request(690, 100)
        self.put(self.barra, 0, 30)

        # Opciones
        msg_1 = "Instalar todo en una sola partición."
        self.option_1 = gtk.RadioButton(None, msg_1)
        self.option_1.connect("toggled", self.change_option, "particion_1")
        self.option_1.set_size_request(350, 20)
        self.put(self.option_1, 0, 140)

        msg_2 = "Separar la partición /home (Recomendado)."
        self.option_2 = gtk.RadioButton(self.option_1, msg_2)
        self.option_2.set_active(True)
        self.option_2.connect("toggled", self.change_option, "particion_2")
        self.option_2.set_size_request(350, 20)
        self.put(self.option_2, 0, 165)

        msg_3 = "Separar las particiones /home, /usr y /boot."
        self.option_3 = gtk.RadioButton(self.option_1, msg_3)
        self.option_3.connect("toggled", self.change_option, "particion_3")
        self.option_3.set_size_request(350, 20)
        self.put(self.option_3, 0, 190)

        msg_4 = "Particionar manualmente."
        self.option_4 = gtk.RadioButton(self.option_1, msg_4)
        self.option_4.connect("toggled", self.change_option, "particion_4")
        self.option_4.set_size_request(350, 20)
        self.put(self.option_4, 0, 215)

        self.leyenda = leyenda.Main(self, 'particion_1')
        self.leyenda.set_size_request(20, 125)
        self.put(self.leyenda, 390, 140)

        # Etiqueta partición swap
        self.lbl_swap = gtk.Label('Espacio de intercambio (swap)')
        self.lbl_swap.set_size_request(270, 20)
        self.lbl_swap.set_alignment(0, 0)
        self.put(self.lbl_swap, 420, 140)
        
        # Etiqueta partición root
        self.lbl_root = gtk.Label('Espacio de administrador (/root)')
        self.lbl_root.set_size_request(270, 20)
        self.lbl_root.set_alignment(0, 0)
        self.put(self.lbl_root, 420, 165)

        # Etiqueta partición home
        self.lbl_home = gtk.Label('Espacio de usuarios (/home)')
        self.lbl_home.set_size_request(270, 20)
        self.lbl_home.set_alignment(0, 0)
        self.put(self.lbl_home, 420, 190)

        # Etiqueta partición usr
        self.lbl_usr = gtk.Label('Espacio de aplicaciones (/usr)')
        self.lbl_usr.set_size_request(270, 20)
        self.lbl_usr.set_alignment(0, 0)
        self.put(self.lbl_usr, 420, 215)

        # Etiqueta partición boot
        self.lbl_boot = gtk.Label('Espacio de arranque (/boot)')
        self.lbl_boot.set_size_request(270, 20)
        self.lbl_boot.set_alignment(0, 0)
        self.put(self.lbl_boot, 420, 240)

        self.show_all()