maneira mais fácil
btrfs-zero-log /dev/sda5
Você está recebendo esse problema porque uma transação (gravação ou exclusão) está presa no log de diário e o disco não corresponde a ele.
Como funciona:
Assim, quando os dados são gravados, primeiro são gravados no journal e depois no disco (ou ao mesmo tempo, mas o journal salva os metadados sobre a próxima gravação - não tenho certeza ... precisa de mais pesquisas sobre essa parte) ...
De qualquer forma, se você desligar o sistema no meio dessa gravação / exclusão ou fizer algo com o sistema (desmonte o USB que contém o ponto de montagem btrfs), quando ele retornar a montagem não funcionará, ele falhará (< strong> dmesg e btrfsck mostrarão os erros com mais detalhes) ...
Olhando para o dmesg, você verá essas mesmas mensagens transid.
Você verá algo assim:
parent transid verify failed on 109973766144 wanted 1823 found 1821
Isso significa que o btrfs queria o transif 1826 (que estava no diário), mas no disco que ele viu 1821. Assim, o disco tinha duas transações de estar em sincronia com o diário. Eu, pessoalmente, arriscaria um log de brtfs-zero aqui só porque é apenas duas transações. Mas para ser 100% seguro se este for seu único dado (a propósito se você tiver dados críticos você NUNCA DEVE ter 1 cópia disto, sempre tenha uma cópia / backup em um outro local seguro - culpando os criadores de btrfs wouldnt justificar contra a própria falta de responsabilidade de não ter um backup - btrfs não é solução de backup, é um sistema de arquivos - nada é uma verdadeira solução de backup além de ter uma cópia de outro lugar - nem paridade nem unidades espelhadas, um backup verdadeiro é sentado em algum lugar subterrâneo nos Alpes enquanto sua cópia ativa está em seu escritório no Texas)
parent transid verify failed on 31302336512 wanted 62455 found 62456
Aqui, a revista está querendo 62455, mas o disco está à frente, em 62456, então, no seu caso, eu apenas limparia o diário. O diário não atualizou desta vez. Mais uma vez eu disse a você sobre ser coisa segura, se é seu único dado e sua mega crítica (vergonha para você), e eu faria as operações abaixo primeiro para estar seguro.
Executando um btrfsck / dev / sda5 (que, a propósito, apenas faz uma checagem somente para leitura, para que seja completamente seguro, suas únicas opções de btrfsck com as quais você precisa se preocupar) também mostrará essas mensagens.
Mas tenha cuidado se esses dados forem críticos, eu faria primeiro (como os outros senhores disseram)
mount -t btrfs -o rootflags=recovery,nospace_cache /dev/sda3 /mnt/sda3
mount -t btrfs -o rootflags=recovery,nospace_cache,clear_cache /dev/sda3 /mnt/sda3
mount -t btrfs -o recovery,nospace_cache,nospace_cache /dev/sda3 /mnt/sda3
Em seguida, cp ou rsync todos os seus arquivos para local seguro, então quando seguro fazer o btrfs-zero-log, se for uma operação bem sucedida você acabou de perder muito tempo fazendo backup de seu sistema (mas se não for bem sucedido, você apenas salvei sua bunda)
Em seguida, se as montagens falharem, faça uma restauração btrfs (despejo do sistema, como eu entendo que é uma operação resumida, no entanto, ele continua pedindo Y ou y de vez em quando para assistir a saída)
btrfs restore /dev/sda5 /USB
Então, quando estiver em segurança (quando a restauração do btrfs estiver concluída) faça o btrfs-zero-log, se for uma operação bem-sucedida, você acabou perdendo muito tempo fazendo backup do seu sistema (mas se não tiver êxito, você salvou sua bunda)
Você pode executar a tela primeiro
screen /bin/bash
btrfs restore /dev/sda5 /USB
NOTA LATERAL DA TELA
Para desanexar (o comando ainda será executado): CONTROL-a e digite ": detach" sem as aspas e pressione ENTER
Outra maneira de desanexar: Em seguida, feche o putty ou seu terminal e ele será desconectado (o comando / restauração ainda será executado).
Para verificar, basta voltar a ver:
screen -x
a tela -x será anexada às sessões, mesmo se desanexada, e ao contrário -h diz, ela será anexada mesmo que ela já esteja anexada também
Se você tiver várias telas, a tela -x dirá que você precisa ser mais específico para anexar à sessão:
screen -ls
ls para listar todas as sessões, fácil de lembrar.
para ver o PID, você também pode fazer isso:
ps aux | grep screen
Depois de descobrir seu PID, execute a tela assim:
screen -x PID
Isso será anexado a uma sessão específica. Você pode ter várias sessões / puttys anexadas à mesma tela (elas produzirão o mesmo texto, você pode digitar comandos em um, e elas serão espelhadas no outro putty)