Làm cách nào để di chuyển cấu hình giữa các máy tính có phần cứng khác nhau?


9

Tôi muốn chuyển cấu hình của máy tính để bàn Ubuntu sang một hộp mới với phần cứng khác nhau. cách dễ nhất để làm điều này là gì? / etc / chứa các cài đặt cụ thể của máy và phần cứng vì vậy tôi không thể sao chép nó một cách mù quáng. Một vấn đề tương tự tồn tại cho các gói cài đặt.

chỉnh sửa: Đây là một bước chuyển từ x86 sang x86-64.


@Gilles Tôi nghĩ rằng "phần cứng khác nhau" xứng đáng với một câu hỏi khác, đặc biệt là việc chuyển từ x86 sang x86-64.
phunehehe

Đối với trường hợp đơn giản hơn khi kiến ​​trúc bộ xử lý giống nhau, hãy xem Di chuyển cài đặt linux sang máy tính mới . @phunehehe: Câu hỏi ban đầu không đề cập đến sự khác biệt về kiến ​​trúc.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


7

Đầu tiên, nếu bạn tiếp tục chạy nhị phân 32 bit, bạn sẽ không thực sự thay đổi kiến ​​trúc bộ xử lý: bạn vẫn sẽ chạy bộ xử lý x86, ngay cả khi nó cũng có khả năng làm những việc khác. Trong trường hợp đó, tôi khuyên bạn nên sao chép cài đặt của bạn hoặc chỉ đơn giản là di chuyển đĩa cứng, như được mô tả trong Di chuyển cài đặt linux sang một máy tính mới .

Mặt khác, nếu bạn muốn có một hệ thống 64 bit (theo thuật ngữ Ubuntu: amd64kiến trúc), bạn cần cài đặt lại, vì bạn không thể cài đặt amd64các gói trên i386hệ thống hoặc ngược lại. (Điều này sẽ thay đổi khi Multiarch đi cùng).

Nhiều tùy chỉnh sống trong thư mục chính của bạn và bạn có thể sao chép nó vào máy mới. Cài đặt hệ thống không thể được sao chép dễ dàng do thay đổi kiến ​​trúc bộ xử lý.

Trên Ubuntu 10.10 trở lên, hãy thử OneConf .

OneConf là một cơ chế để ghi thông tin phần mềm trong Ubuntu One và đồng bộ hóa với các máy tính khác khi cần. Trong Maverick, danh sách các phần mềm đã cài đặt được lưu trữ. Điều này cuối cùng có thể mở rộng để bao gồm một số cài đặt ứng dụng và trạng thái ứng dụng. Các công cụ khác như Stíp có thể cung cấp các cài đặt / điều khiển nâng cao hơn.

Một trong những điều chính bạn sẽ muốn sao chép trên bản cài đặt mới là tập hợp các gói đã cài đặt. Trên các bản phân phối dựa trên APT, bạn có thể sử dụng aptitude-create-state-bundlelệnh (một phần của aptitudegói) để tạo một kho lưu trữ chứa danh sách các gói đã cài đặt và cấu hình gỡ lỗi của chúng và aptitude-run-state-bundletrên máy mới. (Cảm ơn trực quan đã cho tôi biết aptitude-create-state-bundle.) Xem thêm danh sách các gói được cài đặt rõ ràng của Ubuntu và Super User và Hỏi các câu hỏi Ubuntu được trích dẫn ở đó, đặc biệt là câu trả lời của Telemachus , về cách thực hiện phần này theo cách thủ công.

Đối với những thứ bạn đã thay đổi /etc, bạn sẽ cần xem lại chúng. Nhiều người phải làm với các cài đặt phần cứng hoặc mạng cụ thể và không được sao chép. Những người khác phải làm với sở thích cá nhân - nhưng bạn nên đặt tùy chọn cá nhân trên cơ sở cho mỗi người dùng bất cứ khi nào có thể, để các cài đặt được lưu trong thư mục chính của bạn.

Nếu bạn có kế hoạch trước, bạn có thể sử dụng etckeeper Cài đặt v.v. để đặt /etcdưới sự kiểm soát phiên bản ( quickkeeper quickstart ). Bạn không cần biết bất cứ điều gì về kiểm soát phiên bản để sử dụng etckeeper, bạn chỉ cần bắt đầu học nếu bạn muốn tận dụng lợi thế của nó để làm những việc ưa thích.


Bạn có thể giải thích phần về các vấn đề với vòm bộ xử lý. Tôi hy vọng rằng không nên có vấn đề gì vì anh ấy chuyển từ x86-32 sang x86-64.
tshepang

1
@Tshepang: Chừng nào bạn không thay đổi kiến trúc, nó đơn giản để sao chép toàn bộ cài đặt ( /home, /etc, /var, /usrvà tất cả) và chỉ cần chỉnh sửa vài các tập tin trong etcđó chỉnh sửa cần thiết. Đó không phải là một tùy chọn nếu bạn đang chuyển sang một kiến ​​trúc khác, bởi vì bạn cần cài đặt lại tất cả các gói nhị phân.
Gilles 'SO- ngừng trở nên xấu xa'

1
@ user4745: Lý tưởng nhất là bạn sẽ cam kết từng thay đổi /etcvới một thông điệp cam kết có ý nghĩa (trái ngược với việc dựa vào các móc tự động) và cam kết các thay đổi cụ thể của máy trên một nhánh khác từ tùy chọn sysadmin hoặc cấu hình trên toàn trang web. Nhưng ngay cả việc sử dụng cơ bản cũng giúp theo dõi các thay đổi bạn đã thực hiện để /etcbạn có thể sao chép chúng trên máy mới.
Gilles 'SO- ngừng trở nên xấu xa'

