ฉันจะทำซ้ำสภาพแวดล้อม Linux ของฉันได้อย่างไรหากฉันย้ายไปยังฮาร์ดแวร์อื่น


10

ขณะนี้ฉันมีแพ็คเกจโมดูลการตั้งค่าและอื่น ๆ สำหรับ Eclipse, MySQL, Python, Firefox และอื่น ๆ ตั้งค่าบน Kubuntu ฉันได้ปรับแต่ง Kubuntu ให้เหมาะสมกับความต้องการของฉันแล้ว ฉันต้องการทำซ้ำสภาพแวดล้อมของฉันในเครื่องอื่นที่มีโปรเซสเซอร์ที่แตกต่างกัน (ปัจจุบันใช้กับ Intel Q9450 โปรเซสเซอร์ใหม่คือ i7) ดังที่ฉันเข้าใจแล้วแอปพลิเคชันของฉันได้รับการรวบรวมเพื่อใช้กับโปรเซสเซอร์เฉพาะของฉันดังนั้นการทำสำเนาพาร์ติชันแบบตรงจึงไม่เป็นปัญหา

มีวิธีใดบ้างที่จะทำให้สภาพแวดล้อมของฉันซ้ำลงในเครื่องอื่นนี้ขาดการติดตั้งใหม่และกำหนดค่าใหม่ทุกอย่างหรือไม่


คำถามนี้ไม่น่าเชื่อสำหรับฉัน ... ฉันถามในสิ่งเดียวกัน!
dag729

"ตามที่ฉันเข้าใจแอปพลิเคชันของฉันได้รับการคอมไพล์เพื่อใช้กับโปรเซสเซอร์เฉพาะของฉัน": คุณได้รับแนวคิดนี้จากที่ใด ฉันไม่รู้ distro ใด ๆ (ยกเว้น Gentoo แน่นอน) ซึ่งทำเช่นนั้น
sleske

@sleske: คุณเคยลองติดตั้งแพ็คเกจ amd64 บน Debian เวอร์ชั่น ppc หรือไม่? ;)
dag729

1
@ dag729: แน่นอนถ้าคุณเปลี่ยนสถาปัตยกรรมโปรเซสเซอร์คุณจะต้องมีแพ็คเกจใหม่ แต่ Intel Q9450 และ i7 เป็นทั้งโปรเซสเซอร์ x86
sleske

1
ฉันคิดว่า i7 ของฉันคือ x86_64 ฉันใช้แอพพลิเคชั่น 64 บิตในเครื่องนี้ ฉันไม่ถูกต้องหรือไม่
อยากรู้อยากเห็น

คำตอบ:


3

ดังที่ฉันเข้าใจแล้วแอปพลิเคชันของฉันได้รับการรวบรวมเพื่อใช้กับโปรเซสเซอร์เฉพาะของฉันดังนั้นการทำสำเนาพาร์ติชันแบบตรงจึงไม่เป็นปัญหา

อะไรนำคุณไปสู่ข้อสรุปนี้ อย่างน้อยสำหรับ x86 แพ็คเกจที่ติดตั้งโดย Kubuntu ได้รับการคอมไพล์เพื่อให้ทำงานบนซีพียูที่ไม่ใช่ยุคก่อนประวัติศาสตร์ทั้งหมด ฉันเชื่อว่าพวกเขาจะทำงานกับอะไรใหม่กว่ารุ่น 486 ซึ่งอาจไม่เป็นปัญหาในกรณีของคุณ :-)

ดังนั้นการคัดลอกพาร์ติชั่นแบบตรงควรใช้ได้ดี:

  • คัดลอกพาร์ติชั่น (หรือเพียงแค่คัดลอกไฟล์โดยใช้cp -aหากเลย์เอาต์พาร์ติชันของคุณเปลี่ยนไป)
  • ปรับ / etc / fstab เป็นรูปแบบพาร์ติชั่นใหม่
  • กำหนดค่า bootloader ใหม่สำหรับพาร์ติชันใหม่และติดตั้ง bootloader อีกครั้ง
  • บูตและเพลิดเพลินไปกับ

ปัญหาที่คาดหวังสำหรับ:

  • แพ็คเกจที่คอมไพล์แล้ว แต่ส่วนใหญ่จะเป็นคอมไพล์เริ่มต้นสำหรับซีพียูสมัยใหม่ทุกตัวยกเว้นว่าคุณเล่นด้วยตัวเลือกคอมไพเลอร์
  • ไดรเวอร์อุปกรณ์

