Lệnh dd
là một công cụ mạnh mẽ trong Linux để sao lưu và phục hồi ổ đĩa, nhưng đôi khi quá trình này có thể bị gián đoạn do nhiều yếu tố như mất điện, nhiệt độ cao, hoặc đơn giản là cần phải dừng lại. Bài viết này sẽ hướng dẫn bạn cách tiếp tục quá trình sao lưu ổ đĩa bị gián đoạn bằng lệnh dd, cũng như giới thiệu các công cụ thay thế khác để đảm bảo an toàn dữ liệu.
Trước khi đi vào giải pháp, hãy cùng tìm hiểu các nguyên nhân phổ biến khiến quá trình sao lưu bằng dd
bị gián đoạn:
Nếu quá trình sao lưu bằng dd
bị gián đoạn, bạn có thể tiếp tục nó bằng cách sử dụng các tùy chọn seek
và skip
. Dưới đây là hướng dẫn chi tiết:
Trước tiên, bạn cần xác định vị trí cuối cùng mà dd
đã ghi vào ổ đĩa đích. Bạn có thể xem lại đầu ra của lệnh dd
trước khi nó bị gián đoạn. Thông tin này sẽ cho bạn biết số lượng bản ghi (records) đã được sao chép.
Ví dụ, nếu đầu ra hiển thị:
464938971+7 records in 464938971+7 records out 238048755782 bytes (238 GB) copied, 64559.6 s, 3.7 MB/s
Điều này có nghĩa là 464938971 bản ghi đã được sao chép hoàn tất.
Sau khi xác định được vị trí bị gián đoạn, bạn có thể sử dụng các tùy chọn seek
và skip
để tiếp tục quá trình sao lưu.
seek=X
: Bỏ qua X khối ở đầu ra (output file).skip=X
: Bỏ qua X khối ở đầu vào (input file).bs=Y
: Đặt kích thước khối là Y byte.Ví dụ, để tiếp tục quá trình sao lưu từ vị trí 464938971, bạn có thể sử dụng lệnh sau:
dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=512 seek=464938971 skip=464938971
Trong đó:
if=/dev/urandom
: Đường dẫn đến thiết bị đầu vào (input device). Thay thế bằng thiết bị nguồn của bạn.of=/dev/disk/by-uuid/etc
: Đường dẫn đến tệp đầu ra (output file). Thay thế bằng đường dẫn đích của bạn.bs=512
: Kích thước khối (block size) phải giống với kích thước khối đã sử dụng trong lệnh dd
ban đầu.seek=464938971
: Bỏ qua 464938971 khối ở đầu ra.skip=464938971
: Bỏ qua 464938971 khối ở đầu vào.Lưu ý rằng số lượng khối bạn cần bỏ qua có thể khác nhau tùy thuộc vào kích thước khối bạn đã sử dụng. Bạn nên trừ đi một vài khối để đảm bảo an toàn.
GNU dd
hỗ trợ tìm kiếm theo byte, cho phép tiếp tục chính xác bất kể kích thước khối:
dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=1M seek=238048755782 oflag=seek_bytes
if=/dev/urandom
: Đường dẫn đến thiết bị đầu vào (input device). Thay thế bằng thiết bị nguồn của bạn.of=/dev/disk/by-uuid/etc
: Đường dẫn đến tệp đầu ra (output file). Thay thế bằng đường dẫn đích của bạn.bs=1M
: Kích thước khối (block size).seek=238048755782
: Số byte đã sao chép.oflag=seek_bytes
: Chỉ định tìm kiếm theo byte.Mặc dù dd
là một công cụ mạnh mẽ, nhưng nó cũng có một số hạn chế. Dưới đây là một số công cụ thay thế mà bạn có thể sử dụng:
ddrescue
là một công cụ được thiết kế đặc biệt để phục hồi dữ liệu từ các ổ đĩa bị lỗi. Nó có khả năng bỏ qua các khu vực bị lỗi và tiếp tục sao chép từ các khu vực còn lại. ddrescue
tạo ra một log file, nó có thể tự động tiếp tục quá trình sao chép nếu bị gián đoạn.
sudo ddrescue /dev/sdb ./my-large-cd-copy.img ./my-large-cd-copy.log
/dev/sdb
: Ổ đĩa nguồn../my-large-cd-copy.img
: Đường dẫn đến tệp ảnh đích../my-large-cd-copy.log
: Đường dẫn đến tệp nhật ký.pv
không thực sự là một công cụ sao lưu, nhưng nó có thể được sử dụng để giám sát tiến trình của dd
và giới hạn tốc độ truyền dữ liệu, giúp kiểm soát nhiệt độ CPU và ổ cứng.
dd if=/dev/sda | pv -s 80G | dd of=/dev/sdb
Lệnh này sẽ hiển thị tiến trình sao lưu và cho phép bạn giới hạn tốc độ truyền dữ liệu để tránh quá nhiệt.
Ngoài ra, còn có nhiều công cụ sao lưu khác như rsync
, Clonezilla
, và các phần mềm sao lưu chuyên dụng khác. Các công cụ này thường cung cấp nhiều tính năng hơn dd
, chẳng hạn như sao lưu gia tăng, nén dữ liệu, và giao diện đồ họa.
Việc khôi phục quá trình sao lưu dd
bị gián đoạn không quá khó khăn nếu bạn nắm vững các tùy chọn seek
và skip
. Tuy nhiên, hãy luôn cân nhắc sử dụng các công cụ thay thế như ddrescue
hoặc các phần mềm sao lưu chuyên dụng để đảm bảo an toàn và hiệu quả hơn cho quá trình sao lưu dữ liệu của bạn. Việc sao lưu dữ liệu thường xuyên là vô cùng quan trọng để phòng tránh rủi ro mất mát dữ liệu không mong muốn.
Bài viết liên quan