ฉันจะโอนย้ายการกำหนดค่าระหว่างคอมพิวเตอร์ที่มีฮาร์ดแวร์ที่แตกต่างกันได้อย่างไร


9

ฉันต้องการย้ายการกำหนดค่าของเดสก์ท็อป Ubuntu ไปยังกล่องใหม่ด้วยฮาร์ดแวร์ที่แตกต่างกัน วิธีที่ง่ายที่สุดในการทำเช่นนี้คืออะไร? / etc / มีการตั้งค่าเฉพาะเครื่องและฮาร์ดแวร์ดังนั้นฉันจึงไม่สามารถคัดลอกมันแบบสุ่มสี่สุ่มห้า มีปัญหาที่คล้ายกันสำหรับแพคเกจที่ติดตั้ง

แก้ไข: นี่คือการย้ายจาก x86 ถึง x86-64


@Gilles ฉันคิดว่า "ฮาร์ดแวร์ที่แตกต่าง" สมควรได้รับคำถามอื่นโดยเฉพาะอย่างยิ่งการย้ายจาก x86 เป็น x86-64
phunehehe

สำหรับกรณีที่เรียบง่ายเมื่อสถาปัตยกรรมหน่วยประมวลผลที่ได้คือเดียวกันให้ดูที่การย้ายลินุกซ์ติดตั้งไปยังคอมพิวเตอร์เครื่องใหม่ @phunehehe: คำถามเดิมไม่ได้พูดถึงความแตกต่างของสถาปัตยกรรม
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

คำตอบ:


7

ขั้นแรกถ้าคุณจะยังคงใช้งานไบนารี 32 บิตต่อไปคุณจะไม่เปลี่ยนสถาปัตยกรรมตัวประมวลผล: คุณจะยังคงใช้โปรเซสเซอร์ x86 อยู่แม้ว่ามันจะสามารถทำสิ่งอื่น ๆ ได้ก็ตาม ในกรณีที่ผมขอแนะนำให้โคลนติดตั้งของคุณหรือเพียงแค่ย้ายฮาร์ดดิสก์ที่อธิบายไว้ในการย้ายลินุกซ์ติดตั้งไปยังคอมพิวเตอร์เครื่องใหม่

ในทางตรงกันข้ามถ้าคุณต้องการมีระบบ 64 บิต (ในแง่ Ubuntu: amd64สถาปัตยกรรม) คุณต้องติดตั้งใหม่เพราะคุณไม่สามารถติดตั้งamd64แพ็คเกจบนi386ระบบหรือในทางกลับกัน (สิ่งนี้จะเปลี่ยนแปลงเมื่อMultiarchมาพร้อม)

การกำหนดเองหลายรายการอยู่ในโฮมไดเรกทอรีของคุณและคุณสามารถคัดลอกไปยังเครื่องใหม่ ไม่สามารถคัดลอกการตั้งค่าระบบได้อย่างง่ายดายเนื่องจากการเปลี่ยนแปลงในสถาปัตยกรรมโปรเซสเซอร์

บน Ubuntu 10.10 และขึ้นให้ลองOneConf

OneConf เป็นกลไกสำหรับการบันทึกข้อมูลซอฟต์แวร์ใน Ubuntu One และการซิงโครไนซ์กับคอมพิวเตอร์อื่น ๆ ตามต้องการ ใน Maverick รายการซอฟต์แวร์ที่ติดตั้งจะถูกเก็บไว้ นี่อาจขยายเพื่อรวมการตั้งค่าแอปพลิเคชันและสถานะแอปพลิเคชันบางอย่างในที่สุด เครื่องมืออื่น ๆ เช่นStippleสามารถให้การตั้งค่า / การควบคุมขั้นสูงเพิ่มเติม

หนึ่งในสิ่งสำคัญที่คุณต้องการสร้างในการติดตั้งใหม่คือชุดของแพ็คเกจที่ติดตั้ง บนการกระจายแบบอิง APT คุณสามารถใช้aptitude-create-state-bundleคำสั่ง (ส่วนหนึ่งของaptitudeแพ็คเกจ) เพื่อสร้างการเก็บถาวรที่มีรายการแพคเกจที่ติดตั้งและการกำหนดค่าdebconfของพวกเขาและaptitude-run-state-bundleบนเครื่องใหม่ (ขอบคุณที่ใช้สัญชาตญาณในการบอกฉันaptitude-create-state-bundle) ดูรายการ Ubuntu ที่ติดตั้งไว้อย่างชัดเจนและผู้ใช้ขั้นสูงและคำถามของ Ubuntu ที่อ้างถึงโดยเฉพาะคำถามของ Telemachusเกี่ยวกับวิธีการทำส่วนนี้ด้วยตนเอง

