Vorrei ottenere i checksum BTRFS relativi al file specifico, ma sfortunatamente non ho trovato ioctl appropriato per eseguire questa azione. È possibile farlo? Se sì, come farlo? Ho bisogno di checksum memorizzati per cercare di ridurre il carico della CPU in casi simili al comportamento di rsync.btrfs ioctl: ottiene i checksum dei file dallo spazio utente
7
A
risposta
1
Proprio ora ha spinto questo codice disordinato nel mio repository Github. Il suo codice non ufficiale. Ho testato i file da 100 a 50 GB. Sembrano abbinabili.
Usage:
./btrfs-debug-tree -f /path/to/file /btrfs/partition
creerà csumdump file alla destinazione.
Esempio:
sudo ./btrfs-debug-tree -f /btrfs/50gbfile1 /dev/sda4
creerà un file di nome in uscita '/btrfs/50gbfile1.csumdump' con csum di blocchi di file.
Nota: stavo provando a farlo per scopi educativi/di apprendimento, quindi viene fornito con tutte le normali dichiarazioni di non responsabilità. Pianificazione per ripulire questo codice a volte questa settimana.
Se si prevede di utilizzare, ti consiglierei di provare con i seguenti casi:
1) Create 20GB (or any file with size > 1KB) on /tmp/
2) mount your btrfs partition on /btrfs and copy file /tmp/file /btrfs/f1
3) Now dump the csum it will produce /btrfs/f1.csumdump
4) cp /tmp/file /btrfs/f2 and dump f2's csum.
5) Now compare f1.csumdump with f2.csumdump If they match, it seems to be
working. If they didn't match something went wrong.
Problemi correlati
- 1. Come usare ioctl() dallo spazio del kernel in Linux?
- 2. Dipendenze dallo spazio dei nomi non richieste
- 3. Lettura/dev/cpu/*/msr dallo spazio utente: operazione non consentita
- 4. KDB +/Q Accesso allo spazio dei nomi di root dallo spazio dei nomi
- 5. Modifica di xslt per essere indipendente dallo spazio dei nomi
- 6. Configura i parametri del trigger LED dallo spazio del kernel
- 7. Modo compatto per ottenere il checksum dei file in Perl
- 8. Spazio utente vs driver di spazio kernel
- 9. Come leggere i numeri separati dallo spazio usando scanf
- 10. Come eseguire i checksum durante il trasferimento di file SFTP per l'integrità dei dati?
- 11. Shutdown (incorporato) linux dallo spazio del kernel
- 12. Mantieni i file ignorati dallo stato git
- 13. Bash: parallelizzare md5sum checksum su molti file
- 14. legge ok dallo spazio utente, ma la scrittura è sempre 0
- 15. Checksum incrementali
- 16. Rails: dopo aver definito percorsi di deviazione nello spazio dei nomi, il nome del modello è preceduto dallo spazio dei nomi. Come rimuoverlo?
- 17. In che modo Linux sa quale ioctl deve chiamare?
- 18. Parse XML con Python Etree e tag specificato restituito indipendentemente dallo spazio dei nomi
- 19. Ottieni checksum MD5 per file molto grandi
- 20. Location.HorizontalAccuratezza eccessiva quando si ottiene la posizione dallo sfondo
- 21. Come calcolare sha256 checksum file in Go
- 22. Sostituzione per la funzione ioctl()
- 23. caricamento file ELF in C nello spazio utente
- 24. unlocked_ioctl vs ioctl normale
- 25. Rimozione dei campi data/ora dallo schema
- 26. Accesso alle variabili dallo spazio dei nomi interattivo IPython in uno script
- 27. DataContractSerializer - modifica lo spazio dei nomi e deserializza il file associato allo spazio dei nomi precedente
- 28. .nuget Cartella nello spazio utente
- 29. L'elemento XML denominato "nome" dallo spazio dei nomi fa riferimento a tipi distinti
- 30. Checksum sulla stringa
BTW, Btrfs genera checksum per * * blocchi, non per i file * * (per quanto ne so). – gavv
Questo è esattamente ciò che voglio: un elenco di checksum per i blocchi del file specificato. – 0x2207
Sto sfogliando il codice sorgente e non vedo alcuna interfaccia per ottenere i valori di checksum. – rodrigo