Puncte:0

MD5 hashing toate fișierele dintr-un USB și salvează fișierul de ieșire pe un USB

drapel cm

așa că încerc să aflu cum să trimit toate fișierele dintr-un director USB. Am dat peste o altă postare similară cu a mea, inclusiv acest script de mai jos:

găsiți „$PWD” -tip d | sortare | while read dir; face [ ! -f "${dir}"/@md5Sum.md5 ] && echo "Se procesează " "${dir}" || echo "Omis " "${dir}" " @md5Sum.md5 deja prezent" ; [ ! -f "${dir}"/@md5Sum.md5 ] && md5sum "${dir}"/* > "${dir}"/@md5Sum.md5 ; chmod a=r "${dir}"/@md5Sum.md5;terminat

Funcționează foarte bine și face tot ce mi-aș dori să facă, totuși nu îmi pot da seama cum să-l modific pentru a viza USB-ul. Am pus deja utilizatorul să introducă dispozitivul USB introducând /dev/sdf sau /dev/sdg etc. Dar nu îmi pot da seama cum să transmit aceste informații în comanda de mai sus. Orice sfat sau sugestie în acest sens ar fi apreciat.

sudodus avatar
drapel jp
Ar trebui să verificați dacă partiția de pe unitatea USB este **[auto]montată** (și montați-o dacă nu).Apoi schimbați directorul `cd` în punctul de montare și rulați scriptul.
sudodus avatar
drapel jp
[Acest link](https://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition/956072#956072) și [acest link](https ://askubuntu.com/questions/958556/ubuntu-mounts-external-ntfs-drive-as-read-only/958604#958604) poate fi util dacă montarea automată a unui sistem de fișiere Microsoft (FAT32, exFAT, NTFS) nu muncă.
drapel cm
@sudodus, așa că se montează automat fără probleme și poate accesa totul. Comanda pe care am scris-o este să clonez un întreg USB, inclusiv o criptare bitlocker, pe un USB identic. Vreau să creez un hash md5 al usb-ului sursă care va fi apoi copiat pe unitatea clonată și apoi să fac un alt hash md5 pentru a verifica dacă ceva a fost modificat în timpul copierii.
drapel cm
și motivul pentru care le-am făcut să introducă /dev/sdf etc este pentru a mă asigura că este întregul director al USB-ului, nu doar o partiție individuală
sudodus avatar
drapel jp
Ei bine, asta este diferit de ceea ce credeam eu când ai scris „hashing toate fișierele”. Puteți folosi `lsblk -f` și `lsblk -m` pentru a obține o listă a tuturor unităților și partițiilor și astfel identificați litera dispozitivului unității USB. Îl puteți clona printr-o metodă brută folosind `dd` pe o altă unitate sau într-un fișier imagine, sau mai eficient cu [Clonezilla](https://askubuntu.com/questions/958242/fastest-way-to-copy-hdd /958248#958248). Este dificil să obțineți o sumă md5 reproductibilă a unității clonate, deoarece unitatea țintă ar putea fi mai mare decât cea originală. În schimb, **testați că copia clonată funcționează corect**.
drapel cm
Folosesc dd pentru că părea a fi cel mai rapid. Clonezilla nu a funcționat corect pentru mine din orice motiv și nu a fost cu adevărat ușor de utilizat... Am totul sortat în comanda mea și utilizatorii finali știu cum să găsească numele dispozitivului USB. Am făcut clone în ultima lună, folosind comanda mea, așa că știu că funcționează. Încerc doar să obțin această comandă despre care am comentat inițial să lucreze cu ceea ce am.
sudodus avatar
drapel jp
Faceți un fișier imagine sau o copie a unei unități USB clonate?
drapel cm
Un pic pentru o copie a USB-ului
sudodus avatar
drapel jp
Apoi ar trebui să puteți imprima dimensiunea utilizată a unității USB sursă (originală) (până la sfârșitul ultimei partiții). Apoi rulați `dd` folosind bs și numărați și direcționați rezultatul la `md5sum`. După clonare, ar trebui să verificați dacă obțineți același rezultat pe unitatea țintă. Vă rugăm să rețineți că unitățile nu au de obicei exact aceeași dimensiune (în octeți), așa că este important să verificați cu aceleași numere pentru bs și count. (Unitatea țintă trebuie să fie suficient de mare pentru a fi copiată până la sfârșitul ultimei partiții a unității sursă.)
drapel cm
Deci nu am încercat încă ceea ce mi-ai sugerat (@sudodus). Dar am încercat să modific cele de mai sus la asta: `găsește „/dev/$sursă” -tip d | sortare | în timp ce sursa citită; face [ ! -f "${source}"/@md5Sum.md5 ] && echo "Se procesează " "${source}" || echo "Omis " "${source}" " @md5Sum.md5 deja prezent" ; [ ! -f "${sursa}"/@md5Sum.md5 ] && md5sum "${sursa}"/* > "${dir}"/@md5Sum.md5 ; chmod a=r „${sursă}”/@md5Sum.md5;terminat` După ce ați făcut acest lucru, nu se pare că s-a făcut niciun progres și nu se creează nimic în USB-ul menționat... Aaaaaaa, sunt puțin încurcat acum
sudodus avatar
drapel jp
În loc să încerc să-ți modific scriptul, am scris un răspuns în care mă concentrez pe ceea ce cred că sunt pași importanți pentru a verifica „întreaga” unitate USB. Sper că vă va ajuta să vă atingeți obiectivul.
Puncte:0
drapel jp

Am făcut un test cu fișierul iso Ubuntu Server ubuntu-20.04.3-live-server-amd64.iso

din https://releases.ubuntu.com/20.04.3/ cu suma sha256

f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98
  • Fișierul iso a fost clonat pe unitatea USB. (Puteți face acest lucru cu orice instrument de clonare.)

  • Dimensiunea utilizată pe unitatea USB a fost determinată cu

    sudo fdisk -lu /dev/sdx
    

    Unde X este litera de unitate (identificata cu fdisk si de exemplu lsblk -f) și numărul de sectoare (de la 0 la 'end_sector') este end_sector + 1, deci în exemplul meu de testare 2463616 iar dimensiunea sectorului este de 512 octeți.

  • Verificați dacă nu este montat niciun sistem de fișiere în unitate și demontați partiția (partițiile) dacă sunt montate (dar nu scoateți).

  • Verificați pe unitatea USB

    Calculați o sumă de control pe întreaga parte utilizată a unității USB,

    sudo dd if=/dev/sdx bs=512 count=2463616|sha256sum
    

    Ieșirea acestei verificări este aceeași cu suma de control încărcată, care verifică dacă operația de clonare a avut succes. Este posibil să preferați să conductați ieșirea de la dd la md5sum.

  • Dacă suma de verificare nu se potrivește pentru dvs., vă rugăm să verificați mai întâi dacă numărul de sectoare și numărul de octeți sunt corecte (că ați verificat exact partea corectă a unității USB).


  • Aceeași metodă funcționează și atunci când clonați de pe o unitate USB pe o altă unitate suficient de mare, așa că verificați noua unitate (sha256sum sau md5sum conform alegerii tale).
drapel cm
Mulțumesc pentru atât de mult sudo.... În cele din urmă, aș prefera un fișier txt care să conțină md5 în interiorul acestuia, pe care îl pot crea. Dar se salvează întotdeauna pe desktopul meu, cum îl pot salva în alte locuri, cum ar fi USB-ul meu?
sudodus avatar
drapel jp
Puteți salva rezultatul într-un fișier dintr-un sistem de fișiere montat, dar nu în unitatea pe care o verificați. Pentru a evita problemele, ar trebui să verificați, de asemenea, că nu este montat niciun sistem de fișiere în unitate de verificat, așa că demontați dacă este necesar (dar nu scoateți, deoarece aceasta oprește alimentarea unității). Deci, utilizați calea completă `/mountpoint/directory-path/file-name` până unde doriți să salvați rezultatul.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.