Bagaimana cara memigrasikan konfigurasi antara komputer dengan perangkat keras yang berbeda?

9

Saya ingin memigrasikan konfigurasi desktop Ubuntu ke kotak baru dengan perangkat keras berbeda. Apa cara termudah untuk melakukan ini? / etc / berisi pengaturan khusus mesin dan perangkat keras jadi saya tidak bisa menyalinnya secara membabi buta. Masalah serupa ada untuk paket yang diinstal.

sunting: Ini adalah perpindahan dari x86 ke x86-64.

pengguna4745
sumber
@Gilles Saya pikir "perangkat keras yang berbeda" layak mendapat pertanyaan lain, terutama perpindahan dari x86 ke x86-64.
phunehehe
Untuk kasus yang lebih sederhana ketika arsitektur prosesornya sama, lihat Memindahkan instalasi linux ke komputer baru . @ phunehehe: Pertanyaan awalnya tidak menyebutkan perbedaan arsitektur.
Gilles 'SO- stop being evil'

Jawaban:

7

Pertama, jika Anda akan terus menjalankan biner 32-bit, Anda sebenarnya tidak mengubah arsitektur prosesor: Anda masih akan menjalankan prosesor x86, bahkan jika itu juga mampu melakukan hal-hal lain. Dalam hal ini, saya sarankan kloning instalasi Anda atau hanya memindahkan hard disk, seperti dijelaskan dalam Memindahkan instal linux ke komputer baru .

Di sisi lain, jika Anda ingin memiliki sistem 64-bit (dalam istilah Ubuntu: amd64arsitektur), Anda perlu menginstal ulang, karena Anda tidak dapat menginstal amd64paket pada i386sistem atau sebaliknya. (Ini akan berubah ketika Multiarch datang).

Banyak kustomisasi tinggal di direktori home Anda, dan Anda dapat menyalinnya ke mesin baru. Pengaturan sistem tidak dapat disalin dengan mudah karena perubahan arsitektur prosesor.

Di Ubuntu 10.10 ke atas, coba OneConf .

OneConf adalah mekanisme untuk merekam informasi perangkat lunak di Ubuntu One, dan menyinkronkan dengan komputer lain sesuai kebutuhan. Di Maverick, daftar perangkat lunak yang diinstal disimpan. Ini pada akhirnya dapat berkembang hingga mencakup beberapa pengaturan aplikasi dan status aplikasi. Alat lain seperti Stipple dapat memberikan pengaturan / kontrol lebih lanjut.

Salah satu hal utama yang Anda ingin mereproduksi pada instalasi baru adalah paket paket yang diinstal. Pada distribusi berbasis APT, Anda dapat menggunakan aptitude-create-state-bundleperintah (bagian dari aptitudepaket) untuk membuat arsip yang berisi daftar paket yang diinstal dan konfigurasi debconf mereka , dan aptitude-run-state-bundlepada mesin baru. (Terima kasih untuk intuisi karena memberi tahu saya aptitude-create-state-bundle.) Lihat juga daftar Ubuntu yang secara eksplisit menginstal paket dan Pengguna Super dan Ajukan pertanyaan Ubuntu yang dikutip di sana, terutama jawaban Telemakus , tentang bagaimana melakukan bagian ini secara manual.

Untuk hal-hal yang telah Anda ubah /etc, Anda harus memeriksanya. Banyak yang berkaitan dengan pengaturan perangkat keras atau jaringan tertentu dan tidak boleh disalin. Yang lain harus dilakukan dengan preferensi pribadi - tetapi Anda harus menetapkan preferensi pribadi berdasarkan per-pengguna bila memungkinkan, sehingga pengaturan disimpan di direktori rumah Anda.

Jika Anda berencana sebelumnya, Anda dapat menggunakan etckeeper Instal dllkeeper untuk meletakkan di /etcbawah kontrol versi ( etckeeper quickstart ). Anda tidak perlu tahu apa-apa tentang kontrol versi untuk menggunakan dllkeeper, Anda hanya perlu mulai belajar jika Anda ingin memanfaatkannya untuk melakukan hal-hal mewah.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Bisakah Anda menjelaskan bagian tentang masalah dengan lengkungan prosesor. Saya berharap bahwa seharusnya tidak ada masalah karena dia pindah dari x86-32 ke x86-64.
tshepang
1
@Tshepang: Selama Anda tidak mengubah arsitektur, itu mudah untuk menyalin seluruh instalasi ( /home, /etc, /var, /usrdan semua) dan hanya mengedit beberapa file dalam etcyang mengedit kebutuhan. Itu bukan pilihan jika Anda beralih ke arsitektur yang berbeda, karena Anda perlu menginstal ulang semua paket biner.
Gilles 'SO- stop being evil'
1
@ user4745: Idealnya Anda akan mengkomit setiap perubahan secara /etcindividual dengan pesan komit yang bermakna (sebagai lawan bergantung pada kait autocommit), dan melakukan perubahan khusus mesin pada cabang yang berbeda dari preferensi sysadmin atau konfigurasi di seluruh situs. Tetapi bahkan penggunaan dasar membantu melacak perubahan yang telah Anda buat /etc, sehingga Anda dapat mereplikasi mereka di mesin baru.
Gilles 'SANGAT berhenti menjadi jahat'
1
Bagaimana ini dibandingkan dengan menggunakan aptitude-create-state-bundle?
intuited
1
@intuited: Saya tidak tahu aptitude-create-state-bundle. Terima kasih, itu cara otomatis mereproduksi keadaan yang dikelola APT (lebih baik daripada cara manual, yang tidak mereproduksi sumber APT atau pengaturan debconf). Anda mungkin ingin menambahkan jawaban yang terkait pertanyaan juga.
Gilles 'SO- stop being evil'
3

