Có thể tạo một bản sao nóng của một hệ thống?


10

Tôi muốn sao lưu hệ thống của mình mà không cần tắt. Bản sao hệ thống cũng có thể chạy trong một máy khác.

Tôi đã cố gắng "dd" toàn bộ phân vùng hệ thống trên một đĩa khác, sau đó tôi đảm bảo rằng không có tác vụ quản trị nào được khởi chạy. Tôi nghĩ rằng tôi đã phải nói với grub để khởi động trên đĩa đó, vì vậy tôi đã thực hiện lệnh:

grub-install  /dev/sdc1 

nhưng tôi đã gặp lỗi này:

The file /boot/grub/stage1 not read correctly.

Tôi biết rằng tôi đang làm không phải là rất sạch sẽ, vì vậy bạn có một giải pháp tốt để đạt được mục tiêu của tôi hoặc một ý tưởng để giải quyết vấn đề grub?


Nếu bạn phải giữ cho nó chạy, điều đó có nghĩa là nó thực sự đang làm gì đó. Nếu đó là trường hợp, thì gần như chắc chắn rằng nội dung hệ thống của bạn sẽ thay đổi trong quá trình sao lưu. Điều này làm cho kết quả có phần khó lường - kiểm tra rất nhiều trước khi sử dụng trong sản xuất.
Joe

Câu trả lời:


8

Có một số lựa chọn mà mỗi người có sự đánh đổi. Bạn không thể sử dụng ddđể sao chép một hệ thống tập tin trong khi nó được gắn đọc / ghi hoặc bản sao sẽ bị hỏng do nguồn được thay đổi trong quá trình sao chép, vì vậy đích sẽ bị lỗi thời một phần và không một phần. Nếu bạn thực sự muốn có thể sử dụng ddđể sao chép phân vùng nóng, bạn có thể làm như vậy với ảnh chụp nhanh LVM . Điều này yêu cầu bạn đã cài đặt hệ thống bằng LVM ngay từ đầu, nhưng sau đó bạn có thể tạo ảnh chụp nhanh bất cứ lúc nào và vì ảnh chụp nhanh bị đóng băng và không được gắn kết, bạn có thể ddchụp ảnh nhanh một cách an toàn , sau đó xóa ảnh chụp nhanh. Mặt khác để sử dụngddlà nó lãng phí thời gian sao chép tất cả không gian chưa sử dụng trong ổ đĩa và yêu cầu đích ít nhất phải lớn, ngay cả khi hầu hết nguồn không được sử dụng.

Thay vì sử dụng dd, bạn chỉ cần sử dụng các công cụ sao lưu truyền thống như tarhoặc dumpđể sao lưu ảnh chụp nhanh. Điều này có lợi thế là không lãng phí thời gian sao chép không gian trống và có thể được khôi phục vào một phân vùng nhỏ hơn miễn là nó có không gian cho các tệp. Bạn cũng có thể trích xuất chỉ một số tệp để thực hiện khôi phục một phần. Bạn cũng không phải sử dụng LVM với phương pháp này: miễn là bạn chắc chắn chắc chắn rằng không có tệp nào được sửa đổi khi bạn tạo bản sao lưu, việc thực hiện trên hệ thống tệp được gắn kết là an toàn. Điều tồi tệ nhất có thể xảy ra là một tệp riêng lẻ được sửa đổi trong quá trình sao lưu sẽ bị hỏng, thay vì toàn bộ bản sao lưu bị hỏng, như có thể xảy ra dd.

Như bạn đã nhận ra, sau khi khôi phục hệ thống tập tin, bạn vẫn cần cài đặt lại grub để hệ thống khởi động. Tôi không chắc tại sao bạn lại gặp lỗi đó khi thử, nhưng có vẻ như bạn đang sử dụng grub-legacy, vì grub2 không có giai đoạn1.


