Problemas con unidades flash


Las unidades flash extraíbles funcionan mediante el uso de la tecnología de memoria flash, tecnología de almacenamiento de datos basada en memorias de alta velocidad que se programan eléctricamente y que utiliza un tipo de memoria no volátil que se denomina precisamente «memoria flash». Este tipo de memorias no volátil no requieren alimentación para mantener la integridad de los datos almacenados con lo que, si se interrumpe el suministro, no se pierde nada. El almacenamiento flash utiliza celdas de memoria para almacenar datos con la peculiaridad de que aquellas que tengan datos escritos anteriormente se tienen que borrar antes de poder escribir datos nuevos en ellas .

Es bastante común ver que su unidad USB no puede mostrarse y abrirse con la aparición de todo tipo de errores en su escritorio como «Unidad flash USB no reconocida«, «Por favor, inserte un disco en disco extraíble«, «Necesita formatear el disco antes de poder utilizarlo» y «Unidad USB RAW«, etc. ¿Qué son estos errores y qué está fallando en tu unidad USB? ¿Cómo podemos recuperar datos de una unidad USB inaccesible o formateada? Averigüémoslo.

¿Por qué la unidad flash no funciona o no se reconoce?

Hay varias ventajas en el uso de una unidad flash extraíble siendo su principal ventaja su portabilidad pues las unidades flash son pequeñas y ligeras, lo que las hace fáciles de transportar y almacenar. Además, las unidades flash utilizan tecnología de estado sólido, lo que significa que no tienen piezas móviles y son más resistentes a golpes y vibraciones que los discos duros tradicionales. Otra ventaja es que las unidades flash utilizan memoria no volátil, lo que significa que los datos no se pierden cuando se desconecta la electricidad. Sin embargo aunque hay varias ventajas en el uso de una unidad flash extraíble hay algunas desventajas, siendo una de las principales su limitado ciclo de escritura y borrado pues una unidad flash solo puede escribirse y borrarse unas 100.000 veces . Además, las unidades flash suelen tener hasta 128 GB de almacenamiento (desconfié amigo lector si le ofrecen capacidades mayores a precios bajos). Por cierto también pueden ser susceptibles a la electricidad estática e incluso la carga eléctrica más pequeña puede provocar la pérdida de datos y daños irreversibles.

Los problemas de los pendrive o unidades flash, se pueden resumir en dos categorías de errores: lógicos y físicos. Los errores lógicos se pueden corregir con algunos algunos trucos de bricolaje de los que vamos a ver en este post, mientras que los físicos normalmente , excepto que haya problemas con el conector y podamos solucionalo, no se pueden resolver sin conocimientos profesionales.

Errores físicos

La estructura interna de una unidad flash extraíble se basa en la tecnología de memoria flash. La memoria flash es un tipo de EEPROM que contiene una matriz de celdas con un transistor evolucionado con dos puertas en cada intersección. Todo esta matriz de celdas se suele integrar en un único chip, que suele ocupar la mayoría del espacio del dispositivo , tal y como podemos ver en la siguiente imagen.

El circuito de memoria flash normalmente lleva asociado un controlador aparte que cumple también la función de controlador USB , normalmente integrado en otro chip que suele ser un microcontrolador al que por cierto según el fabricante podemos actualizar su firmware ( precisamente porque puede fallar).

Este importante componente va normalmente ubicado justo en el lado opuesto el pcb donde esta la flash. En la imagen podemos ver imagen del controlador de una memoria Kingston.

Como se puede deducir, dados los relativos pocos componentes que consta una unidad flash, las principales partes susceptibles a dar problemas son las siguientes :

  • Vástagos y conectores rotos.
  • Unidades muertas (sin alimentación)
  • Circuito o puerta NAND rotos,
  • Software del controlador de la unidad flash dañado a causa de una memoria NAND genérica o de baja calidad

