Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: andaluz en 3 Febrero 2012, 20:56 pm



Título: Script crear particiones [Bash]
Publicado por: andaluz en 3 Febrero 2012, 20:56 pm
Hola a todos, quiero realizar un Script para que me haga el particionado de mi unidad de disco /dev/sdb, quiero hacer:

      - comprobar que esta vaco, en caso de que no este vacío, lo eliminare todo.
      - cuando este limpio /dev/sdb tengo que hacer 2 particiones:
              * sdb1 del 60 % sistema de archivos ext3.
              * sdb2 del 40 % sistema de archivos fat32.
      - una vez creadas las debo chequear.
      - configuración del sistema para el uso de las particiones:
              * sdb1 se montara en /media/hdext3, dolo la podrá montar root y no debe montarse al iniciar el sistema.
              * sdb2 se montara en /media/hdfat32, la podrá montar cualquier usuario, pero no permitirá ejecutar programas, se montara automáticamente al iniciar el sistema y tendrá programado un chequeo.
      - la información se deberá ir mostrando por pantalla.

Código
  1. #!/bin/bash
  2.  
  3. num=$(ls /dev/ | grep -c '^sdb')
  4. echo "Num: "$num
  5.  
  6. # si num es igual a 1 es que no existen particiones en la unidad /dev/sdb
  7. if [ $num = 1 ]
  8. then
  9.        echo "El directorio /dev/sdb esta vacío."
  10. else
  11.        # si num es mayor a 1 quiere decir que tiene mas de 1 partición
  12.        echo "Existen particiones en /dev/sdb "
  13. fi
  14.  
  15. # me gustaría que me ayudaran a finalizarlo, ya que no esto muy puesto en esto de las particiones.
  16. # creo que para particionar en un script se realiza:
  17. #      parted /dev/sdb mkpart primary ext3 0G 3G
  18.  

Espero que me puedan ayudar

saludos


Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 4 Febrero 2012, 13:44 pm
he confeccionado mas código del script, me gustaría que me ayudaran, ya que tiene algunos fallos en tiempo de ejecución.

Código
  1. #!/bin/bash
  2.  
  3. n=1
  4. # compruebo que en /dev el numero de lineas comienzan por sdb sea 1
  5. num=$(ls /dev/ | grep -c '^sdb')
  6. echo "Num de particiones: "$num
  7.  
  8. # si num es igual a 1 quiere decir que no existen particiones en esa unidad
  9. if [ $num = 1 ]
  10. then
  11.        echo "El directorio /dev/sdb no tiene particiones"
  12. else
  13.        # si num es mayor a 1 quiere decir que hay mas de 1 partición
  14.        echo "Existe mas de 1 particion en /dev/sdb"
  15.        i=1
  16.  
  17.        # recorro desde 1 hasta el numero de particiones
  18.        for $i in $num
  19.        do
  20.              # borro la particion
  21.              rm $i
  22.              echo "El directorio se ha limpiado de particiones"
  23.              # aumento en 1 el valor de i
  24.              i=$(expr $i \+ 1)
  25.        done
  26. fi
  27.  
  28. # creo la primera particion del 60%
  29. parted /dev/sdb mkpart primary ext3 0G 3G
  30. # creo la primera particion del 40%
  31. parted /dev/sdb mkpart primary fat32 3G 5G
  32.  
  33. # chequear las particiones creadas
  34.  
  35.  
  36. #   sdb1 se montara en /media/hdext3, dolo la podrá montar root y no debe
  37. #montarse al iniciar el sistema
  38.  
  39.  
  40.  
  41. #  sdb2 se montara en /media/hdfat32, la podrá montar cualquier usuario, pero no
  42. #permitirá ejecutar programas, se montara automáticamente al iniciar el sistema y
  43. #tendrá programado un chequeo
  44.  
  45.  
  46.  

haber si me pueden ayudar a realizar los ultimos apartados.

saludos


Título: Re: Script crear particiones [Bash]
Publicado por: leogtz en 4 Febrero 2012, 16:49 pm
El script se puede acortar muchisimo usando expansión de comandos.

A qué te refieres con "chequear las particiones creadas"?


Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 4 Febrero 2012, 17:14 pm
eso serial algo como chkdsk /dev/sdb$i

eso del $i estaria bien colocado asi o lo tendria que meter dentro de un for como lo he utilizado anteriormente???


Título: Re: Script crear particiones [Bash]
Publicado por: leogtz en 4 Febrero 2012, 17:24 pm
Si te funcionó el for anterior utilizalo de igual manera para checar las particiones.


Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 5 Febrero 2012, 12:10 pm
el fallo que me da en el primer for me dice que $i no es un identificador valido, como puedo solucionar eso?? si en lugar de poner
Código
  1.           for $i in $num
  2.  
pongo
Código
  1.           for i=1 in $num
  2.  

me dice lo mismo que no es un identificador valido. que puedo hacer para solucionar esto???

Saludos


Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 6 Febrero 2012, 22:40 pm
solucionado