สำหรับสิ่งที่คุณเปลี่ยนแปลง/etcคุณจะต้องตรวจสอบพวกเขา หลายคนเกี่ยวข้องกับการตั้งค่าฮาร์ดแวร์หรือเครือข่ายเฉพาะและไม่ควรคัดลอก คนอื่น ๆ เกี่ยวข้องกับความชอบส่วนบุคคล - แต่คุณควรตั้งค่าความชอบส่วนบุคคลเป็นรายบุคคลเมื่อเป็นไปได้เพื่อให้การตั้งค่านั้นถูกบันทึกไว้ในโฮมไดเร็กตอรี่ของคุณ

หากคุณวางแผนล่วงหน้าคุณสามารถใช้etckeeper ติดตั้ง etckeeperเพื่อ/etcควบคุมเวอร์ชัน ( etckeeper quickstart ) คุณไม่จำเป็นต้องรู้อะไรเกี่ยวกับการควบคุมเวอร์ชันเพื่อใช้ etckeeper คุณเพียงแค่ต้องเริ่มเรียนรู้หากคุณต้องการใช้ประโยชน์จากมันเพื่อทำสิ่งแฟนซี


คุณช่วยอธิบายส่วนที่เกี่ยวกับปัญหากับตัวประมวลผลได้หรือไม่ ฉันคาดหวังว่าไม่น่าจะมีปัญหาเพราะเขาเปลี่ยนจาก x86-32 เป็น x86-64
tshepang

1
@Tshepang: ตราบใดที่คุณไม่ได้เปลี่ยนสถาปัตยกรรมก็ง่ายที่จะคัดลอกติดตั้งทั้งหมด ( /home, /etc, /var, /usrและทั้งหมด) และเพียงแค่แก้ไขไม่กี่ไฟล์ในetcการแก้ไขความต้องการที่ นั่นไม่ใช่ตัวเลือกหากคุณเปลี่ยนไปใช้สถาปัตยกรรมอื่นเนื่องจากคุณต้องติดตั้งแพ็คเกจไบนารีทั้งหมดใหม่
Gilles 'ดังนั้นหยุดความชั่วร้าย'

1
@ user4745: เป็นการดีที่คุณจะยอมรับการเปลี่ยนแปลง/etcแต่ละรายการด้วยข้อความการกระทำที่มีความหมาย (ซึ่งต่างจากการพึ่งพา autocommit hooks) และยอมรับการเปลี่ยนแปลงเฉพาะเครื่องในสาขาที่แตกต่างจากการตั้งค่าดูแลระบบหรือการกำหนดค่าทั่วทั้งไซต์ แต่การใช้งานขั้นพื้นฐานยังช่วยติดตามการเปลี่ยนแปลงที่คุณทำเพื่อ/etcให้คุณสามารถทำซ้ำสิ่งเหล่านี้บนเครื่องใหม่ได้
Gilles 'หยุดความชั่วร้าย'

1
สิ่งนี้เปรียบเทียบกับการใช้งานaptitude-create-state-bundleอย่างไร
intuited

1
@intuited: aptitude-create-state-bundleผมไม่ทราบเกี่ยวกับ ขอบคุณนั่นเป็นวิธีการสร้างสถานะ APT ที่จัดการอัตโนมัติ (ดีกว่าวิธีแบบแมนนวลซึ่งไม่ได้สร้างแหล่งข้อมูล APT หรือการตั้งค่า debconf) คุณอาจต้องการที่จะเพิ่มคำตอบเกี่ยวข้องคำถามเช่นกัน
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

3

วิธีรับทุกสิ่งยกเว้นสิ่งที่คุณกำหนดค่าด้วยตนเอง:

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

แก้ไขไฟล์เหล่านี้ตามความจำเป็นสำหรับสิ่งที่ขึ้นอยู่กับส่วนโค้ง (เช่น linux-image) แต่ฉันไม่คิดว่าจะมีมาก

คัดลอกไฟล์เหล่านี้ไปยังระบบใหม่จากนั้นเรียกใช้:

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

คุณจะต้องคัดลอก (ควรมี rsync) / home และไดเรกทอรีข้อมูลอื่น ๆ ไปยังระบบใหม่

สิ่งเดียวที่เหลือจะเป็นไฟล์กำหนดค่าจากแพ็คเกจหลัก (เช่น apache, bind, cronjobs, et al.)


2
+1 สำหรับการกล่าวถึง debconf แต่ -1 สำหรับการกู้คืนการเลือก dpkg สิ่งนี้ทำเครื่องหมายแพ็คเกจทั้งหมดเป็นการติดตั้งด้วยตนเองบนเครื่องใหม่ ใช้aptitude search '~i !~M'เพื่อบันทึกรายการแพ็กเกจที่ติดตั้งด้วยตนเอง; ดูคำตอบนี้สำหรับข้อมูลเพิ่มเติม
Gilles 'หยุดชั่วร้าย'