Los cuatro errores anteriores están relacionados con daños en el hardware y la desconexión física de la unidad flash. La reparación de la unidad con estos errores pueden requerir una soldadura precisa y fundente con lupa. Sin experiencia y equipo especializado, es casi imposible reparar la unidad flash con daños de hardware por su cuenta. Quizás , lo mejor es que busque ayuda de profesionales sobre todo si los datos de la unidad son muy importantes.

Errores lógicos

Un error muy típico es la corrupción de datos después de que la unidad se haya desmontado incorrectamente del puerto que puede ocurrir cuando usted desconecta su unidad flash sin hacer clic en «expulsar» la última vez, lo que conduce a la corrupción de datos en la unidad. Por lo tanto, cuando se conecta de nuevo a su PC, la unidad flash no puede ser reconocida por el sistema operativo.

Otro error típico es el de «Datos no válidos en el Master Boot Record (MBR) o Partition Boot Record (PBR) o en la estructura de directorios de la unidad USB» , lo cual ocurre cuando los datos almacenados en MBR, PBR o sobre la estructura de directorios estan mal, lo que puede causar que la unidad no pueda funcionar ya que llevan la información sobre cómo y dónde el sistema operativo encuentra y lee los datos almacenados en cada sector.

Ambos errores pueden a conducir a que la unidad flash no sea reconocida por el sistema operativo, asi que nos iremos al interfaz de comandos y lanzaremos Disskpart. Si en la utilidad de Diskpart en Windows 11 aparece una unidad en estado «No hay medios», esto significa que el sistema operativo no puede detectar correctamente la unidad o que la unidad tiene un problema de hardware.

DISKPART> list disk
Núm Disco Estado Tamaño Disp Din Gpt
---------- ---------- ------- ------- --- ---
Disco 0 En línea 476 GB 2048 KB *
Disco 1 No hay medios 0 B 0 B

Para solucionar este problema, puede intentar los siguientes pasos:

  1. Verifique que la unidad esté conectada correctamente: Si la unidad es un disco duro interno, verifique las conexiones SATA o de alimentación para asegurarse de que estén bien conectadas. Si es una unidad externa, asegúrese de que el cable USB o el adaptador de corriente estén conectados correctamente y funcionando. Asegúrese de que el cable USB ( si lo hay) esté conectado correctamente y que la unidad esté enchufada en un puerto USB que funcione correctamente.
  2. Comprobar el administrador de dispositivos: Abra el Administrador de dispositivos en Windows y busque la unidad en la lista de dispositivos. Si la unidad tiene un signo de exclamación o un símbolo de error, intente actualizar los controladores o reinstalarlos.
  3. Ejecutar CHKDSK: Utilice la utilidad CHKDSK de Windows para comprobar si hay errores en la unidad y repararlos. Abra una ventana de CMD en modo administrador y ejecute el comando «chkdsk /f X:», donde «X» es la letra de la unidad afectada. Esto verificará y reparará cualquier error en la unidad.
  4. Verificar el estado de la unidad: Si los pasos anteriores no resuelven el problema, es posible que la unidad tenga un problema de hardware. Descargue una herramienta de diagnóstico de la unidad desde el sitio web del fabricante de la unidad y ejecute una prueba para verificar el estado de la unidad ( esto lo veremos mas adelante).
  5. Verifique que la unidad esté formateada correctamente. Si la unidad está formateada en un sistema de archivos que no es compatible con su sistema operativo, puede causar problemas. Verifique la compatibilidad del sistema de archivos de la unidad con su sistema operativo.
  6. Use otra herramienta para formatear la unidad. Si DiskPart sigue sin poder limpiar la unidad, puede probar otras herramientas de formateo de disco como Rufus o HP USB Disk Storage Format Tool.
  7. Reemplazar la unidad: Si la unidad tiene un problema de hardware irreparable, es posible que deba reemplazarla con una unidad nueva.

Este error que nos puede mostrar diskpart, podemos verlo también desde el administrador de discos para comprobar como esta ese disco ( en la imagen el disco 1):

