Khôi phục hoàn toàn hệ thống linux


20

Tôi quen với việc sử dụng rsync để sao lưu các tệp khác nhau từ hệ thống của mình nhưng cách tốt nhất để khôi phục hoàn toàn máy là gì.

Những gì tôi đã cố gắng trong quá khứ là:

  1. Thực hiện định dạng cơ bản / cài đặt lại từ đĩa cài đặt Fedora
  2. Đảm bảo kết nối mạng được bật
  3. Sao chép mọi thứ từ bản sao lưu rsync trên đầu hệ thống mới được cài đặt

Cách này hoạt động nhưng tôi không nghĩ mọi gói được cài đặt đều hoạt động 100% sau đó.

Tôi muốn có thể khôi phục hệ thống của mình với lượng nỗ lực tối thiểu và mọi thứ hoạt động giống như tại thời điểm sao lưu được thực hiện. Ngoài ra nếu có thể cài đặt vào các máy khác và thực tế có hai máy có cùng gói và dữ liệu.


Khi bạn nói rằng bạn muốn cài đặt trên các máy khác, bạn có nghĩa là 'máy / máy giống hệt hoặc khác giống như máy tính để bàn và máy tính xách tay?
Ichorus

phần cứng sẽ khác nhau nhưng muốn có các gói phần mềm giống nhau trên cả hai
Simon Foster

Câu trả lời:


17

Đây là những gì tôi đã làm (cái này giả sử một đĩa đơn, tại / dev / sda)

  • sử dụng dd để sao lưu MBR và bảng phân vùng: "dd bs = 512 Count = 1 if = / dev / sda of = / backups / sda.layout"

  • sử dụng rsync để sao chép toàn bộ nội dung với nội dung như: "rsync -axvPH --numeric-ids ..."

Khi khôi phục tôi làm điều này:

  • khởi động máy đích bằng sysrescuecd , thông thường tôi sẽ có tệp 'sda.layout' trên thanh USB.

  • khôi phục bảng phân vùng MBR / với dd: "dd bs = 512 Count = 1 if = / path / to / sda.layout of = / dev / sda"

  • Sử dụng partprobe (cảm ơn Marker ) để lấy kernel đọc lại bảng phân vùng.

  • Gắn kết tất cả các phần khác nhau dưới / khôi phục /. Tôi tạo các điểm gắn kết giống hệt trong khôi phục, vì vậy nếu tôi có / boot, / var trên nguồn của mình, tôi kết thúc với / restore / boot, / restore / var, v.v.

  • sử dụng rsync để khôi phục lại toàn bộ.


3
Tôi đã thực hiện điều này nhiều lần và có lợi thế là sử dụng các lệnh CLI linux tiêu chuẩn. Tôi sử dụng rsnapshot, một tập lệnh perl xung quanh rsync để tạo bản sao lưu cho máy chủ trung tâm. Sau đó, rsync toàn bộ trở lại sau khi khởi động từ sysrescuecd và lấy bảng phân vùng. BTW, "partprobe" sẽ đọc lại bảng phân vùng
Mark Porter

OK, đây có thể được coi là một hack hèn hạ nhưng vì bạn có thể có kernel đọc lại bảng phân vùng bằng cách phát hành một sysctl () như fdisk, bạn cũng có thể có fdisk - không giống như partprobe luôn có trong trải nghiệm của tôi - làm nó: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug

Cảm ơn những lời đề nghị của mọi người, tôi biết rằng phải có một giải pháp tốt hơn ngoài kia. Sẽ thử những gợi ý này và xem những gì làm việc tốt nhất cho tôi.
Simon Foster

3
Đừng quên đếm với dd! "Dd bs = 512 if = / dev / sda of = / backups / sda.layout Count = 1" và "dd bs = 512 if = / path / to / sda.layout of = / dev / sda Count = 1"
Steven

@Steven: Tào lao! Cảm ơn đã bắt. Tôi có thể bình luận lên không?
kbyrd

6

Tôi không bao giờ nhân bản hệ thống hoàn toàn. Bạn không bao giờ biết những gì có thể thay đổi và hình ảnh nhân bản hệ thống của bạn đã hết hạn vào thời điểm một thay đổi xảy ra. Cách tốt nhất để làm điều đó là thiết lập một quy trình cho phép bạn sản xuất các hệ thống giống hệt nhau về mặt chức năng. Một khả năng là một cái gì đó như Kickstart, hoặc AutoYaST hoặc các công cụ tương tự. Giữ các bản sao lưu tốt cho cấu hình của bạn và lý tưởng nhất là sử dụng hệ thống quản lý cấu hình như Bcfg2, Puppet hoặc CFEngine để định cấu hình mọi thứ thay vì thực hiện bằng tay. Sau đó, khi bạn cần tạo một hệ thống mới tương tự như một hệ thống khác mà bạn có hoặc tạo lại một hệ thống hiện có, đó là một quy trình đơn giản và được xác định rõ ràng.


