Viernes de Terminal: Administración de Unidades

El viernes pasado comento un lector, que seria interesante crear un post acerca de como formatear una USB y crear un USB booteable por el comando dd así que en este post tratare esos temas 🙂

Administración de unidades por medio de la terminal.

Cuidado con estos comandos si lo usas mal te cargas toda tu información. Estas advertido.

Fdisk


El primer comando necesario es fdisk, este permite manipular y/o mostrar la tabla de particiones de cualquier unidad, y su uso es tan simple como su definición…

# fdisk -l
Muestra el listado de unidades y su tabla de particiones

Listando particiones de una unidad

Listando particiones de una unidad

# fdisk /dev/sdx #sdx es un ejemplo
Entra a el menú interactivo de manipulación de particiones.

mount/umount


Cuando comencé hace años en GNU/Linux me preguntaba, ¿Sera posible montar una USB por la terminal? Mi instinto me decía que si, pero… ¿Como? Poco a poco comencé a usar mas la consola y de pronto la respuesta llego sola con mount y umount.

Para montar una USB desde la terminal necesitamos crear un directorio de montaje, por tradición será en /mnt hahaha

# mkdir /mnt/USB
En este directorio se montaran todos los datos de la USB. Ahora conectamos la USB el kernel hace toda la magia al detectar el controlador, y decirle al sistema que el dispositivo esta listo para ser utilizado, podemos ver esto con:

$ dmesg | tail
Mostrara las ultimas 10 lineas que hace el buffer del kernel pero para nosotros sera imperceptible hasta que usemos fdisk para ver que detecta una unidad nueva y nos mostrara información respecto a ella; supongamos que la USB es /dev/sdb y queremos sacar la información de ella. Para montarla basta

dmesg mostrando los ultimos 10 logs

dmesg mostrando los ultimos 10 logs

# mount /dev/sdb /mnt/USB
Ahora al ir al directorio /mnt/USB encontraremos que tiene toda la información de la USB y es posibl
Es posible crear una USB bootealble
# dd if=~/imagen.iso of=/dev/sdb
Y solo queda esperar hasta que el cursor de la terminal vuelva a aparecer.

Es posible hacer una copia de unidad a unidad
# dd if=/dev/sdx1 of=/dev/sdx2 bs=4096

Eliminar los datos de toda la unidad
# dd if=/dev/null of=/dev/sdx

Hacer un texto horizontal
$ echo -n "Wada" | bb cbs=1 conv=unblock 2> /dev/null

Apuesto que no muchos sabian que dd podia hacer esto :)

Apuesto que no muchos sabian que dd podia hacer esto 🙂

Convertir un texto a minúsculas
$ echo "wada" | bb conv=ucase 2> /dev/null

Entre otros.


