Chính xác thì lệnh dd làm gì?


8

Vài ngày trước, tôi đã rất vui mừng khi phát hiện ra rằng việc viết một hình ảnh iso vào USB không khó lắm nếu không có sự trợ giúp của chương trình bên thứ ba được thiết kế rõ ràng để làm như vậy. Nhưng lệnh (hoặc chương trình) tạo điều kiện thuận lợi cho việc này - dd - đánh đố tôi.

Theo Wikipedia, nó được thiết kế để sao chép và chuyển đổi dữ liệu thô, nhưng thực lòng tôi thấy định nghĩa này rất không rõ ràng và mơ hồ. Tôi hiểu rằng nó cho phép bạn biến một phần dữ liệu thành dữ liệu khác, nhưng điều gì xảy ra nếu tệp đầu ra được chỉ định quá nhỏ để được chuyển thành tệp đầu vào được chỉ định?

dd if=giant_file of=tiny_file

Ngoài ra, khi tôi tạo USB có thể khởi động bằng tệp hình ảnh, USB sẽ đạt được loại isofs của hệ thống tệp , nhưng nếu tôi viết tệp lưu trữ hoặc thực thi vào ổ đĩa, nó sẽ giữ lại loại hệ thống tệp thông thường.

Bất kỳ sự làm rõ nào về những gì lệnh dd thực sự làm hoặc cách nó hoạt động ở mức thấp hơn sẽ được đánh giá cao. Cảm ơn!

Câu trả lời:


8

ddthực hiện sao chép từng byte từ nguồn tới đích, với một chuyển đổi tùy chọn được chỉ định bởi convđối số. Nó thực hiện đọc và ghi theo quy định của *bs*flagtùy chọn, với phạm vi được định nghĩa bởi count, skipseektùy chọn.

Điều gì xảy ra nếu tệp đầu ra được chỉ định quá nhỏ để được chuyển thành tệp đầu vào được chỉ định?

Nếu ofquá nhỏ để chứa ifthì dữ liệu bị cắt bớt để phù hợp. Lưu ý rằng nếu oflà một tập tin thông thường thì nó bị ghi đè.


1
ofbị ghi đè ngay cả khi đó không phải là tệp - đây là một cách rất hay để (vô tình?) phá hủy phân vùng / ổ đĩa! Đó là lý do tại sao việc nhân đôi và có thể kiểm tra đích đến nếu đó là ổ đĩa / phân vùng là rất quan trọng, để đảm bảo bạn có đúng.
Bob

1
Về mặt kỹ thuật, nó ghi vào đối tượng hơn là ghi đè lên nó.
Ignacio Vazquez-Abrams

Cảm ơn câu trả lời. Điều gì sẽ xảy ra nếu bạn không bao gồm bất kỳ đối số nào, nhưng làm điều gì đó như dd if=executable of=archive.tar, giả sử rằng cả hai đều có cùng kích thước. Các kho lưu trữ sẽ được chuyển đổi hoàn hảo thành thực thi?
ICoffeeCons đếm

1
Nó sẽ làm một bản sao byte-cho-byte từ executableđến archive.tar512 byte tại một thời điểm. Nó sẽ không biến nhị phân thành một kho lưu trữ.
Ignacio Vazquez-Abrams

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.