Si desde el Administrador de discos en Windows aparece una unidad extraíble con el estado «No hay medios«, esto es indicativo de un problema en la conexión o en la unidad en sí. Si hemos seguidos los pasos anteriores con la utilidad Diskpart , una herramienta de diagnóstico genérica para unidades USB que puede identificar problemas de hardware y proporcionar recomendaciones para solucionarlos es la herramienta CrystalDiskInfo. Esta herramienta es gratuita y fácil de usar.

Aquí hay algunos pasos para usar CrystalDiskInfo para diagnosticar problemas con una unidad USB:

  1. Descargue e instale CrystalDiskInfo en su ordenador.
  2. Conecte la unidad USB y abra CrystalDiskInfo.
  3. Seleccione la unidad USB en la lista de unidades disponibles.
  4. CrystalDiskInfo mostrará información detallada sobre la unidad USB, incluyendo su estado de salud, temperatura, velocidad de transferencia y más.
  5. Si la herramienta detecta algún problema con la unidad USB, se mostrará una alerta y se proporcionarán recomendaciones para solucionar el problema.
  6. Si es posible, siga las recomendaciones para solucionar el problema.
  7. Si el problema no se puede solucionar, es posible que deba reemplazar la unidad USB.

Recuerde que esta herramienta es una herramienta de diagnóstico genérica y no puede detectar todos los problemas de hardware. Si sigue experimentando problemas con la unidad USB después de usar CrystalDiskInfo, es posible que deba comunicarse con el fabricante de la unidad para obtener asistencia adicional.

También es posible que el problema sea causado por un error de hardware en su ordenador por lo que puede intentar actualizar los controladores de USB o ejecutar una herramienta de diagnóstico de hardware para determinar si hay algún problema con su computadora. Hay varias herramientas de recuperación de firmware disponibles en línea que pueden ayudar a recuperar unidades flash dañadas o con firmware corrupto.

En el caso de que su unidad flash sea Kingston y no responde puede intentar actualizar el firmware de una unidad flash Kingston, para lo cual puede descargar e instalar Kingston SSD Manager (KSM) desde el sitio web de Kingston . Una vez que haya instalado KSM, puede ejecutar la aplicación y seleccionar su unidad flash Kingston. Si hay una actualización de firmware disponible para su unidad específica, podrás hacer clic en el botón de actualizar firmware para comenzar la actualización que pueda ayudarte

A continuación, se mencionan algunas otras herramientas genéricas:

  1. HP USB Disk Storage Format Tool: Esta herramienta es una solución de formateo de bajo nivel que también puede restaurar una unidad flash a su estado original de fábrica. Está diseñada específicamente para trabajar con unidades flash USB de marca HP, pero también funciona con otros fabricantes.
  2. USB Repair Tool: Esta herramienta puede reparar problemas de firmware y hardware en unidades flash USB. Puede solucionar errores de lectura y escritura, reparar sectores defectuosos y recuperar archivos perdidos.
  3. ChipGenius: Esta herramienta puede identificar el controlador de memoria flash utilizado en una unidad flash y proporcionar información sobre su fabricante, modelo, capacidad y firmware. También puede verificar la integridad del firmware de la unidad y proporcionar una lista de herramientas de recuperación de firmware compatibles.
  4. Flash Drive Repair: Esta herramienta es una solución integral de reparación de unidades flash que puede recuperar unidades corruptas, dañadas o inaccesibles. Puede formatear la unidad, reinstalar el firmware y reparar errores de partición.

Es importante tener en cuenta que el uso de herramientas de recuperación de firmware puede ser arriesgado y puede causar daños permanentes a la unidad. Es importante seguir cuidadosamente las instrucciones y utilizar estas herramientas con precaución. En caso de duda, es recomendable buscar asesoramiento profesional antes de intentar reparar una unidad flash dañada o con firmware corrupto.

Esperamos que estos pasos le ayuden a solucionar el problema con la unidad extraíble con el estado «No hay medios» en el Administrador de discos de Windows.

Cómo configurar Jupyter Notebook con Python 3 en Ubuntu 18.04