1

จริง ๆ แล้ววูดูของ Windows เกี่ยวกับไดรเวอร์รีจิสตรีและการเปลี่ยนแปลงเมนบอร์ดมีความรุนแรงน้อยกว่าบน Linux หากคุณใช้เคอร์เนลทั่วไปพร้อมไดรเวอร์ทั้งหมดเป็นโมดูลซึ่งเป็นสถานการณ์ปกติสำหรับ Ubuntu สิ่งเหล่านี้เป็นสิ่งเดียวใน / etc ที่ขึ้นอยู่กับฮาร์ดแวร์ที่ฉันรู้:

  • หากคุณติดตั้งไดรเวอร์กราฟฟิกที่เป็นกรรมสิทธิ์ฉันคิดว่าสิ่งเหล่านี้อาจเป็นปัญหาได้
  • ฉันได้เปลี่ยนฮาร์ดไดรฟ์ที่มี Debian ติดตั้งจาก HP Pavilion เก่า (ซีพียู 500 เมกะเฮิร์ตซ์ค่อนข้างเก่า) ไปเป็นบอร์ด MSI KT4V รุ่นใหม่กว่าเล็กน้อย ปัญหาเดียวที่ฉันมีคือชื่ออินเทอร์เฟซเครือข่ายของฉันสับสน แต่สิ่งนี้ส่งผลกระทบต่อฉันมากกว่าผู้ใช้ทั่วไปเนื่องจากการติดตั้งนี้มีไว้สำหรับใช้เป็นเราเตอร์อย่างชัดเจน
  • สิ่งที่อาจได้รับผลกระทบก็คือเซ็นเซอร์ lm หากคุณใช้ นี่เป็นเมนบอร์ดเฉพาะ แต่คุณสามารถเรียกใช้เซ็นเซอร์ตรวจจับเพื่อแก้ไขได้
  • หากคุณเปลี่ยนอุปกรณ์ Linux คาดว่าพาร์ติชันรูทของมันจะเป็นหรือหากอุปกรณ์ / พาร์ติชั่นใด ๆ ชี้ไปที่การเปลี่ยนแปลงใน / etc / fstab เช่นคุณกำลังย้ายจากไดรฟ์ PATA ไปเป็น SATA คุณจะต้องอัปเดต มีปัญหา

หาก GPU เหมือนกันตัวควบคุมไดรฟ์เป็นประเภทเดียวกันและคุณไม่มีสคริปต์โฮมเมดมากมายขึ้นอยู่กับชื่อของอินเทอร์เฟซเครือข่ายของคุณฉันจะไม่มองข้ามประเด็นสำคัญ ๆ


ฮาร์ดแวร์จะไม่คล้ายกันมากดิสก์ขนาดใหญ่การแบ่งพาร์ติชันที่แตกต่างกัน GPU ที่แตกต่างกัน ฉันไม่คิดว่าการคัดลอกลำดับชั้นของไฟล์จะทำงานโดยไม่มีการแทรกแซงอย่างรุนแรงเพราะมันจะเป็นการเปลี่ยน x86-> x64
user4745

ตัวเลือกการบูต (เก็บไว้ใน/etc/default/grubตามค่าGRUB_CMDLINE_LINUX_DEFAULT) ควรถูกเพิ่มลงในรายการนี้
intuited

0

[เพิ่มลงในคำตอบที่ยอดเยี่ยมนี้ ]

ฉันเห็นว่าคุณพูดถึงข้อกังวลสำหรับแพ็คเกจที่ติดตั้ง จากนี้ฉันคิดว่าคุณหมายความว่าคุณกำลังจะโอนดิสก์จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง สมมติว่าสองเครื่องของคุณเป็นสถาปัตยกรรม x86 ปัญหาเดียวที่ฉันคิดได้ว่าเกิดขึ้นคือหากการติดตั้งของคุณเป็น 64 บิตและเครื่องใหม่ของคุณไม่ได้ หากสิ่งอื่น ๆ ที่อยู่รอบ ๆ ไม่ควรมีปัญหา


ฉันไม่ได้ถ่ายโอนดิสก์ แต่ฉันสามารถคัดลอกไดรฟ์ทั้งหมดได้หากทำได้ง่ายกว่า สมมติว่าฉันติดตั้งใหม่ทั้งหมดฉันต้องการติดตั้งแพคเกจเดิมอีกครั้งโดยไม่ใช้ฮาร์ดแวร์หรือระบบที่ขึ้นอยู่กับระบบ
user4745

นอกจากนี้ยังเป็นการเปลี่ยน x86-> x64
user4745
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.