Berikut cara mendapatkan semuanya kecuali yang telah Anda konfigurasi secara manual:

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

Edit file-file ini seperlunya untuk apa pun yang bergantung pada lengkungan (mis., Linux-image), tapi saya rasa tidak akan banyak.

Salin file-file ini ke sistem baru kemudian jalankan:

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

Anda juga ingin menyalin (lebih disukai dengan rsync) / home dan direktori data lainnya ke sistem baru.

Satu-satunya yang tersisa adalah file konfigurasi dari paket utama (mis., Apache, bind, cronjobs, et al.).

bahamat
sumber
2
+1 untuk menyebutkan debconf, tetapi -1 untuk mengembalikan pilihan dpkg. Ini menandai semua paket yang diinstal secara manual pada mesin baru. Gunakan aptitude search '~i !~M'untuk menyimpan daftar paket yang diinstal secara manual; lihat jawaban ini untuk informasi lebih lanjut.
Gilles 'SO- stop being evil'
1

Benar-benar banyak voodoo Windows mengenai driver, registri, dan peka terhadap perubahan motherboard kurang parah di Linux jika Anda menggunakan kernel generik dengan semua driver sebagai modul, yang merupakan situasi umum untuk Ubuntu. Ini adalah satu-satunya hal di / etc yang bergantung pada perangkat keras yang saya ketahui:

  • Jika Anda memiliki driver grafis yang terpasang, saya pikir ini bisa menjadi masalah.
  • Saya telah menukar hard drive dengan Debian yang diinstal dari HP Pavilion lama (cpu 500Mhz, cukup lama) ke board MSI KT4V yang sedikit lebih baru. Satu-satunya masalah yang saya miliki adalah nama antarmuka jaringan saya yang kacau. Tetapi ini mempengaruhi saya lebih dari pengguna biasa karena instalasi ini secara eksplisit digunakan sebagai router.
  • Hal lain yang mungkin terpengaruh adalah sensor-lm, jika Anda menggunakannya. Ini khusus untuk motherboard, tetapi Anda bisa menjalankan sensor-deteksi untuk memperbaikinya.
  • Jika Anda mengubah perangkat, Linux mengharapkan partisi rootnya menjadi, atau jika ada salah satu perangkat / partisi yang ditunjuk di / etc / fstab berubah, yaitu Anda pindah dari drive PATA ke SATA, maka Anda harus memperbarui ini jika tidak, Linux akan punya masalah.

Jika GPU-nya sama, pengontrol drive adalah tipe yang sama, dan Anda tidak memiliki banyak skrip buatan sendiri tergantung pada nama-nama antarmuka jaringan Anda, saya tidak melihat masalah besar.

LawrenceC
sumber
Perangkat keras tidak akan sangat mirip, disk lebih besar, partisi berbeda, GPU berbeda. Saya tidak berpikir menyalin hirarki file akan bekerja tanpa intervensi drastis karena itu akan menjadi transisi x86-> x64.
user4745
Opsi boot (disimpan dalam /etc/default/grub, sebagai nilai GRUB_CMDLINE_LINUX_DEFAULT) harus ditambahkan ke daftar ini.
intuited
0

[menambahkan jawaban yang luar biasa ini ]

Saya melihat bahwa Anda menyebutkan keprihatinan untuk paket yang diinstal. Dengan ini, saya kira maksud Anda bahwa Anda akan memindahkan disk dari satu komputer ke komputer lain. Dengan asumsi bahwa dua mesin Anda adalah arsitektur x86, satu-satunya masalah yang dapat saya pikirkan yang dapat terjadi adalah jika instalasi Anda 64-bit dan mesin baru Anda tidak. Jika ada yang lain di sekitar, seharusnya tidak ada masalah.

tepang
sumber
Saya tidak mentransfer disk tetapi saya bisa menyalin seluruh drive jika itu akan lebih mudah. Dengan asumsi saya melakukan instalasi bersih, saya ingin menginstal ulang paket yang sama, menghilangkan perangkat keras atau yang bergantung pada sistem.
user4745
Juga, ini akan menjadi transisi x86-> x64.
user4745