Nó phụ thuộc vào chính xác phân vùng dùng để làm gì và mục đích của bản sao là gì. Tuy nhiên, tôi sẽ nói rằng nói chung dd
là một công cụ không phù hợp để sao lưu hệ thống tập tin . Đó cũng không phải là mục đích của nó.
Nó sẽ lãng phí rất nhiều thời gian sao chép các phần trống của phân vùng.
Nó có thể dẫn đến sự không nhất quán nếu hệ thống tập tin hiện được gắn kết, một phần vì đây là thực thể ở cấp độ hệ điều hành và có thể không đồng bộ với thiết bị khối bên dưới. Gọi sync
ban đầu sẽ không giúp được nhiều với điều này, vì quá trình này không phải là tức thời.
Sử dụng cp -a
hoặc rsync
thay thế. Sau đó, bạn cần phải tạo phân vùng đích, vì vậy nó không hoàn toàn dễ dàng, nhưng nó an toàn và linh hoạt hơn nhiều. Nếu bạn cần tạo một hình ảnh hệ thống tập tin , xem bên dưới.
Nếu bạn đang có ý định sao chép hệ thống tập tin gốc, tuyệt đối không sử dụng dd
. Bạn phải sử dụng một cái gì đó như rsync -ax
(hoặc cp -ax
trên các thư mục toplevel riêng lẻ), bởi vì có một loạt các thứ KHÔNG phải có trong bản sao . Trên Linux, điều này bao gồm:
/dev
/lost+found
/mnt
/proc
/run
/sys
/tmp
Một số trong số này thực sự là giao diện kernel và không phải là thư mục thực trên đĩa. Nếu bạn sao chép chúng, bạn đang sao chép một loạt thông tin sẽ không áp dụng trong bản sao; Nếu bạn thử và chạy một hệ thống với nó, nó sẽ chỉ lãng phí không gian vì giao diện thực sẽ được gắn lên trên. Những người khác chứa thông tin tạm thời được sử dụng bằng cách chạy các quy trình và đó là một vấn đề, vì hệ thống sẽ không thể phân loại rác nếu bạn sao chép.
Nếu bạn muốn tạo một tệp hình ảnh của hệ thống tệp gốc (hoặc bất kỳ hệ thống tệp nào), hãy tạo một tệp hình ảnh trống - đây là một cách sử dụng thích hợp cho dd
:
dd if=/dev/zero of=whatever.img bs=1024 count=1000000
Đó là hình ảnh 1024 MB (1000000 * 1024). Điều chỉnh count
nếu bạn muốn nó một số kích thước khác. Tạo, ví dụ, một ext
hệ thống tệp trong tệp :
mke2fs whatever.img
Nó sẽ cảnh báo bạn đây không phải là một thiết bị khối thực sự. Tiến hành. Bây giờ gắn tập tin hình ảnh:
mount whatever.img /mnt/img
/mnt/img
phải tồn tại nhưng có thể bất cứ điều gì. Bây giờ bạn có thể rsync
(hoặc cp -a
) vào /mnt/img
. Nội dung sẽ vẫn còn bên trong whatever.img
khi bạn ngắt kết nối nó.
Tuy nhiên...
Để rõ ràng, chỉ sử dụng phương pháp hình ảnh hệ thống tập tin vừa mô tả nếu bạn thực sự cần một tập tin hình ảnh vì bất kỳ lý do gì. Nếu mục tiêu của bạn là sao chép phân vùng sang ổ cứng khác, bạn không cần hình ảnh : tạo phân vùng mới với hệ thống tệp trống trên ổ đĩa đó, gắn kết và sao chép vào đó. Thay vào đó, bạn chỉ có thể đặt nội dung hệ thống tập tin vào một thư mục trống và lưu trữ nó:
tar -czf myarchive.tar.gz [the directory path]
Sau đó, bạn có thể triển khai phần này trong một phân vùng hiện có (trống hoặc nếu không) bằng cách đặt nó trong toplevel và sử dụng:
tar -xzf myarchive.tar.gz
Coi chừng sẽ ghi đè lên các tệp hiện có nếu đường dẫn của chúng khớp với thứ gì đó trong kho lưu trữ. Nó sẽ để lại hệ thống phân cấp thư mục hiện có giống nhau.