1
Làm thế nào để so sánh với việc sử dụng aptitude-create-state-bundle?
trực giác

1
@intuited: Tôi không biết về aptitude-create-state-bundle. Cảm ơn, đó là cách tự động tái tạo trạng thái do APT quản lý (tốt hơn so với cách thủ công, không tái tạo các nguồn APT hoặc cài đặt gỡ lỗi). Bạn có thể muốn thêm một câu trả lời cho các câu hỏi liên quan là tốt.
Gilles 'SO- ngừng trở nên xấu xa'

3

Đây là cách nhận mọi thứ trừ những gì bạn đã cấu hình thủ công:

dpkg --get-selections > packages.txt
debconf-get-selections > debconf.txt

Chỉnh sửa các tệp này là cần thiết cho mọi thứ phụ thuộc vào vòm (ví dụ: hình ảnh linux), nhưng tôi không nghĩ sẽ có nhiều.

Sao chép các tệp này vào hệ thống mới, sau đó chạy:

debconf-set-selections < debconf.txt
dpkg --set-selections < packages.txt
apt-get dselect-upgrade

Bạn cũng sẽ muốn sao chép (tốt nhất là với rsync) / home và bất kỳ thư mục dữ liệu nào khác vào hệ thống mới.

Điều duy nhất còn lại sẽ là các tệp cấu hình từ các gói chính (ví dụ: apache, bind, cronjobs, et al.).


2
+1 để đề cập đến debconf, nhưng -1 để khôi phục các lựa chọn dpkg. Điều này đánh dấu tất cả các gói như được cài đặt thủ công trên máy mới. Sử dụng aptitude search '~i !~M'để lưu danh sách các gói được cài đặt thủ công; xem câu trả lời này để biết thêm thông tin
Gilles 'SO- ngừng trở nên xấu xa'

1

Thực sự rất nhiều Windows voodoo liên quan đến trình điều khiển, registry và nhạy cảm với các thay đổi bo mạch chủ sẽ ít nghiêm trọng hơn trên Linux nếu bạn đang sử dụng kernel chung với tất cả các trình điều khiển dưới dạng mô-đun, đó là tình huống thông thường đối với Ubuntu. Đây là những điều duy nhất trong / etc phụ thuộc vào phần cứng mà tôi biết:

  • Nếu bạn đã cài đặt trình điều khiển đồ họa độc quyền, tôi nghĩ đây có thể là một vấn đề.
  • Tôi đã đổi một ổ cứng với Debian được cài đặt từ HP Pavilion cũ (cpu 500Mhz, khá cũ) sang bo mạch MSI KT4V mới hơn một chút. Vấn đề duy nhất tôi có là tên giao diện mạng của tôi đã bị rối. Nhưng điều này ảnh hưởng đến tôi nhiều hơn người dùng thông thường vì cài đặt này rõ ràng là để sử dụng như một bộ định tuyến.
  • Một thứ khác có thể bị ảnh hưởng là cảm biến lm, nếu bạn sử dụng nó. Đây là bo mạch chủ cụ thể, nhưng bạn chỉ có thể chạy cảm biến phát hiện để khắc phục điều đó.
  • Nếu bạn thay đổi thiết bị, Linux hy vọng phân vùng gốc của nó là hoặc nếu bất kỳ thiết bị / phân vùng nào được chỉ ra trong / etc / fstab thay đổi, tức là bạn đang chuyển từ ổ đĩa PATA sang SATA, thì bạn phải cập nhật điều này nếu không Linux sẽ có vấn đề

Nếu GPU giống nhau, bộ điều khiển ổ đĩa cùng loại và bạn không có một loạt các tập lệnh tự chế phụ thuộc vào tên của giao diện mạng của bạn, tôi không thấy vấn đề lớn.


Phần cứng sẽ không giống nhau lắm, đĩa lớn hơn, phân vùng khác nhau, GPU khác nhau. Tôi không nghĩ rằng việc sao chép hệ thống phân cấp tệp sẽ hoạt động mà không cần sự can thiệp quyết liệt bởi vì đây sẽ là một chuyển tiếp x86-> x64.
dùng4745

Tùy chọn khởi động (được lưu trữ trong /etc/default/grub, như giá trị của GRUB_CMDLINE_LINUX_DEFAULT) nên được thêm vào danh sách này.
trực giác

0

[thêm vào câu trả lời tuyệt vời này ]

Tôi thấy rằng bạn đề cập đến mối quan tâm cho các gói cài đặt. Bằng cách này, tôi cho rằng bạn có nghĩa là bạn sẽ chuyển một đĩa từ máy này sang máy khác. Giả sử rằng hai máy của bạn có kiến ​​trúc x86, vấn đề duy nhất tôi có thể nghĩ đến có thể xảy ra là nếu cài đặt của bạn là 64 bit và máy mới của bạn thì không. Nếu mọi thứ xung quanh khác, không nên có vấn đề.


Tôi không chuyển đĩa nhưng tôi có thể sao chép toàn bộ ổ đĩa nếu việc đó dễ dàng hơn. Giả sử tôi đã cài đặt sạch, tôi muốn cài đặt lại các gói tương tự, bỏ qua các gói phụ thuộc phần cứng hoặc hệ thống.
dùng4745

Ngoài ra, nó sẽ là một chuyển tiếp x86-> x64.
dùng4745
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.