3

Sẽ mất nhiều nỗ lực hơn trước, nhưng KickstartRevisor cho phép bạn tùy chỉnh cài đặt và sử dụng nó trên các máy khác. Bạn có thể bao gồm các phiên bản tùy chỉnh của tập tin cài đặt của bạn.

Bạn cũng có thể muốn xem xét việc giữ thư mục nhà của bạn trên một phân vùng riêng. Bạn có thể để phân vùng đó một mình trong khi thực hiện cài đặt sạch trên một phân vùng khác.


2

Lấy một bản sao của đĩa CD khôi phục hệ thống và sau khi cài đặt tối thiểu ban đầu, hãy khởi động từ nó, gắn kết và chroot vào đĩa của bạn, sau đó thực hiện rsync. Sau khi kết thúc, bạn có thể cần chạy update-grub để khởi động nó từ đúng thiết bị khởi động và kernel.


2

Tôi đã luôn nghĩ rằng cách Gentoo cài đặt một hệ thống mới (từ bản sao lưu hoặc cách khác) là tốt nhất do tính đơn giản của nó.

  1. Tạo hệ thống làm việc, tối thiểu.
  2. Tải hệ thống làm việc như một ổ đĩa cứng trong một livecd.
  3. Tar hệ thống tập tin lên và lưu ở đâu đó.
  4. Tải hệ thống đích với một livecd.
  5. Chuẩn bị ổ cứng mục tiêu và gắn kết nó.
  6. Tháo ổ cứng.
  7. Nhập chroot.
  8. Thiết lập bộ nạp khởi động và những thứ phụ thuộc hệ thống khác.
  9. Khởi động lại và đi.
  10. Cài đặt phần mềm mới / sao chép thư mục người dùng / thêm các tệp khác nếu cần.

2

Hãy thử clonezilla sống cd. Bạn có thể khởi động vào một phiên trực tiếp và hình ảnh máy của bạn mà không phải cài đặt bất cứ điều gì. Sau đó, bạn có tùy chọn lưu trữ bản sao của hình ảnh trên mạng chia sẻ hoặc máy từ xa, v.v.


0

Nếu đó là cùng một máy, tôi sẽ chỉ sử dụng ddđể tạo ảnh đĩa, sau đó đánh giá lại nó khi cần thiết (có thể thay đổi một số cấu hình sau đó nếu phù hợp).

Nếu bạn đang chuyển đổi phần cứng, tôi đã thành công trong việc tạo tarball hoặc sao lưu rsync hoàn chỉnh của hệ thống tập tin gốc. Tôi không chắc tại sao trước tiên bạn cần cài đặt hoàn chỉnh - miễn là bạn sao lưu toàn bộ, cài đặt Fedora cơ sở không phải là điều kiện tiên quyết.


0

Thủ tục của bạn có thể gây ra nhiều vấn đề, và nên tránh.

Có hai cách chính được đề xuất để giải quyết vấn đề này và thứ ba nếu bạn hoàn toàn cố gắng xây dựng môi trường phát triển.

Hình ảnh

Nếu phần cứng mà bạn sẽ khôi phục TO sẽ giống nhau hoặc tương tự nhau, hãy sử dụng công cụ hình ảnh đĩa để tạo một bản sao của toàn bộ ổ đĩa cứng hoặc mảng. Khi bạn muốn khôi phục, chỉ cần hình ảnh lại các máy được đề cập với hình ảnh này. Nếu bạn hình ảnh cho nhiều máy, hãy lưu ý rằng bạn sẽ cần cập nhật mọi cài đặt dành riêng cho máy trên các thiết bị khác (tên máy chủ, địa chỉ IP tĩnh, v.v.) để chúng không xung đột với nhau.

Để thực hiện hình ảnh thực tế, tôi muốn giới thiệu bất kỳ công cụ hoặc sản phẩm nào có thể sao chép ổ đĩa cứng.

Cấu hình / Sao lưu thư mục chính

Trên máy chính của bạn, thường xuyên sao lưu (với bất kỳ phương thức nào bạn thích) bất kỳ thư mục nào sau đây (hoặc các thư mục khác) bạn yêu cầu:

/ home - Tất cả các cài đặt cá nhân, tài liệu và tệp
/ etc - cấu hình
/ opt - phần mềm đặc biệt không được cài đặt thông qua trình quản lý gói
/ usr / local - phần mềm đặc biệt không được cài đặt thông qua trình quản lý gói
/ var - log

