Ao usar um pen drive com um sistema operacional persistente, acontece que a partição persistente casper-rw
fica corrompida se alguém retirar o pen drive muito cedo após desligar o sistema operacional.
Infelizmente, com o ubuntustudio-20.04.2, experimentei períodos de até um minuto após clicar no botão de desligamento quando a tela estava preta, mas operações pesadas de gravação acontecem na casper-rw
partição. Portanto, pode acontecer muito facilmente destruí-lo puxando o manche muito cedo.
Para me recuperar de tal acidente, crio uma partição de backup casper-rw
e uso comandos (após me tornar superusuário) após definir corretamente as variáveis QUELLE e ZIEL:
time cp -a "${QUELLE}/upper" "${ZIEL}"
time cp -a "${QUELLE}/work" "${ZIEL}"
time cp -a "${QUELLE}/lost+found" "${ZIEL}"
Quando meu script é executado, vejo
- atividade de CPU muito baixa
- muito pouco uso de RAM
htop
me mostra que ocp -a
processo leva muito tempo no estado D.
Se eu entendi direito (corrija-me), isso significa que o computador tem que esperar com muita frequência porque o controlador do pendrive não consegue lidar com essas muitas operações de leitura e gravação de maneira eficaz (embora seja um dispositivo USB3 em um soquete USB3!) .
Existe uma maneira de deixar cp -a
usar buffers maiores para acelerar as coisas, de preferência gravando arquivos inteiros sequencialmente?
Responder1
Parece que é possível acelerar significativamente a cópia copiando primeiro os diretórios upper
e work
( lost+found
se existir) na partição casper-rw
para algum diretório em um SSD. Esta etapa leva pouco mais de 2 minutos. Pode-se usar cp -a
para esse fim.
Se você quiser o backup no mesmo stick em uma partição separada, copiá-lo do SSD para o stick USB cp -a
levou cerca de 31 minutos (para 4,1 GiB de dados em alguns arquivos 66500, stick USB3 em um soquete USB3) . O conteúdo anterior da partição foi apagado rm -rf "${ZIEL}/upper"; rm -rf "${ZIEL}/work"; rm -rf "${ZIEL}/lost+found
antes que qualquer conteúdo atual fosse copiado para a partição de backup).
Alguém sabe se faz diferença se uma partição for apagada dessa maneira antes de ser reutilizada ou se aceleraria ainda mais se alguém a formatasse antes que o conteúdo da rede fosse colocado lá? No caso de um danificado, casper-rw
é necessário formatá-lo antes de restaurar seu conteúdo do backup.
É claro que alguém poderia melhorar ainda mais fazendo um backup como arquivo backup.tar.gz
. Isso reduz a quantidade de dados a serem gravados e principalmente a segunda etapa lucraria com isso.
Responder2
Use sync
para forçar a gravação imediata no destino
Quando você cria cp
um arquivo e ele aparece no sistema de arquivos de destino, não é garantido que o arquivo ainda esteja na mídia de armazenamento.
A razão para isso é que os dados são primeiro buscados entre vários buffers internos, o que é mais rápido e fácil de usar, até que estejam realmente no dispositivo de armazenamento de destino. A gravação dos dados no dispositivo de destino é realizada em segundo plano e não consome muitos ciclos de CPU, por isso pode ser difícil vê-los nos monitores de atividade.
Você sempre pode tentar forçar uma gravação imediata dos buffers para o dispositivo de armazenamento de destino usando sync
após a cópia, por exemplocp ${QUELLE} ${ZIEL} && sync
Além disso, considere usar rsync
para copiar apenas arquivos para o destino que foram alterados ou são novos.