เคอร์เนลที่ทันสมัยส่วนใหญ่ตรวจสอบอัตโนมัติ hw ในการบูตดังนั้นโดยปกติแล้วไดรเวอร์ควรจะโอเค แต่ถ้าสิ่งต่าง ๆ ล้มเหลวคุณสามารถบูตในโหมดผู้ใช้คนเดียวและแก้ไขปัญหาไดรเวอร์


หากใช้งานได้ชีวิตของฉันจะง่ายขึ้นมาก ขอบคุณ! ฉันจะลองก่อน
อยากรู้อยากเห็น

7

คุณสามารถนำโฮมไดเร็กตอรี่ของคุณโดยไม่มีการเปลี่ยนแปลงใด ๆ เกือบทุกอย่างที่เข้าไปในโฮมไดเร็กตอรี่นั้นได้รับการออกแบบให้มีความคมชัดมากกว่า NFS ดังนั้นคุณก็ดี

บันทึกการเลือกแพ็คเกจด้วย

sudo dpkg --get-selections '*' >file.txt

และเรียกคืนบนเครื่องอื่นด้วย

sudo dpkg --set-selections <file.txt

ในทำนองเดียวกันบันทึกการตั้งค่า debconf ของคุณด้วย

sudo debconf-get-selections >file2.txt

และเรียกคืนด้วย

sudo debconf-set-selections <file2.txt

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


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

1

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


1

การกำหนดค่าที่กำหนดเองส่วนใหญ่จะอยู่ใน / home / ส่วนที่เหลือส่วนใหญ่ใน / etc / ไฟล์ / etc บางไฟล์มีข้อมูลเฉพาะของเครื่องหรือฮาร์ดแวร์ (/etc/X11/xorg.conf, / etc / hostname, / etc / fstab ที่ด้านบนของหัวของฉัน) แต่ส่วนมากสามารถคัดลอกได้หากคุณ กำลังจะใช้ระบบปฏิบัติการเวอร์ชันเดียวกัน


จากสิ่งที่คุณระบุไว้ MySQL เป็นเพียงคนเดียวที่อาจมีการกำหนดค่าใน / etc / คุณอาจต้องการคัดลอกส่วนที่เหลืออยู่ใน / home /
Justin Smith

1

ประการที่สองได้รับการตั้งค่าสิ่งที่เลือก

หากต้องการทราบว่ามีการเปลี่ยนแปลงใดที่ conffiles ให้เรียกใช้สิ่งนี้:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  [[ -r $f ]] || continue; m2=$(md5sum "$f") ;
  [[ $m2 != "$m  $f" ]] && echo "$f";
done |xargs -n1 dlocate  |tee ~/edited-conffiles

หากคุณยังไม่ได้ติดตั้ง dlocate คุณสามารถแทนที่ด้วยdpkg -Sหรือข้ามส่วนนั้น

หากต้องการสำรองที่ประชุมทั้งหมด:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  echo "$f"
done |sudo tar cjf ~/conffiles.tbz2 -T -

1

อืมมม หากคุณไม่รังเกียจการเล่นเกมคุณสามารถเสียบ HDD ใหม่ลงในกล่องของคุณติดตั้งแล้วใช้ dd ตัวอย่างเช่นหากรูทปัจจุบันของคุณถูกตั้งค่าเป็น / dev / sda3 และคุณติดตั้ง HDD ใหม่เป็น / dev / sdb2 คุณจะใช้

dd if=/dev/sda3 of=/dev/sdb2

คุณจะต้องทำเช่นนั้นในฐานะที่เป็นรูทแน่นอน หลังจากนั้นคุณจะต้องการติดตั้ง Grub ดังนั้นคุณต้องใส่ Ubuntu LiveCD และใช้สิ่งนั้น

หรือคุณสามารถดูลิงค์นี้: http://www.ehow.com/how_4924091_clone-hard-drive-linux.html - ดูเหมือนว่าการเดินผ่านที่ดีงามสำหรับการโคลนฮาร์ดไดรฟ์ Linux แม้ว่าฉันจะไม่ได้ ทดสอบไซต์นั้นเอง

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