Introducción
- 1537
- 385
- Mario Gollum
Lo que estás leyendo es solo el primero de los muchos artículos de la serie "Learning Linux Commands". ¿Por qué querríamos hacer tal cosa?? Porque es útil para usted tener todas las opciones y el uso posible de un comando ampliamente utilizado en un solo lugar. Encontrará algunas opciones o incluso algunos comandos que ni siquiera sabía que existía, y su vida como usuario / administrador de Linux se volverá más fácil. Si no tiene miedo de abrir una terminal y conocer los conceptos básicos de usar un sistema Linux, este artículo es para usted.
Por qué DD?
Elegimos DD como el primer contendiente en nuestra serie porque es una herramienta útil que tiene muchas opciones, como verá. Esto lo convierte en casi uno de los cuchillos del ejército suizo del mundo de Linux. Sí, este término (Swiss Army Shife) se usa más de lo que debería ser por los escritores de artículos orientados a Linux, por lo que no pudimos pasar la oportunidad de usarlo nosotros mismos.
Uso general
Antes de comenzar, queríamos darle una idea general de cómo se usa DD. En primer lugar, el nombre proviene del "duplicador de datos", pero también se dice en broma que representa el "destructor de disco" o el "destructor de datos" porque es una herramienta muy poderosa. Por lo tanto, recomendamos un cuidado adicional cuando use DD porque un momento de descuido puede costarle datos valiosos. La sintaxis general de un comando DD es
# dd if = $ input_data of = $ output_data [opciones]
Los datos de entrada y salida pueden ser discos, particiones, archivos, dispositivos ... principalmente todo lo que puede escribir o leer. Como verá, puede usar DD en un contexto en red para enviar flujos de datos a través de su LAN, por ejemplo. Puede tener solo la parte de entrada en su comando DD, o solo el comando de salida, e incluso puede eliminar ambos en algunos casos. Todo esto será tratado en la tabla a continuación.
Ejemplos
Aprender el comando DD de Linux con ejemplos | |
---|---|
Sintaxis del comando de Linux | Descripción del comando de Linux |
Sistemas de archivos | |
dd if =/dev/urandom of =/dev/sda bs = 4K | Llena la unidad con datos aleatorios |
dd if =/dev/sda of =/dev/sdb bs = 4096 | Duplicación de conducción a conducción |
dd if =/dev/cero of =/dev/sda bs = 4K | Limpiar un disco duro (puede que deba repetirse) |
dd if = inputfile de =/dev/st0 bs = 32k conv = sincron | Copiar desde el archivo al dispositivo de cinta |
dd if =/dev/st0 of = outFile bs = 32k conv = sincron | Lo anterior, invertido |
dd if =/dev/sda | hexdump -c | Grep [^00] | Verifique si la unidad está realmente a cero |
dd if =/dev/urandom of =/home/$ user/greatfile \ bs = 4096 | Completa una partición (cuidadoso con las particiones del sistema!) |
ls -l myfile -rw-r-r-- 6703104 31 de octubre 18:25 myfile dd if =/dev/urandom of = myfile bs = 6703104 Count = 1 | Revolver un archivo (tal vez antes de eliminarlo) |
dd if =/dev/sda3 of =/dev/sdb3 bs = 4096 \ conv = nonRunc, noError | Copiar una partición a otra partición |
dd if =/proc/filesystems | hexdump -c | menos | Ver sistemas de archivos disponibles |
DD if =/Proc/Partitions | hexdump -c | menos | Ver particiones disponibles en KB |
dd if =/dev/sdb2 IBS = 4096 | GZIP> Partición.imagen.gz \ conv = noError | Crea una imagen gzipped de la segunda partición del segundo disco |
DD BS = 10240 CBS = 80 Conv = ASCII, UNBLOCH \ if =/dev/st0 de = ASCII.afuera | Copiar el contenido de una unidad de cinta a un archivo, convertir De Ebcdic a ASCII |
DD if =/dev/st0 IBS = 1024 OBS = 2048 de =/dev/st1 | Copiar desde el dispositivo de bloque de 1kb al dispositivo de bloque de 2kb |
dd if =/dev/cero of =/dev/null bs = 100m Count = 100 100+0 registros en 100+0 registros de 10485760000 bytes (10 gb) copiados, 5.62955 S, 1.9 GB/s | Copiar 10 GB de ceros al lata de basura. |
dd if =/dev/cero of =/dev/sda bs = 512 count = 2 fdisk -s/dev/sda dd if =/dev/cero of =/dev/sda seek = \ (number_of_sectores - 20) bs = 1k | Borrar GPT del disco. Dado que GPT escribe datos al principio Y al final de la unidad, después Borrando desde el principio, necesitamos averiguar el número de sectores (segundo comando), luego borre los últimos 20 sectores. |
dd if =/home/$ user/bootimage.img de =/dev/sdc | Crear unidad USB de arranque (aquí se muestra como /dev /sdc) |
dd if =/dev/sda of =/dev/null bs = 1m | Una buena manera de verificar los bloques malos |
Copia de seguridad y relacionado con el sistema | |
dd if =/dev/sda of =/dev/fd0 bs = 512 count = 1 | Copia el MBR a un floppy |
dd if =/dev/sda1 of =/dev/sdb1 bs = 4096 | Duplicación de conducción a conducción |
dd if =/dev/sr0 of =/home/$ user/mycdimage.ISO \ BS = 2048 Conv = Nosync | Crear una imagen de un CD |
Mount -O loop/home/$ user/mycdimage.ISO \/mnt/cdimages/ | Monte dijo la imagen localmente |
dd if =/dev/sda of =/dev/sdb bs = 64k conv = sincron | Útil al reemplazar un disco con otro tamaño idéntico |
dd if =/dev/sda2 of =/home/$ user/hddimage1.img \ bs = 1m count = 4430 dd if =/dev/sda2 of =/home/$ user/hddimage2.img \ bs = 1M Count = 8860 […] | Cree imágenes de DVD de una partición (útil para hacer una copia de seguridad) |
dd if =/$ ubicación/hddimage1.img de =/dev/sda2 \ bs = 1m dd if =/$ ubicación/hddimage2.img de =/dev/sda2 \ seek = 4430 bs = 1m dd if =/$ ubicación/hddimage3.img de =/dev/sda2 \ seek = 8860 bs = 1m [y así sucesivamente ...] | Restaurar desde la copia de seguridad anterior |
dd if =/dev/cero count = 1 bs = 1024 Seek = 1 de =/dev/sda6 | Destruir el superbloque |
dd if =/dev/cero count = 1 bs = 4096 Seek = 0 de =/dev/sda5 | Otra forma de destruir el superbloque |
dd if =/home/$ user/sospeche.DOC | clamscan - | Verifique el archivo de los virus (necesita clamav) |
DD if =/home/$ user/archivo binario | hexdump -c | menos | Mire el contenido de un archivo binario (necesita hexdump) |
dd if =/home/$ user/bigfile of =/dev/null dd if =/dev/cero of =/home/$ user/bigfile \ bs = 1024 count = 1000000 | Plazo duro de referencia para la velocidad de lectura/escritura |
dd if =/dev/sda of =/dev/sda | Da nueva vida a los discos duros mayores que no se han utilizado durante un tiempo (el disco debe ser desmontado) |
dd if =/dev/mem | cuerdas | Grep 'String_to_search' | Examinar el contenido de la memoria (legible por humanos, es decir) |
dd if =/dev/fd0 of =/home/$ user/floppy.Imagen \ bs = 2x80x18b Conv = NotRunc | Copiar un disco |
dd if =/proc/kcore | hexdump -c | menos | Ver memoria virtual |
dd if =/proc/filesystems | hexdump -c | menos | Ver sistemas de archivos disponibles |
dd if =/proc/kallsyms | hexdump -c | menos | Ver módulos cargados |
dd if =/proc/Interrupts | hexdump -c | menos | Ver tabla de interrupción |
dd if =/proc/tiempo de inicio | hexdump -c | menos | Ver tiempo de actividad en segundos |
DD if =/Proc/Partitions | hexdump -c | menos | Ver particiones disponibles en KB |
dd if =/proc/meminfo | hexdump -c | menos | Ver memstats |
dd if =/dev/urandom of =/home/$ user/myrandom \ bs = 100 count = 1 | Crea un archivo de 1kb de galimatías aleatorias |
dd if =/dev/mem of =/home/$ user/mem.bin \ bs = 1024 | Crea una imagen del estado real de la memoria de su sistema |
dd if =/home/$ user/myfile | Imprime el archivo a stdout |
dd if =/dev/sda2 bs = 16065 | hexdump -c \ | GREP 'Text_To_Search' | Busque una partición completa para una cadena; Incluso si está asegurado, puedes arrancar un livecd |
dd if =/home/$ user/archivo.bin skip = 64k bs = 1 \ of =/home/$ user/convfile.papelera | Copiar archivo.contenedor para convencer.Bin omitiendo los primeros 64 kb |
dd if =/home/$ user/bootimage.img de =/dev/sdc | Crear unidad USB de arranque (aquí se muestra como /dev /sdc) |
dd if =/dev/mem bs = 1k skip = 768 count = 256 \ 2>/dev/null | cadenas -n 8 | Leer BIOS. |
DD BS = 1K if = ImageFile.nrg de = ImageFile.ISO Skip = 300k | Convertir la imagen nero en una imagen estándar ISO. Esto es posible porque la única diferencia entre Los dos son un encabezado de 300 kb que Nero se suma a un archivo ISO estándar. |
echo -n "Hola mundo vertical" | DD CBS = 1 \ Conv = Unblock 2> /dev /null | Pruébalo, es seguro. 🙂 |
dd if =/dev/sda1 | GZIP -C | dividido -b 2000m - \/mnt/hdc1/copia de seguridad.img.GZ | Crear una imagen gzipped de una partición usando división |
CAT/MNT/HDC1/COMPARDO.img.GZ.* | gzip -dc | \ dd of =/dev/sda1 | Restaurar la copia de seguridad de arriba |
dd if =/dev/cero of = myImage BS = 1024 Count = 10240 | Crear una imagen de disco vacía |
DD IBS = 10 Skip = 1 | Delire los primeros 10 bytes de Stdin |
dd bs = 265b conv = noError if =/dev/st0 \ of =/tmp/bad.cinta.imagen | Haga la imagen de una unidad de cinta con puntos malos |
dd if =/dev/sda count = 1 | hexdump -c | Vea su MBR |
dd if =/dev/sda | NC -L 10001 NC $ System_To_Backup_IP 10001 | DD \ OF = SYSBACKUPSDA.img | Copia de seguridad de red rápida usando NetCat |
dd if =/dev/cero of =/dev/sdx \ bs = 1024000 count = 1 | Clear los primeros 10 MB de la partición |
dd if =/dev/cero de = tmpswap bs = 1k \ count = 1000000 chmod 600 tmpswap mkswap tmpswap swapon tmpswap | Crear espacio de intercambio temporal |
dd if =/dev/sda of =/dev/null bs = 1024k \ count = 1024 1073741824 bytes (1.1 GB) copiado, 24.1684 S, 44.4 MB/s | Determine la velocidad de E/S secuencial de su unidad. Leer el archivo de 1 GB |
dd if =/dev/random count = 1 2>/dev/null | OD -T U1 | \ Awk 'imprimir $ 2' | Cabeza -1 | Generar un número aleatorio |
dd if =/dev/mem of = myram bs = 1024 | Copiar la memoria RAM en un archivo |
dd if =/dev/sda bs = 512 count = 1 | OD -xa | Vea el contenido de su MBR en formato Hex y ASCII |
dd if =/my/old/mbr of =/dev/sda bs = 446 count = 1 | Restaurar MBR sin perturbar el registro de la tabla de partición que está entre 447 y 511 bytes |
dd if =/dev/sda1 | división -B 700m -IMAGE SDA1 | Crear una copia de partición y guardar imágenes donde sea máximo El tamaño del volumen es de 700 MB |
Manipulación de texto | |
ls -l | dd conv = ucase | Convierta la salida de un comando en mayúsculas |
Echo "Mi texto en mayúsculas" | dd conv = lcase | Convertir cualquier texto en minúsculas |
dd if =/etc/passwd cbs = 132 conv = ebcdic of =/tmp/passwd.EBCDIC | Convierta el archivo de contraseña del sistema a archivo de formato EBCDIC de longitud fija |
dd if = texto.ASCII de = texto.ebcdic conv = ebcdic | Convertir de ASCII a EBCDIC |
dd if = myfile of = myfile conv = ucase | Convierta un archivo en mayúsculas (reemplazo simple de SED o TR) |
Conclusión
Esto ha sido solo una pequeña parte de lo que DD puede hacer, y esperamos que este artículo haya logrado comprender los ejemplos más útiles para el usuario cotidiano. Sin embargo, antes de ir más allá, le recomendamos que lea la documentación de su disco duro, busque cosas como la limitación de LBA, y tenga mucho cuidado al usar DD en un terminal raíz.
Por supuesto, ya tiene copias de seguridad, pero un poco de cuidado adicional le ahorrará horas de trabajo innecesario.
Tutoriales de Linux relacionados:
- Cosas para instalar en Ubuntu 20.04
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Una introducción a la automatización, herramientas y técnicas de Linux
- Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
- Descarga de Linux
- Cosas para instalar en Ubuntu 22.04
- Ubuntu 20.04 Guía
- Instale Arch Linux en VMware Workstation
- Cómo arrancar dual Kali Linux y Windows 10
- Comandos de Linux: los 20 comandos más importantes que necesitas ..