с a
это будет выглядеть так:
sed '0,/^$/{
/^$/a \
---
}' yourfilename
или, если вы хотите заменить вместо добавления:
sed '0,/^$/{s/^$/---/}' yourfilename
сценарии sed - для ясности
# from the first line through the first empty line
0,/^$/{
# no \ needed here, just append it
/^$/a ---
}
или
# from the first line through the first empty line
0,/^$/{
# replace empty lines with `---'
s/^$/---/
}
это работает, потому что адреса блока ограничивают его определенным диапазоном (от первой строки до первой пустой новой строки), только в строке, где закрывается блок, будет только команда s / ^ $ / --- /
, получить делать что-либо.
Cuando tú dd
,
conv
con noerror
y sync
, corrompe los datosbs=1M
(obs=64K
)por razones de rendimientoBásicamente, una copia de disco directa consistente y exitosa solo se puede lograr a través de un sistema independiente como un Live CD, e incluso entonces debe tener cuidado con los sistemas de archivos que se montan automáticamente sin que usted lo sepa.
Además, si espera que haya errores de lectura (, por lo tanto, sync
, noerror
y otras conv
opciones ), es mucho más confiable ir con ddrescue
en su lugar. Maneja correctamente los errores de lectura e incluso tiene la capacidad de reintentar y reanudar.
En general, las copias a nivel de bloque tienden a ser poco confiables porque es fácil cometer errores. La única razón por la que se hacen es que es el único método para producir una copia con consistencia perfecta(solo si se hace correctamente ).
Todos los demás enfoques son simplemente suficientemente buenos en la práctica, nunca perfectos. No hay forma de hacer una copia perfecta con procesos en ejecución que mantienen la mitad de sus datos en la memoria y la otra mitad en el disco. Tienes que apagarlo para obtener la imagen completa. (O virtualice todo y congélelo.)
Hay alternativas:
Si debe ser una copia a nivel de bloque, también puede abusar del sistema mdadm para colocar una capa RAID 1 en la unidad de origen y usarla para producir una copia consistente de un sistema en ejecución agregando una unidad de destino.El RAID mantiene ambos lados en perfecta sincronización, por lo que evita principalmente el problema de la inconsistencia (siempre que permita que finalice la sincronización antes de quitar la unidad de destino ).
# RAID creation (before installing Linux)
mdadm --create /dev/md0 --level=1 --raid-devices=1 --force /dev/source
# /proc/mdstat
md0 : active raid1 sda2[3]
134306472 blocks super 1.2 [1/1] [U]
# Add the target drive.
mdadm --grow /dev/md0 --raid-devices=2 --force
mdadm --manage /dev/md0 --add --write-mostly /dev/target
# Wait for RAID resilvering.
mdadm --wait /dev/md0
sync
# Remove the target drive.
mdadm /dev/md0 --fail /dev/target
mdadm /dev/md0 --remove /dev/target
mdadm --grow /dev/md0 --raid-devices=1 --force
Pero eso es un truco y la copia seguirá apareciendo como un sistema de archivos que no se desmontó correctamente. Esto es un poco menos peor que una pérdida de energía, ya que no puedes hacer un sync
cuando pierdes energía inesperadamente. Pero órdenes de magnitud mejor que dd
donde el estado de la primera mitad de la imagen está horas por detrás de la última mitad.
Utilizo este método para duplicar mi única unidad SSD en HDD todas las semanas, sin evitar la inactividad de HDD. Si el SSD falla, el HDD se puede iniciar directamente con poco esfuerzo.
Por supuesto, también se puede lograr lo mismo con una copia basada en archivos.
Dado que menciona los UUID, la clonación de unidades a nivel de bloque clonará los UUID, lo que a su vez puede ser la causa del desastre. (En el caso del truco RAID anterior, están convenientemente ocultos detrás de la capa RAID.)
La copia basada en archivos a un nuevo sistema de archivos tendrá nuevos UUID, pero es razonablemente sencillo de resolver:
chroot
, edite /etc/fstab
, actualice initramfs, reinstale el gestor de arranque (encontrará el método chroot en básicamente todas las wikis de Linux)tune2fs -U <UUID>
, existen herramientas similares para otros sistemas de archivos (requiere documentación, de lo contrario no sabrá los UUID que necesita ). Nuevamente, tenga cuidado de no duplicarlos, solo haga esto si el dispositivo anterior se ha ido por completo.