Los Jupyter Notebooks (o simplemente Notebooks) son documentos producidos por la aplicación Jupyter Notebook que contienen código de ordenador y elementos de texto enriquecido (párrafo, ecuaciones, figuras, enlaces, etc.) que ayudan a presentar y compartir investigaciones reproducibles. Precisamente la aplicación web de código abierto, Jupyter Notebook le permite crear y compartir código interactivo, visualizaciones y más. Además, esta herramienta se puede utilizar con varios lenguajes de programación, incluidos Python, Julia, R, Haskell y Ruby. Ciertamente tal repercusión ha tenido esta herramienta que a menudo se usa para trabajar con datos, modelado estadístico y aprendizaje automático.

Este post le guiará a través de la configuración de Jupyter Notebook para que se ejecute desde un servidor Ubuntu 18.04, y también se mostrará cómo conectarse y usar el notebook. Al final de este post, podrá ejecutar el código de Python 3 con Jupyter Notebook ejecutándose en un servidor remoto. Para completar este post, debe tener una instancia de servidor Ubuntu 18.04 nueva con un firewall básico y un usuario no root con privilegios de sudo configurados. 

Configurar Python

Para comenzar el proceso, instalaremos las dependencias que necesitamos para nuestro entorno de programación Python desde los repositorios de Ubuntu. Ubuntu 18.04 viene preinstalado con Python 3.6. Usaremos el pip del administrador de paquetes de Python para instalar componentes adicionales un poco más tarde.

Primero necesitamos actualizar el índice apt del paquete local y luego descargar e instalar los paquetes:

sudo apt update 

A continuación, instale pip y los archivos de encabezado de Python, que utilizan algunas de las dependencias de Jupyter:

sudo apt install python3-pip python3-dev 

Ahora podemos pasar a configurar un entorno virtual de Python en el que instalaremos Jupyter.

Crear un entorno virtual de Python para Jupyter

Ahora que tenemos Python 3, sus archivos de encabezado y pip listos para usar, podemos crear un entorno virtual de Python para administrar nuestros proyectos. Instalaremos Jupyter en este entorno virtual.

Para hacer esto, primero necesitamos acceder al comando virtualenv que podemos instalar con pip.

Actualice pip e instale el paquete escribiendo:

sudo -H pip3 install --upgrade pip sudo -H pip3 install virtualenv 

El indicador-H garantiza que la política de seguridad establezca la variable home de entorno en el directorio de inicio del usuario de destino.

Con virtualenvinstalado, podemos empezar a formar nuestro entorno. Cree y muévase a un directorio donde podamos guardar nuestros archivos de proyecto. Lo llamaremos my_project_dir, pero debe usar un nombre que sea significativo para usted y para lo que está trabajando.

mkdir ~/my_project_dir cd ~/my_project_dir 

Dentro del directorio del proyecto, crearemos un entorno virtual de Python. Al final de este post, lo llamaremos, my_project_envpero debe llamarlo de alguna manera que sea relevante para su proyecto.

virtualenv my_project_env 

Esto creará un directorio llamado my_project_env dentro de su directorio my_project_dir. En el interior, instalará una versión local de Python y una versión local de pip. Podemos usar esto para instalar y configurar un entorno Python aislado para Jupyter.

Antes de instalar Jupyter, debemos activar el entorno virtual. Puede hacerlo escribiendo:

source my_project_env/bin/activate 

Su mensaje debería cambiar para indicar que ahora está operando dentro de un entorno virtual de Python. Se verá algo como esto: .(my_project_env)user@host:~/my_project_dir$

Ahora está listo para instalar Jupyter en este entorno virtual.

Instalar Jupyter

Con su entorno virtual activo, instale Jupyter con la instancia local de pip.

Nota: Cuando el entorno virtual está activado (cuando su solicitud precede amy_project_env), use pip en lugar de pip3, incluso si está usando Python 3. La copia de la herramienta del entorno virtual siempre se denomina pip, independientemente de la versión de Python.

