Clonezilla sử dụng ddđằng sau hậu trường.
Giới thiệu về đĩa và phân vùng
Toàn bộ đĩa là một thiết bị như thế nào /dev/sda. Đây là đĩa đầu tiên, đĩa thứ hai là /dev/sdb, thứ ba /dev/sdcvv đĩa cũ kết nối thông qua một cáp IDE được đặt tên như hda, hdb, ... Một đĩa có thể có nhiều phân vùng như /dev/sda1. Phân vùng thứ hai trên đĩa /dev/sdalà /dev/sda2như vậy. Một hình ảnh (bản sao bằng chữ byte) có thể được tạo từ cả phân vùng và đĩa. Lưu ý rằng 512 byte đầu tiên của đĩa chứa MBR (Bản ghi khởi động chính).
Không nên gắn phân vùng khi tạo hoặc khôi phục hình ảnh, nếu không, mất dữ liệu có thể xảy ra khi đọc từ nó (tạo hình ảnh) hoặc lỗi dữ liệu bất ngờ và hỏng dữ liệu nếu bạn đang ghi vào nó (khôi phục từ hình ảnh).
Trong các ví dụ dưới đây, /dev/sda1là phân vùng mà từ đó một hình ảnh sẽ được tạo.
Các phân vùng và thiết bị đĩa trong /devchỉ có thể ghi bởi siêu người dùng (root) và người dùng của disknhóm. Tôi không thích chạy mọi thứ với quyền root, vì vậy để đảm bảo an toàn (ví dụ trong trường hợp bạn mắc lỗi đánh máy), tôi thay đổi nhóm tạm thời thành chính mình, vì vậy tôi có thể đọc và viết cho nó:
sudo chgrp my_user_name /dev/sda1
Nếu bạn bỏ qua lệnh trên, bạn đã thêm tiền tố vào ddcác lệnh bên dưới sudo.
Khái niệm cơ bản
Lệnh cơ bản để tạo hình ảnh từ phân vùng là:
dd if=/dev/sda1 of=disk.img
ifcó nghĩa là "tệp đầu vào", ofcó nghĩa là "tệp đầu ra". Mọi thứ trong Linux là một tập tin, thậm chí cả thiết bị.
Để khôi phục hình ảnh như vậy, hãy chạy:
dd if=disk.img of=/dev/sda1
Thứ tự không quan trọng, bạn cũng có thể đã viết ở trên dd of=/dev/sda1 if=disk.img.
Hình ảnh nén
Vì các phân vùng thường lớn, nên nén dữ liệu trước khi ghi vào hình ảnh:
dd if=/dev/sda1 | gzip > disk.img.gz
Điều này hoạt động bởi vì nếu ofđược bỏ qua, đầu ra được ghi vào "đầu ra tiêu chuẩn" là đường ống dẫn đến chương trình nén gzip. Đầu ra của nó được ghi vào disk.img.
Để khôi phục hình ảnh nén như vậy, hãy chạy:
gunzip -c disk.img.gz | dd of=/dev/sda1
Đây gunziplà lệnh ngược của gzip. -clàm cho đầu ra được ghi vào đầu ra tiêu chuẩn là đường ống dẫn ddlệnh. Bởi vì ifđược bỏ qua dd, đầu vào được đọc từ "đầu vào tiêu chuẩn" là đầu ra của gunzip.
Đọc từ một hình ảnh mà không khôi phục nó
Hình ảnh không nén có thể được gắn để bạn có thể đọc từ nó. Nếu bạn đã nén hình ảnh phân vùng của mình, hãy giải nén chúng trước ( disk.img.gzsẽ bị xóa, disk.imgsẽ được tạo. Hãy chắc chắn có đủ dung lượng!):
gunzip disk.img.gz
Ngoài ra, giải nén hình ảnh mà không chạm vào hình ảnh:
gunzip -c disk.img.gz > disk.img
Bây giờ tạo một thư mục mà đĩa có thể được gắn và gắn hình ảnh chỉ đọc ( ro):
sudo mkdir /mnt/wind
sudo mount -o ro disk.img /mnt/wind
Bây giờ bạn có thể xem các tập tin của bạn trong /mnt/wind. Khi hoàn tất, ngắt kết nối nó và xóa điểm gắn kết lỗi thời:
sudo umount /mnt/wind
sudo rmdir /mnt/wind
Kích thước nhỏ hơn, sử dụng CPU nhiều hơn, thời gian sao lưu và khôi phục lâu hơn
Nếu thời gian không phải là vấn đề và bạn không có nhiều dung lượng lưu trữ, bạn có thể sử dụng bzip2định dạng nén. Đơn giản chỉ cần thay thế gzipbằng bzip2ở trên. Việc sử dụng .bz2phần mở rộng cho các tệp nén bzip2 là phổ biến , vì vậy hãy làm như vậy.