Câu trả lời:
Bạn có thể chạy dd
trên đĩa đang chạy. Làm như vậy khi có những thay đổi lớn đối với cấu trúc đĩa nên tránh. Ngoài ra, bạn nên fschk
đến đích một khi bạn đã hoàn thành. Hệ thống càng yên tĩnh trong quá trình sao lưu càng tốt.
Chạy một bản sao lưu lạnh (hệ thống tệp không được đếm) là tùy chọn tốt nhất nếu bạn muốn sử dụng 'dd'.
Có các tùy chọn tốt hơn để sao lưu một hệ thống đang chạy.
tar
hoặc cpio
sẽ đọc các tệp và giao dịch hợp lý tốt với các tệp đang mở. Bạn có thể sẽ bỏ lỡ một số thay đổi xảy ra trong quá trình sao lưu.rsync
hành xử như tar
đối với các tệp đang mở và thiếu các thay đổi trong quá trình sao lưu. Nó có thể được sử dụng để thực hiện sao lưu ban đầu và thực hiện sao lưu gia tăng rất tốt. Khi chạy một bản sao lưu gia tăng, nó có thể bỏ qua việc sao chép các phần không thay đổi của tệp.Nếu bạn đang sao lưu một hệ thống tệp với cơ sở dữ liệu cơ sở dữ liệu điều tra hỗ trợ cho các bản sao lưu nóng.
Về mặt kỹ thuật là có thể (như trong "tự bắn vào chân"), nhưng rất khó để ý, đặc biệt là nếu bất kỳ phân vùng nào của đĩa đều có thể ghi được.
Hình ảnh kịch bản này:
dd
bắt đầu đọc đĩa lúc bắt đầu, và vui vẻ đi về phía cuối.dd
đã đi qua và sao chép phần đầu tiên của tệp, vì vậy nó sẽ ghi lại trạng thái không nhất quán khi đến phần thứ hai - mỗi phần sẽ từ một phiên bản khác nhau!Nếu bạn có khả năng hiển thị lại tất cả các phân vùng trên đĩa USB ở chế độ chỉ đọc, thì vấn đề này không nên xảy ra (nhấn mạnh vào " không nên "); điều này đòi hỏi phải chuẩn bị cài đặt ngoại tuyến / cài đặt ngoại tuyến đáng kể và thiết lập thời gian khởi động cho /
phân vùng - Tôi không nghĩ rằng bạn có thể thường xuyên nhắc lại /
r / o khi đang di chuyển, sẽ có nhiều thứ bị treo mà cần r / w truy cập.
Vì vậy, chạy bản sao có thể sẽ không phá vỡ hệ thống đang chạy, nhưng sẽ không cung cấp cho bạn bản sao lưu khả thi , hoàn thành nhiệm vụ. Tôi đặc biệt khuyên bạn nên tạo bản sao ngoại tuyến - sẽ yêu cầu tắt máy.
btrfs
.
Bạn không bao giờ nên tạo một hình ảnh của một phân vùng được gắn kết. Không có vấn đề nếu bạn khởi động từ nó hay không.
Nhưng bạn sẽ có một thời gian khó khăn để cố gắng ngắt kết nối phân vùng mà bạn đã khởi động từ đó.
Đối với điều này, tôi sử dụng dump(8)
trên FreeBSD. Ví dụdump -auLf /mnt/some-other-disk/root.dmp /
Các -L
tùy chọn cho phép sao chép của một hệ thống tập tin trực tiếp bằng cách lấy một bản chụp.
Các bãi chứa có thể được khôi phục bằng cách sử dụng restore(8)
.
Nó chỉ có thể hoạt động với UFS; Tôi không chắc chắn về điều đó.
Thật đáng ngạc nhiên khi có nhiều mẹo sao lưu không đề cập đến những điều sau đây:
Hệ thống linux (và hầu hết các hệ điều hành đa luồng) thường cần phải hoạt động trong khi bạn đang sao lưu và khôi phục.
Điều này dễ dàng đạt được nhất bằng cách không chạy HĐH trên nó trong khi bạn đang cố gắng hình ảnh nó.
Để sao lưu và khôi phục, nó có thể được gắn kết, và trên thực tế có lẽ phải như vậy, nhưng không phải bởi hệ điều hành đang chạy như là gốc của nó (/).
Lý do: Trong mọi hệ điều hành đa tác vụ, bao gồm linux, có các luồng mã đồng thời chạy ảnh hưởng đến các tệp khiến cho không thể thực hiện sao lưu hoặc khôi phục tập tin toàn hệ thống chính xác.
Đặc biệt, trong khi bạn đang lấy các tệp, có thể có một số tác vụ khác tạo hoặc xóa các tệp sao cho bản sao lưu của bạn sẽ không thể hiện hình ảnh chính xác và chính xác của hệ thống tệp tại bất kỳ thời điểm nào. Nếu bạn cố gắng khôi phục bản sao lưu này, bạn sẽ bị hỏng dữ liệu dẫn đến sự cố và các bất thường khác.
Tùy chọn: Sao lưu cần được thực hiện bằng phần mềm đặc biệt và / hoặc hệ thống đĩa (như Acronis trên Windows, ví dụ có thể sao lưu HĐH đang chạy) hoặc bởi một HĐH thứ cấp bên ngoài truy cập vào các tệp của HĐH không chạy mà bạn đang cố gắng sao lưu hoặc khôi phục.
!!! Vì vậy, khi bạn thấy các trang web yêu cầu bạn sử dụng Deja-dup chẳng hạn để thực hiện sao lưu, điều này chỉ hoạt động /home
và sau đó CHỈ nếu bạn không chạy bất kỳ chương trình nào ảnh hưởng /home
trong khi bạn đang chạy deja-dup. (Và thậm chí sau đó bạn có thể muốn vượt qua các ngón tay của mình trừ khi bạn thực sự biết những gì có thể chạm vào các tệp của mình thông qua một daemon.)
Tôi đã làm điều này với thành công trên môi trường thử nghiệm, với fsck và rsync cuối cùng để cải thiện cơ hội sao chép thiết bị tốt.
rsync
để cải thiện kết xuất toàn bộ đĩa (toàn bộ hệ thống tệp) dd
không? (Và, nếu bạn có quyền truy cập rsync
, tại sao bạn không sử dụng nó làm công cụ sao lưu chính chứ không phải là công cụ phụ, đồng hành?) chỉnh sửa câu trả lời của bạn để làm cho nó rõ ràng và đầy đủ hơn.
tar
,cpio
vàrsync
tất cả các công việc trong hệ thống tập tin , vì vậy đây có thể thích hợp.dd
, OTOH, hoạt động trực tiếp với các khối đĩa, bỏ qua FS.