jueves, 15 de agosto de 2013

Script para formatear usb

Esta Escrito:
Pues si vivimos, para el Señor vivimos; y si morimos, para el Señor morimos. Así pues, sea que vivamos, o que muramos, del Señor somos. (Romanos 14:8)
Tomado de: EspacioLinux
Busque en el foro por si existía algún tema similar y pues creo que no, sin embargo considero que
que en vez reinventar la rueda, más bien puede resultar interesante esta solución, pues no es para nada compleja
y puede ser entendida en poco tiempo, (de hecho hasta hoy programe algo "serio" en bash).

Por otro lado, este script no es definitivo y supongo que se le pueden hacer muchas mejoras
así que serán muy interesantes sus comentarios al respecto.
Código:
#!/bin/bash


## pequeño script para formatear dispositivos USB  de manera sencilla
## este script funciona para dispositivos con formato fat fat32

     function cambiaNombreDispositivo(){
            ## esta funcion se encarga de cambiarle el nombre al dispositivo si lo deseamos. 
               echo digite el nombre  que desea ponerle al dispositivo
               read nombre
               nombreDispositivo=$nombre
         }
       
    function formateo(){
            ## esta funcion se encarga de formatear el dispositivo.
               echo acontinuacion digite la contraseña del superusuario para continuar
               umount $puntoMontaje                             ## desmonta el dispositivo
               mkfs.vfat -n $nombreDispositivo $puntoMontaje -I ## formatea con el nuevo nombre y el punto de montaje del dispositivo
             
         }    
    
 
    
    echo conecte su llave o dispositivo usb al computador
   
      puntoMontaje=$(mount | grep vfat | cut -c 1-8) ## obtiene el punto de montaje del dispositivo
      nombreDispositivo=$(df -H | grep $puntoMontaje | cut -c 88-98) ## obtiene el nombre del dispositivo, si es que lo tiene
     tamanioDispositivo=$(df -H | grep $puntoMontaje | cut -c 58-60) ## obtiene el tamanio del dispositivo en GB con potencias de 1000 y no 1024
   
    echo el dispositivo que desea formatear se llama $nombreDispositivo  y su tamanio es $tamanioDispositivo GB
   
    ## -ge mayor o igual que
    ## -gt mayor que
    ## -lt menor que
    ## -le menor o igual que
     
    if [ $tamanioDispositivo -ge 16 ];then

      echo su dispositivo es mas grande que 16 GB. Esta seguro de que desea formatearlo? escriba si o no 
         read escoja
         
          if [ $escoja == si ]; then
         
            ## pasa a formatear la llave 
            cambiaNombreDispositivo ## llama a la funcion cambia nombre que asigna otra etiqueta al dispositivo
            formateo                ## llama a la funcion que formatea el dispositivo
            echo su dispositivo ha sido formateado correctamente
         
          exit
         
          else
            echo gracias por su tiempo
            exit
         fi 
         
   else
   ## formatea la llave
      cambiaNombreDispositivo
      formateo
      echo su dispositivo se ha formateado correctamente
   fi    

   


pastebin para los ojos: http://pastebin.com/NFUYeGjx

Limitaciones conocidas:

1- solo lista dispositivos con formato fat
2- necesita permisos de superusuario para funcionar correctamente, pues emplea mkfs


2 comentarios: