Como eliminar protección de escritura en una unidad extraible USB


Después de haber trabajado con versiones Linux utilizando su memoria flash sobrescrita o con varias particiones, es posible que desee volver a una partición única (es decir restaurar la unidad flash a su estado original) para que pueda volver a leerse por todas los ordenadores .Asimismo es relativamente habitual cuando se comparten unidades USB entre sistemas Linux  como Lubuntu   y Windows  terminar dejando estas unidades  inaccesibles.Asimismo  incluso sin haber insertado la unidad en un equipo Linux   puedea que tampoco deje de responder

Casi siempre la unidad extraible USB    o las propias trajestas SD o micro-sd  tanto al conectarlas a un equipo Windows como un equipo Linux o Windows  , no permiten su formateo  desde el propio interfaz, respondiendo del mismo modo:

  • Error de Protección de escritura(Read-only)
  • Introduzca una unidad extraible

Hay una herramienta  para entorno Windows von suerte nos puede ser muy útil para Restaurar una unidad flash utilizando HP USB Format Tool , pues  como se  ve en la pantalla   es bastante intuitiva su modo de funcionamiento:

hpformat.PNG

No obstante como se puede apreciar en la imagen , no siempre podrá resolver el problema , así que antes de tirar la toalla   puede probar  las tres siguientes herramientas:

 

 Método manual a través de Diskpart – Windows

Diskpart es una utilidad de línea de comandos que permite administrar discos. Algunos comandos sólo pueden ser accedidos a través de Diskpart y no mediante el “Administrador de discos” de Window .

Al estar integrada con Windows , su uso es bastante sencillo como vamos a ver;

  1. Ejecute desde el interfaz de Cortana  cmd.exe
  2. Escriba Diskpart y presione Enter
  3. Se abrira  una nueva ventana ademas del la interfaz  comandos
  4. Escriba List Disk y presione Enter. Observe que aparece un numero junto a la palabra «Disco»
  5. Escriba Seleccione Disco X donde X es el número de disco de su unidad USB (en el ejemplo x=1 ) y presione Intro.
  6. Escriba Clean (Limpiar)  y presione Entrar
  7. Escriba Create Partition Primary y presione Enter
  8. Escriba Active y presione Entrar
  9. Escriba Format fs = Fat32 Quick y presione Entrar
  10. Escriba Salir y presione Entrar

diskpart

Aternativamente si Diskpart   no ha servido , los usuarios de Windows pueden usar la herramienta  BOOTICE:

  1. Descargue , extraiga y ejecute la herramienta BOOTICE de Pauly
  2.  Seleccione su unidad flash USB de la lista, (2) Haga clic en Parts Manage( Administrar partes )
  3.  Haga clic en Re-Partitioning ( Reparticionar )
  4.  En Modo disco, elija USB-FDD , USB-HDD , o modo USB-ZIP . Uso USB-HDD ya que funciona con cada BIOS que uso. >(2) Haga clic en Aceptar

 

 SdFormatter :

Los usuarios de Windows y / o Mac OS pueden usar la herramienta SD Formatter para reformatear y restaurar una unidad SD o USB  .Este método no siempre es eficaz para unidades USB pero bastante fiable para SD   así que merece  la pena intentarlo

sdfor

Para aquellos que prefieran   Linux, esta tarea se puede realizar  a través de  linea de comandos ,pero debemos advertir querido lector que si no le ha respondido los métodos anteriores tampoco probablemente le   funcione ,pero si tiene un equipo Linux ( por ejemplo con Lubuntu)  ,tal  vez merzca la pena intentarlo

Primero, debemos eliminar las viejas particiones que permanecen en la llave USB.

    1. Vaya a la consola del sistema
    2. Ejecute sudo su
    3. Escriba la contraseña del administrador
    4. Escriba fdisk -l y anote la letra de su unidad USB.
    5. Escriba fdisk / dev / sd x (reemplazando x con la letra de su unidad)1 para seleccionar la primera partición y presione enter
    6. Escriba d para proceder a eliminar una partición
    7. Escriba d para proceder a eliminar otra partición (fdisk debería seleccionar automáticamente la segunda partición)

Luego, necesitamos crear la nueva partición.

  1. Escriba n para crear una nueva partición
  2. Escriba p para hacer que esta partición sea primaria y presione enter .1 para hacer que esta sea la primera partición y luego presione enter 
  3. Presione enter para aceptar el primer cilindro predeterminado
  4. Presione enter nuevamente para aceptar el último cilindro predeterminado
  5. Escriba w para escribir la nueva información de partición en la llave USB
  6. Escriba umount / dev / sd x 1 (reemplazando x con la letra de su unidad)

El último paso es crear el sistema de archivos .

  1. Escriba mkfs.vfat -F 32 / dev / sd x 1 (reemplazando x con la letra de la unidad de memoria USB)

Eso es todo, ahora deberías tener una llave USB restaurada con una sola partición 32 que se deberia poder leer desde cualquier ordenador

 

Como enviar correos con adjuntos desde Linux desde linea de comandos


Es frecuente   en el manejo de maquinas Linux  usar muchos scripts en bash o c-shell para automatizar tareas  de una forma sencilla, dado  que al contrario de lo que muchas personas piensan,   shell script (o c-shell)  son  bastantes potentes  a la hora de manipular información .

Ante la cuestión de cómo enviar un correo electrónico desde linea de comandos  o desde un script , incluso  con archivos adjuntos desde una máquina Linux ,    lo primero   que pensamos es usar  la utilidad  mailx la cual mejora en muchos aspectos a la utilidad mail de viejos sistemas

La sintaxis básica para enviar correos electrónicos desde una máquina Linux mediante el comando mailx se muestra a continuación:

mailx -vvv -s   $asunto -r   $from  -S   $smtp     $destino

Como vemos , podemos   observar  varios parámetros en la  línea  anterior;

  • -vvv = Verbosity.
  • -s = especifica el asunto (subject).
  • -r = especificar el origen del Email.
  • -S = especifica el  smtp server.

Y lo ideal es usar variables:

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $from : almacenamos el usuario que envía el correo
  • $smtp : almacenamos el servidor de correo
  • $destino : almacenamos  la dirección de correo destinatario  ( pueden poner sucesivas separando con espacios estas)

El comando anterior se puede complementar añadiendo   un cuerpo al contenido del correo  gracias al comando echo redirigiendo con el pipe (|)  hacia mailx

 echo  $cuerpo  | mailx -vvv -s   $asunto -r   $from  -S   $smtp     $destino

Dónde  $cuerpo  es  una variable que almacena el cuerpo del  email

person using macbook pro on brown wooden desk
Photo by rawpixel.com on Pexels.com

Es importante destacar que podemos obviar el servidor  stmp server si está configurado en la máquina así  como el origen del correo obvio , quedando su uso habitual tal como sigue:

 echo  $cuerpo  | mailx  -s   $asunto  -S     $destino1  $destino2  $destino3

Como se aprecia,   se  añade   un cuerpo al contenido del correo  gracias al comando echo redirigiendo con el pipe (|)  hacia mailx y se usan varias variables:

  • $cuerpo  es  una variable que almacena el cuerpo del  email
  • $asunto: almacenamos el asunto ( subject ) del correo
  • $smtp : almacenamos el servidor de correo
  • $destino1 : almacenamos  la dirección de correo destinatario
  • $destino2 : almacenamos  la dirección de correo destinatario
  • $destino3 : almacenamos  la dirección de correo destinatario

Anexando  adjuntos

Si   la versión de mailx que esta usando está por encima  de 12.x,e puede usar el nuevo interruptor adjunto (-a) en mailx para enviar archivos adjuntos con el correo ,  lo cual es una opción más simple  que el comando uuencode.

Como ejemplo mandar un fichero  a un destinatario, es muy sencillo usando el siguiente comando:

mailx -a $file  -s  $asunto  $destino1

En l comando anterior  se usan estas variables :

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $destino1 : almacenamos  la dirección de correo destinatario
  • $file: ruta directa cal fichero a  anexar

El comando anterior imprimirá una nueva línea en blanco en el cuerpo del mensaje  aunque puede escribir el cuerpo del mensaje  presionar [ctrl] + [d] para enviar, lo cual  adjuntará el archivo al correo electrónico saliente correctamente con el Content-Type y encabezados  apropiados.

Para hacer esto más «scriptable», puede enviar el mensaje sin un cuerpo con el siguiente comando:

mailx -a $file  -s  $asunto  $destino1< /dev/null

Para enviar correos con un cuerpo de mensaje, reemplace / dev / null en el comando anterior con su archivo de cuerpo de mensaje.

mailx -a $file  -s  $asunto  $destino1<   $cuerpo

Donde $cuerpo  es  una variable que almacena el cuerpo del  email

En esta  versión de mailx, los encabezados que se usan en el correo electrónico saliente cambian de:

From:
Date:
To:
Subject:

A la forma siguiente:

From:
Date:
To:
Subject:
User-Agent:
MIME-Version:
Content-Type:
Content-Transfer-Encoding:

Si la versión de mailx está por debajo de 12.x, puede usarse el comando uuencode para enviar correos con archivos adjuntos.

El comando uuencode  se utiliza para codificar un archivo binario.De forma predeterminada, uuencode tiene entrada desde la entrada estándar y escribe en la salida estándar como se muestra a continuación ( esa es la razón por la que se repite el nombre del fichero) utilizando  por defecto el formato de codificación estándar de UU.

 uuencode  $fichero $fichero | mailx -s $asunto  $destino

Usando el formato anterior ,como se aprecia, se  añade   un cuerpo al contenido del correo  gracias al comando echo redirigiendo con el pipe (|)  hacia mailx  , de forma similar a añadir un cuerpo al  correo ,  pero esta vez estamos anexamos un fichero previamente codificado con uuencode

Las variables usadas:

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $destino : almacenamos  la dirección de correo destinatario
  • $fichero : almacenamos  la ruta completa del fichero a adjuntar
  •  $fichero : almacenamos  la misma  ruta completa del fichero a adjuntar ( en efecto se repite y no es un error)

Por cierto, en caso de necesitar adjuntar varios ficheros, puede usar esta receta:

uuencode $fichero1 $fichero1  >/tmp/out.mail

uuencode $fichero2 $fichero2  >/tmp/out.mail

cat email-body.txt >>/tmp/out.mail

Y ahora ya si podemos  enviar el correo:

mailx -s $asunto  $destino </tmp/out.mail

high angle view of paper against white background
Photo by Pixabay on Pexels.com

Correos con anexos y cuerpo

La sintaxis  para enviar correos electrónicos desde una máquina Linux mediante el comando mailx  puede tener problemas a la hora de incluir  además de anexo un cuerpo  en el mensaje, por lo que podemos usar en su lugar el comando mutt usando la siguiente sintaxis:

echo $body | mutt -s $asunto -a $fichero  $destino1  $destino2 $destino3

Como vemos , podemos   observar  varios parámetros en la  línea  anterior;

  • -s = especifica el asunto (subject).
  • -a = especifica el nombre del fichero con la ruta completa

Y como en  los ejemplos anteriores , lo ideal es usar variables:

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $destino1 : almacenamos  la dirección de correo destinatario
  • $destino2 : almacenamos  la dirección de correo destinatario
  • $destino3 : almacenamos  la dirección de correo destinatario
  • $body : almacenamos el cuerpo del correo