22 abril, 2013

Linux - Recuperar USB utilizada como disco de arranque

Como de costumbre, todas las complejas cuestiones técnicas tienen una solución relativamente directa en Linux. El problema es saber todos los trucos y encontrarlos rápidamente para poder sacarles provecho. Un ejemplo de esta situación es poder recuperar una USB que había sido utilizada como boot drive para hacer una instalación alguna distribución de Linux. Pensando que ya no tenía caso y que iba a ser complicado encontrar la solución para volver a utilizar toda la memoria del disco, encontré la página con las respuestas que solamente alguien muy técnico (geek guys :D) puede encontrar tan solo con la ayuda de los comandos (verhttp://www.pendrivelinux.com/restoring-your-usb-key-partition). A continuación reescribo los mismos pasos que acabo de probar y que me dieron un resultado positivo:

A. Primero se deben borrar las particiones que quedan en la USB

1. Abrir terminal y entrar como superusuario (escribir su)
2. Revisar los nombres de los discos y sus particiones: fdisk -l
3. Entrar a la revisión del disco: fdisk /dev/sdX (reemplazando X por el nombre del disco. en caso USB, normalmente sdb)
4- Escribir d y proceder a borrar las particiones (en mi caso habían 3: sdb1, sdb2, sdb3)
5- Escribir 1 para borrar la primera partición. Borrar las otras dos.

B. Crear nueva partición

1- Escribir n para crear la partición
2- Escribir p para hacer una partición primaria
3- Escribir 1 para indicar que es la primera partición y aceptar el tamaño por default.
4- Luego pregunta el espacio de la segunda partición, asignarlo por default (el resto de espacio del disco)
5- Escribir w para escribir la info de la nueva partición a la USB
6- Desmontar el disco con: umount /dev/sdX1 (reemplazando X por el nombre del disco. en caso USB, normalmente sdb)

C. Asignar la partición a formato FAT

1- Escribir mkfs.vfat -F32 /dev/sdX1 (reemplazando X por el nombre del disco. en caso USB, normalmente sdb)

Al extraer la memoria y volverla a utilizar en el sistema, todo la memoria (aparentemente) estará disponible. Memoria recuperada !

12 abril, 2013

Construir un string cross-platform C++

Buscando la forma genérica para concatenar adecuadamente números en un string o cadenas de strings entre si, recordé el uso de stringstream para no olvidarlo. Anoto que usé primero std::to_string pero luego noté que en Linux pone problemas de compilación. Voici l’exemple:

std::stringstream ss; 
ss<<"Ou yeah! "<< 3 ; 
std::string s = ss.str();
std::cout << s << '\n';