Tạo ảnh ISO ngẫu nhiên bằng dd


7

Tôi muốn tạo một tệp ISO để kiểm tra các ổ đĩa quang bằng phương pháp được đề cập ở đây . Tôi muốn tạo một tệp ISO chứa đầy dữ liệu ngẫu nhiên, vì vậy tôi có thể ghi nó vào đĩa CD, đọc lại và so sánh với ISO gốc. Tôi nghĩ rằng lệnh dưới đây sẽ làm những gì tôi muốn.

dd if=/dev/urandom of=cd-rom_test.iso bs=2048 count=333000

Tuy nhiên, tôi không chắc chắn về một vài điều.

Trước hết kích thước khối nên là gì? Hình ảnh ISO có bao gồm dữ liệu sửa lỗi tiêu đề và lỗi trên CD không? Kích thước khối nên là 2048 (không có sửa tiêu đề và sửa lỗi) hay 2352 (có sửa tiêu đề và sửa lỗi)?

Thứ hai, một vài trang web tôi đã đi qua có synctrong convtùy chọn (ví dụ ở đây ). Theo như tôi có thể thấy, điền thông tin sửa lỗi tiêu đề và lỗi bằng 0, điều này chắc chắn không đúng.


1
Trong các ví dụ trên trang bạn đã liên kết, tùy chọn noerror và sync là xử lý các lỗi đọc trên thiết bị đang đọc. Ví dụ: nếu bạn có đĩa CD bị trầy xước và bạn đọc bằng noerror, đồng bộ hóa - các khối lỗi trên thiết bị đầu vào sẽ bị xóa trên tệp đầu ra.
Sean C.

Ok, tôi hiểu rõ hơn bây giờ. Cảm ơn rất nhiều.
robingrindrod

Tôi hơi bối rối về việc chính xác bạn đang cố gắng làm gì và tại sao bạn cần ISO với dữ liệu được tạo ngẫu nhiên thay vì sử dụng ISO thông thường như Linux CD Image?
Karlson

1
333000 là số lượng các lĩnh vực cho một đĩa CD 650 MB. Một đĩa CD 700 MB được tạo thành từ 360000 lĩnh vực.
Francesco Turco

1
Ngoài ra, kích thước khối người ta nên sử dụng là 2048, không phải 2352, vì hệ thống tệp ISO 9660 không được ghi trong cùng một byte dành riêng cho thông tin tiêu đề và dữ liệu sửa lỗi.
Francesco Turco

Câu trả lời:


2

Vì bạn đang ghi vào một tệp với dd, kích thước khối sẽ không thay đổi kết quả đầu ra. Kích thước khối chỉ quan trọng khi ghi vào thiết bị.

Bạn đang đọc từ một thiết bị sẽ không bao giờ trả lại các lần đọc ngắn, vì vậy bạn không cần phải sử dụng syncđể chặn các khối.

Trong mọi trường hợp, ddkhông có quyền truy cập đọc hoặc ghi vào dữ liệu sửa lỗi. Cũng như phương tiện từ tính, ổ đĩa quản lý dữ liệu đó và bạn chỉ thấy các khối được sửa lỗi.


Cảm ơn sự giúp đỡ của bạn. Nó có ý nghĩa hơn nhiều bây giờ. Lý do tôi đã chỉ định kích thước khối là vì tôi đã chỉ định số lượng, vì vậy kích thước khối sẽ ảnh hưởng đến lượng dữ liệu tôi nhận được, phải không?
robingrindrod

1
Ngay cả khi ghi trực tiếp vào đĩa CD, kích thước khối chỉ là vấn đề hiệu suất. Kích thước khối chỉ quan trọng khi ghi vào thiết bị băng .
Gilles 'SO- ngừng trở nên xấu xa'

8

Dựa trên những gì bạn đã mô tả, bạn nên làm một cái gì đó như thế này:

dd if=/dev/urandom of=testfile bs=1M count=699
mkisofs -o test_cdrom.iso testfile

Sau khi hoàn thành, bạn có thể đọc và viết đến và từ phương tiện quang học đến nội dung trái tim của bạn.

Một điều mà tôi muốn đề xuất là thay vì giả sử phương tiện quang học và sau đó cố gắng viết ISO thực tế và sau đó xác minh rằng bạn cũng có thể viết dữ liệu đích ISO một lần, vì nó sẽ cho bạn kết quả chính xác như bạn đang thử để đạt được mà không mất thời gian vào Write->Read->Verify->Format


0

Tạo một hình ảnh được tạo bởi các byte ngẫu nhiên không phải là một ý tưởng hay, bởi vì nó dẫn đến một hệ thống tệp ISO 9660 rõ ràng không hợp lệ. Thay vào đó, bạn nên tạo một tệp ngẫu nhiên lớn vẫn có thể được đặt trong hệ thống tệp ISO hợp lệ. Sau đó, bạn ghi hình ảnh ISO này và đọc nội dung của đĩa CD để so sánh với tệp gốc trên đĩa cứng, ví dụ như với md5sumhoặc sha1sum. Nếu tổng kiểm tra là như nhau, thì ổ đĩa của bạn vẫn ổn ở cả ghi và đọc đĩa CD.


Rất đánh giá cao sự giúp đỡ của bạn. Bạn có muốn làm rõ lý do tại sao nó quan trọng nếu dữ liệu là một hệ thống tệp ISO 9600 hợp lệ. Tất cả tôi thực sự quan tâm là dữ liệu thô và liệu nó có được đọc chính xác hay không.
robingrindrod

1
Lúc đầu, tôi nghĩ rằng một phần mềm ghi đĩa CD có thể từ chối viết một hình ảnh ISO không hợp lệ, nhưng có vẻ như không phải vậy. Chỉ không thêm vào tệp hình ảnh ngẫu nhiên .isohậu tố, bởi vì đó không phải là hệ thống tệp ISO 9660. Dù sao, nếu bạn so sánh hình ảnh ISO thay vì nội dung của hình ảnh ISO, bạn có thể gặp vấn đề nhỏ với các byte không theo dõi (xem phần này để biết chi tiết).
Francesco Turco

Cảm ơn các mẹo về số không. Bạn có biết những gì gây ra điều này? Ngoài ra, bạn có nguồn để xác minh rằng hình ảnh ISO chỉ có thể chứa các hệ thống tệp ISO 9660, vì trang Wikipedia nói rằng "Tên ISO được lấy từ hệ thống tệp ISO 9660 được sử dụng với phương tiện CD-ROM, nhưng được gọi là ISO hình ảnh cũng có thể chứa hệ thống tệp UDF (ISO / IEC 13346) hoặc hình ảnh đĩa DVD hoặc Blu-ray (BD). "
robingrindrod

Thật không may, tôi không biết điều gì gây ra sự hiện diện của các số 0 ở cuối. Đối với các hình ảnh khác với hệ thống tập tin ISO 9660, tôi chưa bao giờ nhìn thấy chúng. Nhưng hãy xem xét rằng tôi không phải là một chuyên gia. Vì vậy, hãy chờ xem ai đó biết nhiều hơn chúng ta.
Francesco Turco

Bài đăng này đề cập rằng các số 0 ở cuối có thể điền vào khối cuối cùng nếu dữ liệu không khớp đều vào các khối. Đây có phải là những gì bạn đã đề cập đến hoặc bạn đã trải nghiệm các khối bổ sung chứa đầy số không?
robingrindrod
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.