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/sdc
vv đĩ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/sda
là /dev/sda2
như 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/sda1
là 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 /dev
chỉ có thể ghi bởi siêu người dùng (root) và người dùng của disk
nhó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 dd
cá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
if
có nghĩa là "tệp đầu vào", of
có 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 gunzip
là lệnh ngược của gzip. -c
làm cho đầu ra được ghi vào đầu ra tiêu chuẩn là đường ống dẫn dd
lệ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.gz
sẽ bị xóa, disk.img
sẽ đượ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ế gzip
bằng bzip2
ở trên. Việc sử dụng .bz2
phầ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.