Bueno gente es todo por hoy esto es lo básico que se debe conocer de manejo de sistemas de archivos y unidades 🙂 Nos leemos gente, hasta el próximo viernes.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   illukki dijo

    Yo no se por que pero nunca pude preparar un liveusb con el comando dd usando una iso. Si pude con una imagen .usb. Habra que probar de nuevo.
    Buen post.
    Saludos.

    1.    Yukiteru dijo

      A mi también me ha pasado eso en algunas raras ocasiones, especialmente con los CD de viejas distros (Ubuntu 6.04, Fedora 8), creo que se debe a mas que todo la estructura de los datos de la iso y de como se graban estos en el USB usando el comando dd. Del resto, dd me ha funcionado de maravillas con ISOs como las de Arch, Debian, Slackware o Gentoo.

  2.   Anonimo dijo

    Conviene hacer un post sobre particione, como particionar y temas relacionados con la instalacion de distros. Cuando se puede cambiar el tama;o de la particion y cuando no.

    1.    Wada dijo

      Gracias por tu comentario 😀 lo he pensado desde el viernes, pero creo que se sale del concepto. Igual si cuando tenga tiempo armo un post normal sobre este tema :).

  3.   demo dijo

    Buen tutorial, siguiendo tal cual como dice el autor…dará el mismo resultado a todos?, al menos a mi desde el comando dmesg | tail ,da otro resultado y parece estar el dispositivos USB protegido contra escritura; se monta como solo lectura, así dice en la terminal y no puedo seguir.

    1.    Yukiteru dijo

      @demo, el dmesg | tail será diferente para todos, no todos tenemos el mismo hardware, kernel y distro. En cuanto a tu unidad USB protegida contra escritura , eso es algo raro, por lo general cuando he visto eso, es porque las unidades USB tienen un pequeño botón físico para eso, o tienen daños en su firmware.

      1.    demo dijo

        A mi me sale esto:
        # fdisk -l
        Disco /dev/sda: 100.0 GB, 100030242816 bytes
        255 cabezas, 63 sectores/pista, 12161 cilindros, 195371568 sectores en total
        Unidades = sectores de 1 * 512 = 512 bytes
        Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
        Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
        Identificador del disco: 0x0008451b

        Dispositivo Inicio Comienzo Fin Bloques Id Sistema
        /dev/sda1 * 2048 191197183 95597568 83 Linux
        /dev/sda2 191199230 195371007 2085889 5 Extendida
        /dev/sda5 191199232 195371007 2085888 82 Linux swap / Solaris

        Disco /dev/sdb: 7862 MB, 7862353920 bytes
        242 cabezas, 62 sectores/pista, 1023 cilindros, 15356160 sectores en total
        Unidades = sectores de 1 * 512 = 512 bytes
        Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
        Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
        Identificador del disco: 0x00000000

        El disco /dev/sdb no contiene una tabla de particiones válida
        #

        Con el comando sudo fdisk -l /dev/sda ,da esto:

        $ sudo fdisk -l /dev/sda
        Disco /dev/sda: 100.0 GB, 100030242816 bytes
        255 cabezas, 63 sectores/pista, 12161 cilindros, 195371568 sectores en total
        Unidades = sectores de 1 * 512 = 512 bytes
        Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
        Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
        Identificador del disco: 0x0008451b

        Dispositivo Inicio Comienzo Fin Bloques Id Sistema
        /dev/sda1 * 2048 191197183 95597568 83 Linux
        /dev/sda2 191199230 195371007 2085889 5 Extendida
        /dev/sda5 191199232 195371007 2085888 82 Linux swap / Solaris
        $

        Luego de crear la carpeta para montar la USB y al ejecutar el comando dmesg | tail ,sale esto:

        $ dmesg | tail
        [ 340.659042] sd 3:0:0:0: [sdb] No Caching mode page found
        [ 340.659051] sd 3:0:0:0: [sdb] Assuming drive cache: write through
        [ 340.665044] sd 3:0:0:0: [sdb] No Caching mode page found
        [ 340.665056] sd 3:0:0:0: [sdb] Assuming drive cache: write through
        [ 340.686186] sdb: unknown partition table
        [ 340.688919] sd 3:0:0:0: [sdb] No Caching mode page found
        [ 340.688929] sd 3:0:0:0: [sdb] Assuming drive cache: write through
        [ 340.688937] sd 3:0:0:0: [sdb] Attached SCSI removable disk
        [ 340.936773] ISO 9660 Extensions: Microsoft Joliet Level 3
        [ 340.938020] ISO 9660 Extensions: RRIP_1991A
        $

        Ahí es donde me pierdo y no puedo continuar con los demás comando, ejemplo:

        # mount /dev/sdb /mnt/USB
        mount: dispositivo de bloques /dev/sdb está protegido contra escritura; se monta como sólo lectura

        Y este otro comando:

        # dd if=~/imagen.iso of=/dev/sdb
        dd: No se puede abrir «/root/imagen.iso»: No existe el archivo o el directorio
        #

      2.    José R. dijo

        @demo ¿Estás poniendo bien la dirección de la imagen .iso? Según el mensaje que colocaste, la imagen la tienes en «/root/imagen.iso», lo que es curioso. También me llama la atención que el archivo se llame «imagen.iso».

        Si quieres hacer el dispositivo booteable tienes que poner la dirección y el nombre del archivo. Supongamos que está en «Descargas» y el archivo se llama «Fedora20.iso». Entonces tendrías que teclearlo así:

        dd if=/home/user/Descargas/Fedora20.iso of=/dev/sdb

      3.    demo dijo

        Que tal José R.

        Si fijaras lo que expone el autor no coincide con el resultado que muestra la terminal pese a seguir paso a paso sus indicaciones , en el comando dmesg | tail ,da otro resultado , y de ahí para abajo comienzan otros resultados, que la USB este protegido contra escritura , y mas abajo que no existe al archivo o directorio. En algunas USB pese a grabar la imagen iso DVD en una mamoria USB con algún programa -no logra rebotear en la bios de la PC pese que la bios esta programada para que la USB inicie en primer lugar.

      4.    José R. dijo

        @demo Lo que pasa es que el autor del artículo pone los comandos, pero el usuario tiene que modificarlos de acuerdo a sus necesidades. Por ejemplo, desde el primer comando de «fdisk» el resultado será distinto porque posiblemente tienes una denominación diferente asignada a tus particiones o discos duros que la del autor. Ese comando es para que veas cuál es la de tu memoria usb y, a partir de eso, introducir los otros datos.

        Los siguientes comandos que pone son «mount» y «umount». En crear la carpeta con «mkdir» supongo que no te dio problema. Quizá el problema fue al montarlo porque a lo mejor no tienen la misma designación de las unidades. Ahí tendrías que encontrar cuál es y escribirla. El autor pone que es «sdx» como ejemplo, pero en tu memoria usb podría ser «sda1», «sda2», etc.

        El comando «dmesg | tail» no te saldrá igual que el autor, ya que como indica solamente las últimas diez líneas que hacer el búfer del kernel, y eso en todas las computadoras varía, dado que tienen diferentes actividades. Ese comando nadamás es para corroborar que el sistema ha detectado la memoria. De hecho el paso del montaje puedes omitirlo: casi en todas las distros se monta automáticamente.

        De ahí en adelante tienes que seguir las misma indicaciones con las respectivas modificaciones a los comandos, modificaciones que tiene que ver con tus dispositivos y con tu imagen .iso.

        Saludos.

      5.    Wada dijo

        @José R. Entendiste a la perfección el concepto 😀 gracias por pasar.

        @demo Jamas te saldrá lo mismo que a mi, porque tenemos hardware diferente, software diferente, configuraciones diferentes… La intención es señalar el lugar, no decirte que camino seguir.

        Sobre lo de dmesg | tail solo mostrara los mensajes del kernel; De hecho no es necesario este paso para montar una USB esta ahí para que los nuevos conozcan donde se muestran todos los mensajes del kernel desde.

  4.   Edureg dijo

    Buen Tutorial!

    Me sumo al pedido de tutorial sobre las particiones ya que me ha ocurrido que NO HUBO CASO con el dd y creo que viene por el lado del particionamiento de la unidad.

    No me queda claro, cuando el of es a sdb (unidad) o a sdb1 (particion)

    Saludos y excelente viernes!
    Edureg

    1.    Staff dijo

      Cuando usas sdb sin especificar partición usas toda la unidad, entonces, si tienes una memoria de 8 GB y le pones una imagen de 4 GB, los otros 4 te quedan inutilizables (no permanentemente).

      1.    Edureg dijo

        Gracias por la respuesta!

        El sabado quise poner «puppy linux» en un usb con dd y no hubo caso… tuve que levantarlo en una vm de virtualbox y desde ahi ir a la opcion «instalar en usb» (o algo parecido), y ahi si anduvo sin problemas.
        Es raro… no pasa con TODAS las iso, como dije antes, tomando una de Win 8, pude armarme el instalador desde USB.
        Saludos!

  5.   Qvic dijo

    Me encanta el «Viernes de Terminal»
    Lo único malo del dd es que no tiene una barra porcentaje o algo parecido.
    Pero pueden probar algo como esto que lo vi por algún lado y lo anote para no perderlo. (Al menos en Distros Debian funciona)
    pgrep -l '^dd'
    watch -n 10 kill -USR1 11132

    o instalando el comando «pv»

    pv -tpreb /dev/sda | dd of=/dev/sdb bs=4096 conv=notrunc,noerror
    (pv -n /dev/sda | dd of=/dev/sdb bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0

    Seguramente hay mas combinaciones, pero bueno les dejo la que tenia por si a alguien le sirve.
    Saludos

    1.    Qvic dijo

      Soy un Gil, acabo de ver:
      https://blog.desdelinux.net/tip-comando-dd-con-barra-de-progreso/
      Que ya estaba todo lo necesario y mejor explicado, pero como nose o no puedo eliminar el comment lo aclaro acá. En todo caso el que pueda borrelos.

    2.    Wada dijo

      Gracias por tu comentario, me siento alagado que te encanten mis post 😀 tienes razón dd es un comando muy silencioso, muchas gracias por la recomendación. 🙂

  6.   Gabriel dijo

    Yo lo eh usado varias veces para crear USB booteables, y me fue realmente de utilidad para instalar Arch en mi notebook con la lectora de DVD rota 😀

    1.    Wada dijo

      Hahaha verdad que es de gran ayuda 😀 hubo un tiempo que tenia unos 50 CD’s con diferentes ditros hasta que conocí dd 🙂 aunque aun lo uso tengo una pc viejita (2005) que no soporta USB-boot :D.

  7.   bmacf dijo

    Una pregunta bastante offtopic con la que espero no molestar a nadie… Alguien sabe el nombre de esa fuente en las imágenes de la terminal? Gracias…

    1.    Wada dijo

      Quien mejor que yo para contestar esto 🙂 La font es Terminus. Gracias por pasar por acá 🙂

      1.    bmacf dijo

        Muchas gracias por la respuesta! Ya la busco! 🙂
        Siempre leo la mayoría de los posts del blog ya que en general todos son muy interesantes. Sigan así!

        Otra pregunta offtopic pero que me causa curiosidad, por qué cuando comento aparece que es desde GNU/Linux pero algunos otros les aparece exactamente desde cual distribución?

  8.   locutus dijo

    Algunos ejemplos de dd usan un comando bb por error. Al parecer bb existe pero es para otra cosa, me sugiere instalarlo. Con dd funciona bien

    1.    Wada dijo

      Tienes razón perdón fue error de usuario hahaha es dd no bb estoy jodido; ¿Algún editor por favor puede corregir ese horror?

      1.    elav dijo

        ¿Qué es lo que hay que corregir? Wada, sería bueno que te nos unas en Trello (si es que no estás unido ya).. 😉

      2.    Wada dijo

        Las ultimas dos etiquetas code en lugar de «dd» use «bb» hahaha y claro me pasare por allá en un rato me registro 🙂

  9.   Adolfo Rojas G dijo

    yo nunca he podido mentar una usb con # mount mnt/USB, siempre em ha tocado con # sudo mount /dev/sdb1 y me toca ingresar por usr/share/media/nombrededispositivo :/
    Escritor: de casualidad sabes si existen ofimaticas para linea de mados que funcionen en abrir textos .odt, y/o .docx ?
    Sabes si FBCMD ya funciona para entrar a facebook, lo he intentado todo y no he podido (con la versión 3.0, la 1.0 si fuciona pero ya no se deja instalar), ahora cuanto mas he logrado ingresar al chat de fb por medio de finch.

    1.    Wada dijo

      Que raro tu caso, ¿Que distro usas?

      La verdad no conozco nada parecido con ya que los odt es texto con formato y en la terminal, seria difícil para su edición y/o lectura aunque existen aplicaciones que emulan un editor de texto, pero para eso tenemos Vim 😀

      Respeto a tu tercera pregunta te puedo decir que no uso facebook 🙁 así que lo desconozco por completo.