pip install jupyter 

En este punto, ha instalado con éxito todo el software necesario para ejecutar Jupyter. Ahora podemos iniciar el servidor de Notebook.

Ejecutar Jupyter Notebook

¡Ahora tiene todo lo que necesita para ejecutar Jupyter Notebook! Para ejecutarlo, ejecute el siguiente comando:

jupyter notebook 

Se imprimirá un registro de las actividades de Jupyter Notebook en el terminal. Cuando ejecute Jupyter Notebook, se ejecuta en un número de puerto específico. El primer cuaderno que ejecute normalmente utilizará el puerto 8888. Para comprobar el número de puerto específico en el que se ejecuta Jupyter Notebook, consulte el resultado del comando utilizado para iniciarlo:


         
          Output
         [I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

Si está ejecutando Jupyter Notebook en un ordenador (no en un servidor), puede navegar a la URL que se muestra para conectarse a Jupyter Notebook. Si está ejecutando Jupyter Notebook en un servidor, deberá conectarse al servidor mediante túneles SSH como se describe mas adelante.

En este punto, puede mantener abierta la conexión SSH y seguir ejecutando Jupyter Notebook o puede salir de la aplicación y volver a ejecutarla una vez que haya configurado el túnel SSH. Elijamos detener el proceso de Jupyter Notebook pues lo ejecutaremos nuevamente una vez que hayamos configurado el túnel SSH. 

Para detener el proceso de Jupyter Notebook, presione CTRL+C, escriba Y y luego ENTER para confirmar. Se mostrará la siguiente salida:


         
          Output
         [C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

Ahora configuraremos un túnel SSH para que podamos acceder al Notebook.

Conexión al servidor mediante túneles SSH

Ahora vamos a ver cómo conectarnos a la interfaz web de Jupyter Notebook mediante túneles SSH pues dado que Jupyter Notebook se ejecutará en un puerto específico del servidor (como , por ejemplo :8888:8889etc.), el túnel SSH le permite conectarse al puerto del servidor de forma segura. A continuación vamos a ver cómo crear un túnel SSH desde Mac o Linux y Windows.

Tunelización SSH con Mac o Linux

Si usa Mac o Linux, los pasos para crear un túnel SSH son similares a usar SSH para iniciar sesión en su servidor remoto, excepto que hay parámetros adicionales en el comando ssh.  Ahora vamos a ver los parámetros adicionales necesarios en el comando ssh para tunelizar con éxito.

La tunelización SSH se puede realizar ejecutando el siguiente comando SSH en una nueva ventana de terminal local:

ssh -L 8888:localhost:8888 your_server_username@your_server_ip 

El comando ssh abre una conexión SSH, pero -L especifica que el puerto dado en el host local (cliente) se reenviará al host y puerto dados en el lado remoto (servidor). Esto significa que cualquier cosa que se esté ejecutando en el segundo número de puerto (por ejemplo 8888 ), en el servidor aparecerá en el primer número de puerto (por ejemplo 8888 ) en su ordenador local.

Opcionalmente, cambie el puerto 8888a uno de su elección para evitar usar un puerto que ya está en uso por otro proceso.

server_username es su nombre de usuario (por ejemplo sammy) en el servidor que creó y your_server_ip es la dirección IP de su servidor.

Por ejemplo, para el nombre de usuario sammy y la dirección del servidor 203.0.113.0, el comando sería:

ssh -L 8888:localhost:8888 [email protected] 

Si no aparece ningún error después de ejecutar el comando ssh -L, puede pasar a su entorno de programación y ejecutar Jupyter Notebook:

jupyter notebook 

Recibirá resultados con una URL, de modo que vaya desde un navegador web en su máquina local y abra la interfaz web de Jupyter Notebook con la URL que comienza con http://localhost:8888. Asegúrese de incluir el número de token o ingrese la cadena del número de token cuando se le solicite en http://localhost:8888.

Tunelización SSH con Windows y Putty

Si está usando Windows, puede crear un túnel SSH usando Putty . Primero, ingrese la URL del servidor o la dirección IP como el nombre de host como se muestra:

Establecer nombre de host para túnel SSH

A continuación, haga clic en SSH en la parte inferior del panel izquierdo para expandir el menú y luego haga clic en Túneles . Ingrese el número de puerto local que desea usar para acceder a Jupyter en su máquina local. Elija 8000 o mayor para evitar los puertos utilizados por otros servicios y establezca el destino como donde está el número del puerto en el que se ejecuta Jupyter Notebook.localhost:8888:8888

Ahora haga clic en el botón Agregar y los puertos deberían aparecer en la lista de puertos reenviados :

Lista de puertos reenviados

Finalmente, haga clic en el botón Abrir para conectarse al servidor a través de SSH y canalizar los puertos deseados. Navegue a (o al puerto que elija) en un navegador web para conectarse a Jupyter Notebook que se ejecuta en el servidor. Asegúrese de incluir el número de token o ingrese la cadena del número de token cuando se le solicite en .http://localhost:8000

Uso de Jupyter Notebook

 Si actualmente no tiene Jupyter Notebook ejecutándose, inícielo con el  comando jupyter notebook. Ahora debería estar conectado a él usando un navegador web. Jupyter Notebook es una herramienta muy poderosa con muchas características. Veamos algunas de las funciones básicas para que pueda comenzar a utilizar esta fantástica herramienta.

 Jupyter Notebook mostrará todos los archivos y carpetas en el directorio desde el que se ejecuta, por lo que cuando esté trabajando en un proyecto, asegúrese de iniciarlo desde el directorio del proyecto.

Para crear un nuevo archivo de Notebook, seleccione Nuevo > Python 3 en el menú desplegable superior derecho:

Crear un nuevo cuaderno de Python 3

Como vemos, esto abrirá un cuaderno. Ahora podemos ejecutar el código de Python en la celda o cambiar la celda a Markdown. Por ejemplo, cambie la primera celda para aceptar Markdown haciendo clic en Celda > Tipo de celda > Markdown en la barra de navegación superior. Ahora podemos escribir notas usando Markdown e incluso incluir ecuaciones escritas en LaTeX colocándolas entre los $$símbolos. Por ejemplo, escriba lo siguiente en la celda después de cambiarla a Markdown:

# First Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

Para convertir la reducción en texto enriquecido, presione CTRL+ENTER y los siguientes deberían ser los resultados:

resultados de rebajas

Puede usar las celdas de descuento para tomar notas y documentar su código. Implementemos esa ecuación e imprimamos el resultado. Haga clic en la celda superior, luego presione ALT+ENTER para agregar una celda debajo e ingrese el siguiente código en la nueva celda.

x = 2
y = x**2
print(y)

Para ejecutar el código, presione  el botono de RUN o simplemente CTRL+ENTER y eecibirá los siguientes resultados:

resultados de la primera ecuacion

Resumen

Como hemos visto Jupyter Notebook se basa en el lenguaje de programación Python, aunque también es compatible con otros lenguajes de programación como R, Julia y Scala permitiendo ejecutar código en tiempo real y ver los resultados de inmediato, lo que lo hace muy útil para la enseñanza, la investigación y el análisis de datos.

Algunas de las características principales de Jupyter Notebook esbozadas en este post son:

  • Permite integrar código, texto, imágenes y visualizaciones en un solo documento.
  • Permite trabajar con datos en vivo, lo que significa que los usuarios pueden explorar y analizar conjuntos de datos en tiempo real.
  • Permite crear gráficos y visualizaciones interactivas.
  • Permite compartir y colaborar con otros usuarios, lo que lo hace muy útil para trabajos en equipo o para la enseñanza.

En resumen, Jupyter Notebook es una herramienta muy útil para explorar y analizar datos, crear informes interactivos y colaborar con otros usuarios. ¡Ahora tiene la capacidad de importar módulos y usar Notebook como lo haría con cualquier otro entorno de desarrollo de Python!