Hình ảnh hệ thống chạy hệ thống Debian?


22

Có thể sao lưu hệ thống Debian đang chạy vào một loại tệp hình ảnh nào đó, đơn giản có thể được ghi lại vào một đĩa cứng khác bằng dd trong trường hợp lỗi hệ thống Debian gốc (được sao lưu) không?

Tôi đặc biệt tìm kiếm một công cụ có sẵn trực tiếp trong các kho lưu trữ, vì tôi có Debian Wheezy chạy trên raspberry pi và do đó, tôi cần hỗ trợ cho kiến ​​trúc ARM, được cung cấp khá đáng tin cậy cho các gói của kho lưu trữ Debian.


2
Tôi không khuyên bạn nên thử lấy một bản sao chặn cho khối từ hệ thống tập tin được gắn kết rw. Viết nhỏ nhất có thể làm hỏng nó và bạn nghĩ rằng bạn có một bản sao lưu khả thi. Vì vậy, mount -o remount,roổ đĩa bạn đang sao chép nếu bạn chọn dd, dumphoặc tương tự. Sao chép héo hệ thống tập tin bằng rsynchoặc bất kỳ phương pháp nào khác bao gồm cpan toàn cho hệ thống trực tiếp.
WhimsicalWombat

Câu trả lời:


15

ddsẽ tốt nếu bạn không phiền khi tạo một tệp hình ảnh có kích thước chính xác bằng đĩa thô của bạn. rsynclà tốt nếu bạn muốn truy cập cấp tập tin dễ dàng. Nhưng phương tiện tiêu chuẩn để sao lưu hệ thống tập tin là dumprestore( aptitude install dump).

Đối với một thiết bị như Raspberry Pi, tôi sẽ sao lưu như sau, giả sử bảng phân vùng MS-DOS và đĩa là / dev / sda:

  • dd if=/dev/sda of=sda-boot-sectors.img count=2048 để có được một hình ảnh của phần khởi động của đĩa.
  • fdisk -lu /dev/sda >sda-partition-table.txt để sau này tham khảo của con người.
  • dump -0af sda1-root-level0.dump /dev/sda1 và lặp lại cho mỗi phân vùng bạn muốn sao lưu.

Sau đó, bạn có thể nén rất nhiều và để nó ở một nơi an toàn. Để khôi phục, bạn sẽ sử dụng ddđể khôi phục bảng phân vùng và khởi động các thành phần, tải lại bảng phân vùng, tạo (các) hệ thống tệp mới và sử dụng cd /mnt/new-filesystem; restore -rf /some-location/sda1-root-level0.dump.

Những mặt tích cực:

  • dump nhận được một bản sao hoàn chỉnh của hệ thống tệp, bao gồm ACL, thuộc tính mở rộng, quyền sở hữu, tệp thưa thớt, thuộc tính hệ thống tệp đặc biệt - mọi thứ đều được đổ nguyên trạng.
  • Nó sẽ chỉ sao chép các khối bạn cần, bỏ qua những khối không sử dụng.
  • Đó là công cụ unix tiêu chuẩn và có thể đọc được bởi rất nhiều công cụ unix khác.

Nhược điểm:

  • nó sẽ tạo ra các snapshot bị hỏng nếu hệ thống tập tin được ghi vào trong kết xuất
  • việc gắn hình ảnh được sao lưu trở nên khó khăn hơn (mà bạn có thể làm với hình ảnh đĩa) hoặc đến các tệp riêng lẻ (mà bạn có thể nhận được bằng các rsyncbản sao lưu).
  • Đó là loại hệ thống tập tin cụ thể. Bạn có thể kết xuất một ext3hệ thống tập tin và khôi phục nó trong một hệ thống ext4, nhưng bạn có thể kết xuất bất kỳ loại hệ thống tập tin nào. Hầu hết các hệ thống tập tin trưởng thành có dumpphiên bản nợ của họ . Các Debian tiêu chuẩn dumpkhông ext2, ext3ext4. Nếu bạn sử dụng hệ thống tệp dành riêng cho Flash, các tùy chọn của bạn có thể khác.

Nó không được nêu trong trang quản lý dumprằng hệ thống tập tin không nên được ghi vào. Ý tôi là, điều này nghe có vẻ như là một hạn chế hợp lý, nhưng thật đáng tiếc vì nó không được đề cập trong trang này, do đó ai đó có thể mắc lỗi này ...
imz - Ivan Zakharyaschev

Nhờ bài đăng của bạn, tôi đã tìm hiểu về công cụ này (kết xuất / khôi phục). Tôi sẽ sử dụng nó để tạo một bản sao của một hệ thống tập tin với nội dung như:mkfs.ext4 /dev/sda1; mount /dev/sda1 /mnt/disk; cd /mnt/disk; dump -0af - /dev/sda5 | restore -rf -
imz - Ivan Zakharyaschev

5

Sử dụng ddcho boot-sector và rsync -aHScho các tập tin. Bạn phải loại trừ các hệ thống tệp "ảo" như / Proc / sys và mọi đĩa RAM (tmpfs).

Nếu bạn muốn giữ phân vùng là tốt, bạn có thể kết xuất nó với sfdiskhoặc tạo lại nó với parted.


