Бүткүл катуу дисктин жана бөлүкчөлөрдүн жадыбалынын толук кошумча жана издөө камдык көчүрмөсүн кантип жасоого болот?

Используйте awk :

awk '{a[$4]++} END{for(s in a){print a[s]" "s}}' file
  • a [$ 4] ++ увеличивает элемент массива, индекс которого имеет имя 4-го столбца. В конце файла этот массив содержит счетчики всех вхождений 4-го столбца.
  • END {} : указывает блок кода, который выполняется, когда awk просматривает файл.
    • for (s в a) запускает через массив ...
    • напечатайте a [s] "" s} ... и напечатайте его значения и индексы.

Вывод:

1 FAM169B
3 FAM193A
1 FAM132B
1 FAM155B
2 FAM171B
1
15.02.2018, 04:02
3 ответа

Esta copia de seguridad hará una copia de la tabla de particiones y luego una copia de seguridad incremental del contenido de las particiones con rsync. La ventaja sobre una copia de seguridad ciega y completa con ddes que puede actualizar rápidamente la copia de seguridad con mucha frecuencia y solo se actualizará la información que ha cambiado, y también que tiene todos los archivos fácilmente accesibles en la copia, y puede modificarlos antes de restaurar la copia de seguridad, o rescatar solo algunos de ellos.

Estoy usando Debian Stretch (Los comandos pueden tener nombres diferentes, p. sombrero rojo)

Todo aquí se hace como root, así que ¡cuidado!:

