Điểm:0

MD5 băm tất cả các tệp trong usb và lưu tệp đầu ra trên usb

lá cờ cm

vì vậy tôi đang cố gắng tìm ra cách băm tất cả các tệp trong thư mục USB. Tôi đã xem qua một bài đăng khác tương tự như của tôi, bao gồm cả đoạn script bên dưới:

tìm "$PWD" -type d | sắp xếp | trong khi đọc thư mục; làm [ ! -f "${dir}"/@md5Sum.md5 ] && echo "Đang xử lý " "${dir}" || echo "Skipped " "${dir}" " @md5Sum.md5 đã có rồi"; [ ! -f "${dir}"/@md5Sum.md5 ] && md5sum "${dir}"/* > "${dir}"/@md5Sum.md5 ; chmod a=r "${dir}"/@md5Sum.md5;xong

Nó hoạt động thực sự tốt và làm mọi thứ tôi muốn, tuy nhiên tôi không thể tìm ra cách thay đổi nó để nhắm mục tiêu USB. Tôi đã yêu cầu người dùng nhập thiết bị USB bằng cách họ nhập/dev/sdf hoặc/dev/sdg, v.v. Nhưng tôi không thể tìm ra cách đưa thông tin này vào lệnh trên. Bất kỳ lời khuyên hoặc đề xuất về điều này sẽ được đánh giá cao.

sudodus avatar
lá cờ jp
Bạn nên kiểm tra xem phân vùng trên ổ USB có được **[auto]mount** (và mount nếu chưa).Sau đó, thay đổi thư mục `cd` thành điểm gắn kết và chạy tập lệnh của bạn.
sudodus avatar
lá cờ jp
[Liên kết này](https://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition/956072#956072) và [liên kết này](https ://askubuntu.com/questions/958556/ubuntu-mounts-external-ntfs-drive-as-read-only/958604#958604) có thể hữu ích nếu tính năng tự động đếm của hệ thống tệp Microsoft (FAT32, exFAT, NTFS) không công việc.
lá cờ cm
@sudodus để nó tự động gắn kết không có vấn đề gì và có thể truy cập mọi thứ. Lệnh tôi đã viết là sao chép toàn bộ usb bao gồm mã hóa bitlocker vào một usb giống hệt nhau. Tôi muốn tạo một hàm băm md5 của usb nguồn, sau đó sẽ được sao chép vào ổ đĩa được nhân bản và sau đó thực hiện một hàm băm md5 khác để kiểm tra xem có gì bị thay đổi trong quá trình sao chép không.
lá cờ cm
và lý do tôi yêu cầu họ nhập/dev/sdf, v.v. là để đảm bảo rằng toàn bộ thư mục của USB không chỉ là một phân vùng riêng lẻ
sudodus avatar
lá cờ jp
Chà, điều đó khác với những gì tôi nghĩ, khi bạn viết 'băm tất cả các tệp'. Bạn có thể sử dụng `lsblk -f` và `lsblk -m` để nhận danh sách tất cả các ổ đĩa và phân vùng và theo cách đó xác định ký tự thiết bị của ổ đĩa USB. Bạn có thể sao chép nó bằng một phương thức thô sơ bằng cách sử dụng `dd` sang ổ đĩa khác hoặc vào tệp hình ảnh hoặc hiệu quả hơn bằng [Clonezilla](https://askubuntu.com/questions/958242/fastest-way-to-copy-hdd /958248#958248). Rất khó để có được md5sum có thể tái tạo của ổ đĩa nhân bản vì ổ đĩa đích có thể lớn hơn ổ đĩa gốc. Thay vào đó ** hãy kiểm tra xem bản sao đã sao chép có hoạt động chính xác không **.
lá cờ cm
Tôi sử dụng dd vì nó có vẻ nhanh nhất. Clonezilla không hoạt động chính xác đối với tôi vì bất kỳ lý do gì và không thực sự thân thiện với người dùng... Tôi đã sắp xếp mọi thứ trong lệnh của mình và người dùng cuối biết cách tìm tên thiết bị usb. Tôi đã tạo bản sao trong khoảng một tháng qua bằng cách sử dụng lệnh của mình nên tôi biết nó hoạt động. Nó hoàn toàn chỉ là cố gắng để có được lệnh này mà tôi đã nhận xét ban đầu để làm việc với những gì tôi có.
sudodus avatar
lá cờ jp
Bạn đang tạo một tệp hình ảnh hoặc một bản sao ổ đĩa USB nhân bản?
lá cờ cm
Một chút để sao chép bit của USB
sudodus avatar
lá cờ jp
Sau đó, bạn sẽ có thể in ra kích thước đã sử dụng của ổ USB nguồn (gốc) (đến hết phân vùng cuối cùng). Sau đó chạy `dd` bằng cách sử dụng bs và đếm và chuyển kết quả thành `md5sum`. Sau khi sao chép, bạn nên kiểm tra xem bạn có nhận được kết quả tương tự trên ổ đĩa đích không. Vui lòng lưu ý rằng các ổ đĩa thường không có cùng kích thước (tính bằng byte), vì vậy điều quan trọng là phải kiểm tra bằng các số giống nhau cho bs và số đếm. (Ổ đĩa đích phải đủ lớn để sao chép cho đến hết phân vùng cuối cùng của ổ đĩa nguồn.)
lá cờ cm
Vì vậy, tôi chưa thử những gì bạn đã đề xuất (@sudodus). Nhưng tôi đã thử thay đổi những điều trên thành: `tìm "/dev/$source" -type d | sắp xếp | trong khi đọc nguồn; làm [ ! -f "${source}"/@md5Sum.md5 ] && echo "Đang xử lý " "${source}" || echo "Skipped " "${source}" " @md5Sum.md5 đã có rồi"; [ ! -f "${source}"/@md5Sum.md5 ] && md5sum "${source}"/* > "${dir}"/@md5Sum.md5 ; chmod a=r "${source}"/@md5Sum.md5;done` Sau khi thực hiện việc này, không có tiến trình nào được thực hiện và không có gì được tạo trong USB đã nói... Bây giờ tôi hơi bối rối
sudodus avatar
lá cờ jp
Thay vì cố gắng sửa đổi tập lệnh của bạn, tôi đã viết một câu trả lời trong đó tôi tập trung vào những gì tôi nghĩ là các bước quan trọng để kiểm tra 'toàn bộ' ổ USB. Tôi hy vọng nó sẽ giúp bạn đạt được mục tiêu của mình.
Điểm:0
lá cờ jp

Tôi đã thử nghiệm với tệp iso của Ubuntu Server ubuntu-20.04.3-live-server-AMD64.iso

từ https://releases.ubuntu.com/20.04.3/ với sha256sum

f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98
  • Tệp iso đã được sao chép vào ổ USB. (Bạn có thể làm điều đó với bất kỳ công cụ nhân bản nào.)

  • Kích thước đã sử dụng trên ổ USB được xác định bằng

    Sudo fdisk -lu /dev/sdx
    

    ở đâu x là ký tự ổ đĩa (được xác định bằng fdisk và ví dụ lsblk -f) và số lượng cung (từ 0 đến 'end_sector') là end_sector + 1, vì vậy trong ví dụ thử nghiệm của tôi 2463616 và kích thước cung là 512 byte.

  • Kiểm tra để chắc chắn rằng không có hệ thống tệp nào trong ổ đĩa được gắn kết và ngắt kết nối (các) phân vùng nếu được gắn kết (nhưng không đẩy ra).

  • Kiểm tra trên ổ USB

    Tính tổng kiểm tra trên toàn bộ phần đã sử dụng của ổ USB,

    sudo dd if=/dev/sdx bs=512 đếm=2463616|sha256sum
    

    Đầu ra của kiểm tra này giống với tổng kiểm tra đã tải lên, kiểm tra này xác minh rằng hoạt động sao chép đã thành công. Bạn có thể thích chuyển đầu ra từ đ đến md5sum.

  • Nếu tổng kiểm tra không khớp với bạn, trước tiên vui lòng kiểm tra xem số lượng cung và số byte có chính xác không (rằng bạn đã kiểm tra chính xác phần chính xác của ổ USB).


  • Phương pháp tương tự này cũng hoạt động khi bạn sao chép từ một ổ USB sang một ổ đĩa khác đủ lớn, vì vậy hãy kiểm tra ổ đĩa mới (sha256sum hoặc md5sum theo sự lựa chọn của bạn).
lá cờ cm
Cảm ơn vì điều này rất nhiều sudo.... Cuối cùng, tôi thích một tệp txt có chứa md5 bên trong tệp mà tôi có thể tạo. Nhưng nó luôn lưu vào máy tính để bàn của tôi làm cách nào để lưu nó vào những nơi khác như usb của tôi?
sudodus avatar
lá cờ jp
Bạn có thể lưu kết quả vào một tệp trong hệ thống tệp được gắn kết, nhưng không lưu vào ổ đĩa mà bạn đang kiểm tra. Để tránh sự cố, bạn cũng nên kiểm tra xem không có hệ thống tệp nào trong ổ đĩa cần kiểm tra được gắn kết hay không, vì vậy hãy ngắt kết nối nếu cần (nhưng không đẩy ra vì điều đó sẽ tắt nguồn của ổ đĩa). Vì vậy, hãy sử dụng đường dẫn đầy đủ `/mountpoint/directory-path/file-name` đến nơi bạn muốn lưu kết quả.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.