Cảm ơn, nghe có vẻ rất thú vị, bạn đã từng nói điều này trong quá khứ? Làm cách nào để tạo một hình ảnh hoàn chỉnh từ những phần này, chỉ cần sử dụng thiết bị loopkack? (Vâng, muốn giữ lại phân vùng và vân vân muốn một hình ảnh đã sẵn sàng để được ghi vào một thẻ SD mới / đĩa mà không không quan trọng hơn nữa.)
stefan.at.wpf

@ stefan.at.wpf Tôi vừa trộn một số giải pháp của mình để sao chép máy ảo, tạo máy chủ vật lý (autoyast / kistart) tạo ra một gương raid1 từ một hệ thống không được nhân đôi và cách thông thường để sao chép các phần (tĩnh) của hệ thống tập tin cho các nút cụm. Tôi không sử dụng myselv này. Phương pháp của tôi sẽ là tự động cài đặt máy chủ mới (bao gồm máy khách dự phòng) và sau đó khôi phục thông qua sao lưu nội dung của máy chủ cũ sang máy chủ mới.
Nils

4

Đối với Debian , bạn thực sự chỉ cần sao lưu dữ liệutệp cấu hình .

Để sao lưu trạng thái hiện có:

  • Sao lưu các lựa chọn gói với dpkg --get-selections > dpkg_selections.
  • Sao lưu cơ sở dữ liệu gỡ lỗi với sudo debconf-get-selections > debconf_selections.

Để áp dụng điều này cho một hệ thống mới:

  • Đầu tiên áp dụng các lựa chọn gỡ lỗi với sudo debconf-set-selections < debconf_selections.
  • Áp dụng lựa chọn gói với dpkg --set-selections < dpkg_selections.
  • Cài đặt gói với apt-get dselect-upgrade.

Dữ liệu của bạn chủ yếu phải nằm trong /home/var(ví dụ: /var/lib/mysqlđối với MySQL, /var/wwwđối với Apache, v.v.). Bạn sẽ có thể tìm ra ứng dụng nào quan trọng đối với bạn.

Cấu hình sẽ chủ yếu trong /etc. Một lần nữa, không khó để chọn ra những gì quan trọng đối với bạn.


Để được debconf-get-selectionchạyapt-get install debconf-utils
pandita

1

Tôi không biết, nếu điều này là tốt để làm, khi hệ thống đang chạy, nhưng đây là những gì tôi làm.

sudo dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

Như tôi đã nói, có lẽ có một giải pháp tốt hơn, trong trường hợp đó tôi cũng muốn biết nó!


1

Tôi đã thử rất nhiều phần mềm sao lưu và khôi phục và không bao giờ hài lòng. Đây là những gì tôi làm bây giờ: Tôi đã cài đặt Debian thứ hai trên một máy tính dự phòng (cùng MB, thẻ NIC, v.v.). Mỗi tối, tôi đồng bộ hóa từ máy A sang máy B. Có một số tệp mà tôi giữ lại (/ etc / mạng / giao diện, / etc / hosts, / etc / hostname) vì tôi không muốn xung đột giữa hai hệ thống đang chạy. Trên thực tế, tôi có bản sao của chúng trong một thư mục khác. Tôi cũng vô hiệu hóa một số dịch vụ mà tôi không cần phải chạy trên máy B (postfix, mysql, v.v.). Tôi có một đoạn script được viết trên máy B về cơ bản sẽ biến nó thành máy A (thay thế các tệp mà tôi đã giữ lại), khởi động lại NIC và kích hoạt các dịch vụ đã bị vô hiệu hóa. Tất nhiên máy A cần phải tắt khi tôi chạy tập lệnh hoặc sẽ có sự tàn phá. Tôi kiểm tra máy B hàng tháng bằng cách tắt máy A, chạy tập lệnh, và thực hiện một số thử nghiệm để đảm bảo nó được cập nhật và chạy đúng. Nó hoạt động như một say mê!


0

Kiểm tra Clonezilla. Tôi thấy nó được liệt kê trong repos Debian tiêu chuẩn. http://clonezilla.org/

Chỉnh sửa: Có thể là không, Clonezilla liệt kê các yêu cầu trên trang trước của họ: "Bộ xử lý X86 hoặc x86-64"


Mặc dù vậy, dự án thú vị, dù sao cũng cảm ơn bạn :-)
stefan.at.wpf

0

Để sao lưu số pi của mình, tôi tháo thẻ nhớ microSD và cắm nó vào máy tính xách tay của mình. Sau đó chạy a ddđể tạo một tệp trên máy tính xách tay của tôi trên toàn bộ đĩa, như trên:

dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

2
Đây là nghĩa đen bỏ qua phần quan trọng nhất của câu hỏi. Câu hỏi đặt ra là làm thế nào để tạo một hình ảnh trực tiếp của một hệ thống và vào thời điểm bạn di chuyển các đĩa xung quanh bạn tốt hơn nên tắt hệ thống.
Còi báo

0

Sử dụng hệ thống trở lại. Tôi đã làm cho nó hoạt động ngay cả với kéo dài debian. Nó cung cấp cho bạn một usb khởi động trực tiếp đẹp với chính xác máy tính để bàn được cấu hình của bạn.

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.