Làm cách nào để so sánh một tệp với hình ảnh đĩa mềm và nội dung của đĩa mềm thực tế?


7

Có lệnh nào so sánh hình ảnh đĩa mềm (ví dụ: tệp .iso) với nội dung thực tế của đĩa mềm mà hình ảnh được ghi trên (vd / dev / fd0) không?

Câu trả lời:


7

Một tập tin thiết bị đĩa mềm là một tập tin. Bất kỳ lệnh nào đọc tệp sẽ làm việc trên nó.

cmp /dev/fd0 image.fat

Vượt qua -ltùy chọn nếu bạn muốn một danh sách tất cả các byte khác nhau; đối với tiêu dùng của con người, điều này chủ yếu hữu ích ở dạng

cmp -l /dev/fd0 image.fat | wc -l

để biết có bao nhiêu byte khác nhau. Chạy cmp -s /dev/fd0 image.fatnếu bạn không muốn bất kỳ đầu ra nào, chỉ là trạng thái trả về 0 nếu hai tệp giống nhau và 1 nếu chúng khác nhau.

Điều này so sánh các hình ảnh byte theo byte. Nếu đĩa mềm và hình ảnh chứa các tệp và bạn chỉ muốn so sánh các tệp chứ không phải siêu dữ liệu (ngày tệp, v.v.) cũng như không gian trống, hãy gắn đĩa mềm và hình ảnh và so sánh các cây thư mục.


Tôi thích câu trả lời của tôi hơn chỉ vì nó quản lý để sử dụng bash's <(...)-magic; o)
jippie

1

Vì thiết bị đĩa mềm được xem một cách hiệu quả dưới dạng tệp, bạn cũng có thể so sánh các giá trị băm (như SHA1 hoặc MD5) của thiết bị đĩa mềm ( /dev/fd0) và hình ảnh đĩa.


0

Tôi không có đĩa mềm để kiểm tra nữa, nhưng tôi đoán:

diff <( dd if=/dev/fd0 ) floppy.img

các <( dd ..... )lần đọc các nội dung của đĩa mềm và hành động như thể nó là một tập tin vào diff. Sau đó diff so sánh nó với tập tin.


2
cmplà một thay thế thả trong cho difftrường hợp cụ thể này. Kudos đến Gilles cho cmpgợi ý.
jippie

1
<(dd if=dev/fd0) is an awfully complicated way of writing / dev / fd0 . Are you sure you didn't mean to write diff <(cat / dev / fd0 | dd if = - | tee / dev / fd / 3 3> & 1 | tr az az | tail -n +1) floppy.img ? And on top of that diff` có xu hướng không đối phó với nhị phân dữ liệu tốt, cmplà công cụ phù hợp ở đây.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles: bạn đã quên những khoảng trống tôi đặt vào <( dd if=/dev/fd0 ). Nhưng OK, bạn đã đưa ra quan điểm của mình; Tôi chỉ không chắc chắn nếu một đồng bằng /dev/fd0sẽ đọc từ thiết bị chứ không phải kiểm tra nút thiết bị. Đó là lý do tại sao tôi thêm ma thuật đen <( ... ).
jippie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.