su

  1. Ver qué disco duro se identifica como sda, sdb, etc.

    fdisk -l

    Veo que el disco duro de la laptop que quiero respaldar se llama/dev/sda(sda1, sda2... son las particiones ).

    Advertencia :NO copiar líneas a ciegas. Supongo que el disco duro del que quiero hacer una copia de seguridad es /dev/sda, pero puede que ese no sea su caso.

  2. Montar disco duro externo donde queramos almacenar la copia de seguridad:

    Haciendo de nuevo fdisk -lpuedo ver que su nombre ahora es /dev/sdb. Debian Stretch lo monta en /media/[username]/[whatever]pero prefiero montarlo como root bajo /mnt/USB/, por lo tanto:

    umount /media/[username]...
    mkdir /mnt/USB/  # this is done only this first time
    mount -t auto /dev/sdb1 /mnt/USB -rw
    mkdir /mnt/USB/backup #this is done only this first time
    mkdir /mnt/USB/backup/partition_table #this is done only this first time
    mkdir /mnt/USB/backup/files #this is done only this first time
    
  3. Determinar si la tabla de particiones es del tipo MBR o GPT

    parted /dev/sda print
    

    Verá "Tabla de particiones :gpt" o "Tabla de particiones :msdos"

  4. Copia de seguridad de la tabla de particiones en un archivo en el disco duro externo

    En caso de que tenga una tabla MBR (Tabla de partición :msdos):

    Podemos hacer una copia de seguridad binaria completa de todos los sectores donde se almacena la tabla de particiones:

    dd if=/dev/sda of=/mnt/USB/backup/partition_table/backup-sda.mbr bs=512 count=1
    

    (Más adelante veremos cómo restaurar esto)

    Comentario :Prefiero dda sfdiskporque este último le pide que confirme si desea escribir algunos cambios en la tabla de particiones, y durante mis intentos presiono "Y" accidentalmente, por lo que es fácil meter la pata.

    En caso de que tenga una tabla GPT

    sgdisk --backup=/mnt/USB/backup/partition_table/gpt_partition_table.bin /dev/sda
    

    (Más adelante veremos cómo restaurar esto)

  5. Copia de seguridad incremental de todos los archivos en el disco externo:

    Esto supone que usted, como yo, tiene una sola distribución de Linux instalada en el disco duro, y que todo el árbol de información cuelga de/(Por favor, chicos expertos en Linux, reescriban esto de una manera más técnica). En mi caso, hacer una copia de seguridad de todo desde /resuelve el problema, porque la partición efi está montada como /boot/efi, por lo que su contenido también se incluirá en la copia de seguridad:

    rsync -aAXv / */mnt/USB/backup _de _laptop _hd/files --excluir={/dev/ ,/proc/ ,/sys/ ,/tmp/ ,/run/ ,/mnt/ ,/media/ ,/lost+found,/home/ /. gvfs,/var/tmp/ ,/home/ /.cache/ ,/home/ /.miniaturas/ / ,/root/.miniaturas/ / ,/root/.cache/ ,/home/ /.config/VirtualBox/ *} --borrar

    Comentario 1:Esta es una copia de seguridad incremental , lo que significa que la próxima vez que lo haga, no necesita copiar todo nuevamente, sino que solo los archivos que han cambiado se actualizarán automáticamente (y los eliminados, también se eliminarán de la copia ).

    Comentario 2:Todas las opciones entre {} son cosas que no tienen sentido en una copia de seguridad (p. cosas temporales )y también las máquinas virtuales (Prefiero mantener un archivo.ova encapsulado con cada máquina ).

  6. Cómo restaurar todo eso:

    Primero, el peor de los casos en el que estropeó el disco duro para siempre.Primero restauraría la tabla de particiones (, omita esto si su tabla de particiones aún está activa )y arranca desde un USB en vivo:

    Abra una terminal en la distribución en vivo y verifique el nombre del disco duro

    fdisk -l
    

    Asumiré que el disco duro de la computadora portátil todavía está /dev/sdaen los ejemplos (advertencia, esta vez bien podría ser/dev/sdb).

    Si la suya era una tabla MBR, monte el disco duro externo con la copia de seguridad como hicimos anteriormente y luego:

    dd if=/mnt/USB/backup/partition_table/backup-sda.mbr of=/dev/sda
    

    Pero, si la tuya fuera una tabla GPT, sería:

    sgdisk --load-backup=/mnt/USB/backup/partition_table/gpt_partition_table.bin /dev/sda
    

    Si ya hizo esto, o si no necesitaba hacerlo porque las particiones estaban intactas, entonces es hora de restaurar todos los archivos. Esto también se puede usar de manera bastante segura desde un sistema que funciona normalmente para restaurarlo a la última copia de seguridad:

    rsync -aAXv /mnt/USB/backup/files/* / --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs,/var/tmp/*,/home/*/.cache/*,/root/.cache/*} --delete
    cp /mnt/USB/backup/files/vmlinuz / --preserve=all --remove-destination
    cp /mnt/USB/backup/files/vmlinuz.old / --preserve=all --remove-destination
    cp /mnt/USB/backup/files/initrd.img / --preserve=all --remove-destination
    cp /mnt/USB/backup/files/initrd.img.old / --preserve=all --remove-destination
    

    Comentario:Las últimas cuatro líneas tuve que agregarlas al comando rsyncporque, por alguna razón, los archivos que están directamente en la raíz del árbol no se restauran. Además, cuando una carpeta está encendida / directamente y se borra en la computadora, no se borrará en la copia de seguridad. Esto no da ningún problema (los archivos y bibliotecas correspondientes ya no están, por lo que nadie los vincula ni los requiere )pero es feo. ¿Alguien puede ayudarme a corregir la sintaxis de rsync aquí?

    Finalmente,

    grub-install /dev/sda
    

Comentario 1:Si bien he restaurado el sistema a un estado anterior con la sintaxis de rsync anterior con bastante frecuencia, nunca he necesitado restaurar la tabla de particiones, así que:

  1. Usted corre bajo su propio riesgo y,
  2. No dude en sugerir ediciones para mejorar esta respuesta.

Comentario 2:En aras de la simplicidad, en el caso de las particiones MBR, solo incluyo cómo hacer una copia de seguridad de las particiones primarias con dd. Si tiene particiones extendidas,luego haz la copia de seguridad de esta manera:

    dd if=/dev/sda of=/mnt/USB/backup/partition_table/backup-sda.mbr bs=512 count=1

    sfdisk -d /dev/sda > /mnt/USB/backup/partition_table/backup-sda.sfdisk

Y restaurar el MBR y la tabla de particiones de esta manera:

    dd if=/mnt/USB/backup/partition_table/backup-sda.mbr of=/dev/sda

    sfdisk /dev/sda < /mnt/USB/backup/partition_table/backup-sda.sfdisk
2
27.01.2020, 23:14

Tiendo a usar dd if=/dev/sda of=/my/backup/image.img bs=8Mpara crear una imagen de todo el dispositivo en un archivo de imagen cuando necesito que el EFI esté intacto en una unidad de la que hago una copia de seguridad.

Puede ser un poco exagerado (y llevar mucho tiempo ), pero es la forma más sencilla que conozco.

Si es necesario, puede montar la imagen como un dispositivo de bucle y buscar/administrar los archivos allí. gnome-disk-utilityproporciona una GUI fácil de usar para manejar eso.

2
27.01.2020, 23:14

Use rsync para hacer una copia de seguridad de los archivos tanto en la partición raíz como en ESP (Partición del sistema EFI ). Si también desea una copia de la tabla de particiones, puede usar la opción de copia de seguridad )de sgdisk-b(para guardar una copia de seguridad de la tabla de particiones en un archivo. Use-l(cargar )para restaurar. La página de manual de sgdisk le recomienda que solo restaure la copia de seguridad en el mismo disco, ya que el tamaño puede diferir ligeramente incluso en un disco que nominalmente tiene el mismo tamaño. Es posible que esté mejor si solo recrea las particiones a mano de todos modos.

Creo que hacer una copia de seguridad de un disco es aún más fácil con UEFI, porque todo menos la tabla de particiones está en archivos, y no en msgic, fuera de -sectores de partición como las primeras etapas de GRUB.

3
27.01.2020, 23:14

Теги

Похожие вопросы