Khi khôi phục, hãy cài đặt lại HĐH trên các máy đang được đề cập, sau đó sao chép từng tệp này (hoặc chỉ các tệp có liên quan) vào vị trí thích hợp của nó.

Máy ảo với ảnh chụp nhanh

Tạo một máy ảo trong VMWare (hoặc bất cứ thứ gì bạn thích). Khi nó được cấu hình như bạn muốn, hãy tạo một ảnh chụp nhanh. Ảnh chụp nhanh này sau đó có thể dễ dàng được khôi phục cho bất kỳ số lượng máy ảo mới hoặc hiện có.

Nói chung, bạn chỉ nên sao lưu dữ liệu và cấu hình (tuy nhiên bạn xác định chúng). Hệ điều hành và phần mềm có thể được xây dựng lại một cách tầm thường bất cứ lúc nào: chỉ nội dung của riêng bạn là có giá trị. Nếu thiết lập này là để phát triển và bạn cần đảm bảo một môi trường giống hệt nhau (trái ngược với việc đơn giản là làm mọi thứ hoạt động trở lại), thì ảnh chụp nhanh trong máy ảo thực sự là lựa chọn tốt nhất của bạn.

Hình ảnh là giải pháp vũ phu. Nếu bạn có thể, chỉ cần sao lưu dữ liệu của bạn và đừng lo lắng về hệ điều hành. Cố gắng khôi phục nó hoàn toàn là yêu cầu rắc rối.

Nếu bạn có thể làm rõ ý định cuối cùng của bạn là gì ở đây, tôi có thể cung cấp một giải pháp chi tiết hơn.


0

Vì bạn nói "phần cứng sẽ khác", SystemImager có thể rất tiện dụng.

Nó chỉ là một loạt các tập lệnh bao bọc xung quanh PXE và Rsync. Do đó, "bản sao lưu" mà nó tạo ra chỉ là một cấu trúc thư mục hoàn chỉnh của máy chủ Linux được sao lưu của bạn. Bạn có thể "cd" vào thư mục này và thay đổi công cụ xung quanh khi bạn cho ăn. (SystemImager tự quản lý việc thay đổi cài đặt Mạng khi bạn đẩy hình ảnh ra.)

Bạn có thể chroot vào máy chủ được sao lưu của mình và chạy yum hoặc apt để cài đặt phần mềm trước khi bạn đẩy hình ảnh ra.

Chỉnh sửa: Bạn có thể xem tập lệnh SI tạo phân vùng / khối lượng logic và sửa đổi nó theo kích thước đĩa của các máy đích. Bạn cũng có thể thêm / xóa các mô-đun hạt nhân.


0

Tôi đã rất may mắn với Mondo Cứu hộ. Về cơ bản, nó sao lưu tất cả các tệp và phân vùng của bạn vào đĩa CD có thể khởi động để sử dụng sau. Nó có thể xử lý các thay đổi trong phân vùng và ổ đĩa.

http://www.mondoresTHER.org/



0
  • Cách an toàn nhất là sao chép toàn bộ đĩa hoặc ít nhất là các phân vùng có liên quan và khôi phục chúng bằng Live CD.

  • Một phương pháp hiệu quả hơn về không gian khác là sử dụng dump (xfsdump cho XFS), nhưng trong trường hợp này, bạn sẽ phải tạo lại (định dạng) các phân vùng bằng tay. Đừng quên tạo chúng với cùng tham số, đặc biệt là UUID và LABEL.

  • Bạn cũng có thể sử dụng tar với --xattrs tham số để lưu các thuộc tính mở rộng của mỗi tệp.


1
Rsync hiện đại trên Linux có -X và -A cho các thuộc tính mở rộng và ACL tương ứng.
kbyrd

0

partimage và partclone (các bộ phận của Clonezilla) là các tiện ích hữu ích để tạo hình ảnh hệ thống đầy đủ.

Như bạn đã xác định, hình ảnh hệ thống đầy đủ không nhất thiết phải là hệ thống di động: thường là do tên thiết bị.

Nó có thể đơn giản như cài đặt lại GRUB (tốt nhất là trên một phân vùng khởi động / riêng biệt) và MBR sau khi chụp ảnh (ví dụ như LiveCD).

Một cách tiếp cận khác là sử dụng các công cụ Quản lý cấu hình để xác định các chính sách được áp dụng cho hình ảnh cơ sở (như hộp cơ sở Vagrant); và sao lưu dữ liệu riêng biệt vào khối và / hoặc lưu trữ đối tượng (EBS / S3, Lưu trữ khối Openstack / Lưu trữ đối tượng Openstack)

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.