Tôi đã không sử dụng LVM, nhưng tôi có thể, tôi đang tìm kiếm một giải pháp lâu bền. Là nó đủ để sao chép tất cả các cây hệ thống (không bao gồm Proc) và sau đó sửa đổi grub?
Gael

@Gael, đủ để sao chép tất cả các tệp và cài đặt lại grub, vâng. Bạn cũng có thể cần cập nhật UUID trong / etc / fstab. Lưu ý rằng nếu bạn đang sử dụng, tarbạn muốn loại trừ không chỉ / Proc, mà còn / dev, / sys và / run, hoặc sử dụng công --one-file-systemtắc để ngăn không cho nó đi xuống các hệ thống tập tin khác.
psusi

cảm ơn bạn, tôi sẽ thử với tar. Giải pháp này có thể cho phép kiểm soát hoàn toàn bản sao lưu.
Gael

3

Sử dụng một cái gì đó như rsynchoặc tarđể sao chép phân vùng có thể đơn giản hơn. Tôi sẽ gắn kết phân vùng trên một điểm gắn kết thứ hai như /mnttrước khi sao chép. Các tùy chọn này cũng cho phép bạn thay đổi kích thước hoặc loại phân vùng. Bạn có thể có cấu trúc trên các phân vùng bổ sung là tốt. Tôi thường có các phân vùng riêng cho /var/usr. Những điều này sẽ cần phải được xem xét là tốt.

Bạn có thể cần đào sâu vào grubtài liệu để xác định cách nhắm mục tiêu vào đĩa và phân vùng một cách chính xác. install-grubcó thể đưa ra các giả định không chính xác mà không làm những gì bạn muốn.

Có những công cụ mondocho phép bạn tạo CD phục hồi có thể khởi động với hệ điều hành của bạn được cài đặt trên nó.


Tôi đã sử dụng dd vì tôi đã nói với tôi rằng các công cụ sao chép tệp khác sẽ chỉ sao chép tệp chứ không phải mbr và bảng phân vùng. Tôi liếc nhìn về phía mondo, và đó có thể là giải pháp đơn giản nhất. Cảm ơn bạn
Gael

@Gael Nếu bạn chỉ nhân bản SD1, bạn sẽ không nhận được MBR. Có một số công cụ sẽ cập nhật MBR nếu cần. Nó thường có mã để tìm bản ghi khởi động.
BillThor

1

Tôi nghĩ rằng không có tùy chọn thực sự để thực hiện sao lưu đáng tin cậy hệ thống đang chạy ở cấp thiết bị: Hệ thống tệp của bạn sẽ bị hỏng vì bạn không thể đóng băng trạng thái hiện tại và thao tác sao lưu mất một khoảng thời gian đáng kể.

Tuy nhiên, bạn có thể thử các tùy chọn sau:

  1. Chạy hệ thống trong VM. Bạn có thể tạo một ảnh chụp nhanh của hệ thống và sau đó thực hiện sao lưu ảnh chụp nhanh này. Khi sao lưu xong, ảnh chụp nhanh có thể dễ dàng bị loại bỏ. Điều này giải quyết các vấn đề được đề cập ở trên.
  2. Thực hiện sao lưu ở cấp hệ thống tệp, không phải ở cấp thiết bị. Tôi có thể đề nghị rsnapshot cho việc này.

Tôi đang tìm kiếm một giải pháp cho phép sao lưu hệ thống mà không cần tắt. Vì vậy, bất kể phương thức được sử dụng, hệ thống sẽ phải là runinng. Nếu chỉ đủ sao chép hệ thống tập tin để sao chép hệ thống, rsync sẽ thực hiện công việc, điều gì mang lại rsnapshot?
Gael

rsnapshot cung cấp cho bạn nhiều bản sao lưu gia tăng khi bạn cần (hàng giờ, hàng ngày, hàng tuần, hàng tháng) và các bản sao lưu có sẵn trong cấu trúc thư mục đầy đủ mặc dù chúng là gia tăng.
Vilmantas Baranauskas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.