คืนค่าระบบ linux ให้สมบูรณ์


20

ฉันคุ้นเคยกับการใช้ rsync เพื่อสำรองไฟล์ต่าง ๆ จากระบบของฉัน แต่อะไรคือวิธีที่ดีที่สุดในการกู้คืนเครื่องโดยสมบูรณ์

สิ่งที่ฉันได้ลองในอดีตคือ:

  1. ทำการฟอร์แมตพื้นฐาน / ติดตั้งใหม่จากดิสก์การติดตั้งของ Fedora
  2. ตรวจสอบให้แน่ใจว่าเปิดใช้งานเครือข่ายแล้ว
  3. คัดลอกทุกอย่างจากการสำรองข้อมูล rsync ที่ด้านบนของระบบที่ติดตั้งใหม่

วิธีนี้ใช้ได้ แต่ฉันไม่คิดว่าทุกแพ็คเกจที่ติดตั้งจะใช้งานได้ 100% หลังจากนั้น

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


เมื่อคุณบอกว่าคุณต้องการติดตั้งบนเครื่องอื่นคุณหมายถึง 'เหมือนกัน / เครื่องอื่น ๆ หรือมากกว่าเช่นบนเดสก์ท็อปและแล็ปท็อป?
Ichorus

ฮาร์ดแวร์จะแตกต่างกัน แต่ต้องการแพคเกจซอฟต์แวร์เดียวกันทั้งบน
ไซมอนฟอสเตอร์

คำตอบ:


17

นี่คือสิ่งที่ฉันทำ (นี่ถือว่าดิสก์เดียวที่ / dev / sda)

  • ใช้ dd เพื่อสำรองข้อมูล MBR และตารางพาร์ติชัน: "dd bs = 512 count = 1 if = / dev / sda ของ = / backups / sda.layout"

  • ใช้ rsync เพื่อคัดลอกสิ่งทั้งหมดด้วยบางสิ่งเช่น: "rsync -axvPH --numeric-ids ... "

ในการคืนค่าฉันทำสิ่งนี้:

  • บูตเครื่องเป้าหมายด้วยsysrescuecdโดยทั่วไปฉันจะมีไฟล์ 'sda.layout' บนแท่ง USB

  • กู้คืนตาราง MBR / พาร์ติชันด้วย dd: "dd bs = 512 count = 1 if = / path / to / sda.layout ของ = / dev / sda"

  • ใช้ partprobe (ขอบคุณเครื่องหมายผู้วิจารณ์)เพื่อให้เคอร์เนลอ่านตารางพาร์ติชันอีกครั้ง

  • เมานต์ส่วนต่าง ๆ ทั้งหมดภายใต้ / restore / ฉันทำจุดเมานท์เหมือนกันภายใต้การกู้คืนดังนั้นหากฉันมี / boot / / var บนแหล่งที่มาของฉันฉันจะจบลงด้วย / restore / boot, / restore / var ฯลฯ

  • ใช้ rsync เพื่อกู้คืนสิ่งทั้งหมด


3
ฉันได้ทำมาหลายครั้งแล้วและมีข้อได้เปรียบในการใช้คำสั่ง linux CLI มาตรฐานฉันใช้ rsnapshot สคริปต์ perl รอบ rsync เพื่อสำรองข้อมูลไปยังเซิร์ฟเวอร์กลาง จากนั้น rsync สิ่งทั้งหมดกลับหลังจากการบูตจาก sysrescuecd และ dd'ing ตารางพาร์ทิชัน BTW "partprobe" จะ re-read ตารางพาร์ทิชัน
พอร์เตอร์

ตกลงสิ่งนี้อาจถูกมองว่าเป็นการแฮ็กชั่วช้า แต่เนื่องจากคุณสามารถให้เคอร์เนลอ่านตารางพาร์ติชันใหม่ได้โดยการออก sysctl () เหมือน fdisk คุณก็อาจมี fdisk ซึ่งแตกต่างจาก partprobe เสมอในประสบการณ์ของฉัน มัน: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug

ขอบคุณสำหรับคำแนะนำทุกคนฉันรู้ว่าต้องมีทางออกที่ดีกว่า จะลองคำแนะนำเหล่านี้และดูว่าอะไรดีที่สุดสำหรับฉัน
Simon Foster

3
อย่าลืมนับด้วย dd! "dd bs = 512 if = / dev / sda ของ = / backups / sda.layout count = 1" และ "dd bs = 512 if = / path / to / sda.layout ของ = / dev / sda จำนวน = 1"
Steven

@ สตีเว่น: อึ! ขอบคุณสำหรับการจับ ฉันสามารถโหวตความคิดเห็นได้หรือไม่?
kbyrd

6

ฉันไม่เคยโคลนระบบทั้งหมด คุณไม่มีทางรู้ว่าสิ่งที่อาจมีการเปลี่ยนแปลงและภาพที่โคลนระบบของคุณแล้วจากวันที่มีการเปลี่ยนแปลงเกิดขึ้น วิธีที่ดีที่สุดที่จะทำคือการสร้างกระบวนการที่ช่วยให้คุณสร้างระบบที่เหมือนกันตามหน้าที่ ความเป็นไปได้อย่างหนึ่งคือการเริ่มต้นอย่างอัตโนมัติหรือ AutoYaST หรือเครื่องมือที่คล้ายกัน เก็บการสำรองข้อมูลที่ดีของการกำหนดค่าของคุณและใช้ระบบการจัดการการกำหนดค่าเช่น Bcfg2, Puppet หรือ CFEngine เพื่อกำหนดค่าทุกอย่างแทนที่จะทำด้วยมือ จากนั้นเมื่อคุณต้องการสร้างระบบใหม่ที่คล้ายกับอีกระบบหนึ่งที่คุณมีหรือสร้างระบบที่มีอยู่ใหม่มันเป็นขั้นตอนที่ง่ายและชัดเจน


3

มันต้องใช้ความพยายามมากขึ้น แต่KickstartและRevisorอนุญาตให้คุณปรับแต่งการติดตั้งและใช้กับเครื่องอื่น ๆ คุณสามารถรวมไฟล์การตั้งค่าเวอร์ชันที่กำหนดเองได้

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


2

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


2

ฉันคิดเสมอว่าวิธีการติดตั้งระบบ Gentoo ใหม่ (จากการสำรองข้อมูลหรืออย่างอื่น) นั้นดีที่สุดเนื่องจากความเรียบง่าย

  1. สร้างระบบการทำงานที่น้อยที่สุด
  2. โหลดระบบการทำงานเป็นฮาร์ดไดรฟ์ใน livecd
  3. ฝากระบบไฟล์ไว้และบันทึกไว้ที่ไหนสักแห่ง
  4. โหลดระบบเป้าหมายด้วย livecd
  5. เตรียมฮาร์ดไดรฟ์เป้าหมายและติดตั้ง
  6. untar ไปยังฮาร์ดไดรฟ์ที่ติดตั้ง
  7. ใส่ chroot
  8. ตั้งค่า bootloader และสิ่งอื่น ๆ ที่ขึ้นอยู่กับระบบ
  9. รีบูตและไป
  10. ติดตั้งซอฟต์แวร์ใหม่ / คัดลอกโฟลเดอร์ผู้ใช้ / เพิ่มไฟล์อื่น ๆ ตามที่จำเป็น

2

ลองใช้ clonezilla live cd คุณสามารถบูตเข้าสู่เซสชันสดและอิมเมจเครื่องของคุณโดยไม่ต้องติดตั้งอะไรเลย จากนั้นคุณมีตัวเลือกในการจัดเก็บสำเนาของภาพบนเครือข่ายที่ใช้ร่วมกันหรือเครื่องระยะไกลและอื่น ๆ


0

หากเป็นเครื่องเดียวกันฉันจะใช้ddในการสร้างดิสก์อิมเมจแล้ว reimage มันตามความจำเป็น (อาจเปลี่ยนการกำหนดค่าบางอย่างในภายหลังถ้าเหมาะสม)

หากคุณเปลี่ยนฮาร์ดแวร์ฉันประสบความสำเร็จในการสร้าง tarball หรือการสำรองข้อมูล rsync ที่สมบูรณ์ของรูทระบบไฟล์ ฉันไม่แน่ใจว่าทำไมคุณต้องติดตั้งเสร็จสมบูรณ์ก่อน - ตราบใดที่คุณทำการสำรองข้อมูลเต็มรูปแบบการติดตั้ง Fedora พื้นฐานไม่ควรเป็นข้อกำหนดเบื้องต้น


0

ขั้นตอนของคุณอาจทำให้เกิดปัญหามากมายและควรหลีกเลี่ยง

มีสองวิธีหลักที่แนะนำให้ไปเกี่ยวกับเรื่องนี้และหนึ่งในสามหากคุณพยายามสร้างสภาพแวดล้อมการพัฒนา

การถ่ายภาพ

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

ในการทำภาพจริงฉันขอแนะนำเครื่องมือหรือผลิตภัณฑ์ใด ๆ ที่สามารถโคลนฮาร์ดไดรฟ์

การสำรองข้อมูล Configuration / Home Directory

ในเครื่องหลักของคุณให้สำรองข้อมูล (ด้วยวิธีที่คุณชอบ) เป็นประจำซึ่งคุณต้องการไดเรกทอรีใดไดเรกทอรีต่อไปนี้ (หรืออื่น ๆ ):

/ home - การตั้งค่าส่วนบุคคลของผู้ใช้เอกสารและไฟล์
/ etc - การกำหนดค่า
/ opt - ซอฟต์แวร์พิเศษที่ไม่ได้ติดตั้งผ่านตัวจัดการแพ็กเกจ
/ usr / local - ซอฟต์แวร์พิเศษที่ไม่ได้ติดตั้งผ่านตัวจัดการแพคเกจ
/ var - บันทึกและอื่น ๆ

เมื่อกู้คืนให้ติดตั้งระบบปฏิบัติการอีกครั้งบนเครื่องที่มีปัญหาแล้วคัดลอกแต่ละไฟล์ (หรือไฟล์ที่เกี่ยวข้องเท่านั้น) ไปยังตำแหน่งที่เหมาะสม

เครื่องเสมือนพร้อมสแนปชอต

สร้างเครื่องเสมือนใน VMWare (หรืออะไรก็ได้ที่คุณต้องการ) เมื่อมีการกำหนดค่าตามที่คุณต้องการให้สร้างสแนปชอต ภาพรวมนี้สามารถคืนค่าไปยังเครื่องเสมือนใหม่หรือที่มีอยู่แล้วจำนวนเท่าใดก็ได้

โดยทั่วไปคุณควรสำรองข้อมูลและการกำหนดค่าเท่านั้น (แต่คุณกำหนดสิ่งเหล่านี้) ระบบปฏิบัติการและซอฟต์แวร์สามารถสร้างขึ้นมาใหม่ได้ตลอดเวลา: เนื้อหาของคุณมีค่าเท่านั้น หากการตั้งค่านี้มีไว้สำหรับการพัฒนาและคุณต้องแน่ใจว่ามีสภาพแวดล้อมที่เหมือนกัน (ซึ่งต่างจากการทำให้สิ่งต่าง ๆ กลับมาทำงานอีกครั้ง) ภาพรวมในเครื่องเสมือนเป็นทางออกที่ดีที่สุดของคุณ

การถ่ายภาพเป็นวิธีการแก้ปัญหากำลังดุร้าย หากทำได้ให้สำรองข้อมูลและไม่ต้องกังวลกับระบบปฏิบัติการ การพยายามกู้คืนมันทั้งหมดกำลังถามถึงปัญหา

หากคุณสามารถอธิบายได้ว่าเจตนาสุดท้ายของคุณคืออะไรที่นี่ฉันสามารถให้โซลูชันที่มีรายละเอียดมากขึ้น


0

เนื่องจากคุณพูดว่า "ฮาร์ดแวร์จะแตกต่าง" SystemImagerจึงมีประโยชน์มาก

มันเป็นสคริปต์ของ wrapper ที่ล้อมรอบ PXE และ Rsync ดังนั้น "backup" ที่สร้างขึ้นเป็นเพียงโครงสร้างไดเรกทอรีที่สมบูรณ์ของเซิร์ฟเวอร์ Linux ที่สำรองไว้ คุณสามารถ "cd" เป็น dir นี้และเปลี่ยนสิ่งต่าง ๆ ในขณะที่คุณฟีด (SystemImager จัดการการเปลี่ยนการตั้งค่าเครือข่ายด้วยตนเองเมื่อคุณดันภาพออก)

คุณสามารถ chroot ลงในเซิร์ฟเวอร์สำรองของคุณและเรียกใช้ yum หรือ apt เพื่อติดตั้งซอฟต์แวร์ก่อนที่คุณจะผลักดันภาพออกมา

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


0

ฉันโชคดีมากกับ Mondo Rescue โดยทั่วไปจะทำการสำรองไฟล์และพาร์ติชั่นทั้งหมดไว้ในซีดีที่สามารถบู๊ตได้เพื่อใช้ในภายหลัง สามารถจัดการการเปลี่ยนแปลงในพาร์ติชันและไดรฟ์

http://www.mondorescue.org/



0
  • วิธีที่ปลอดภัยที่สุดคือการโคลนดิสก์ทั้งหมดหรืออย่างน้อยก็พาร์ติชั่นที่เกี่ยวข้องและกู้คืนโดยใช้ Live CD

  • อีกวิธีที่มีประสิทธิภาพในการใช้พื้นที่มากขึ้นคือการใช้การถ่ายโอนข้อมูล (xfsdump สำหรับ XFS) แต่ในกรณีนี้คุณจะต้องสร้างใหม่ (ฟอร์แมต) พาร์ติชันด้วยมือ อย่าลืมสร้างด้วยพารามิเตอร์เดียวกันโดยเฉพาะอย่างยิ่ง UUID และ LABEL

  • คุณยังสามารถใช้tarกับ--xattrs พารามิเตอร์เพื่อบันทึกแอตทริบิวต์เพิ่มเติมของแต่ละไฟล์


1
Modern rsync บน Linux มี -X และ -A สำหรับแอ็ตทริบิวต์ส่วนขยายและ ACL ตามลำดับ
kbyrd

0

partimage และ partclone (ส่วนของ Clonezilla) เป็นเครื่องมือที่มีประโยชน์สำหรับการสร้างอิมเมจระบบแบบเต็ม

ตามที่คุณระบุอิมเมจระบบแบบสมบูรณ์ไม่จำเป็นต้องพกพาระบบ: โดยปกติจะเป็นเพราะชื่ออุปกรณ์

มันอาจจะง่ายเหมือนการติดตั้ง GRUB ใหม่ (โดยเฉพาะในพาร์ติชั่นแยกต่างหาก / บูต) และ MBR หลังจากถ่ายภาพ (เช่น LiveCD)

อีกวิธีหนึ่งคือการใช้เครื่องมือการจัดการการกำหนดค่าเพื่อกำหนดนโยบายที่ใช้กับอิมเมจพื้นฐาน (เช่นกล่องฐาน Vagrant) และแยกการสำรองข้อมูลออกเป็นบล็อกและ / หรือที่เก็บวัตถุ (EBS / S3, ที่เก็บข้อมูล Openstack Block / ที่เก็บวัตถุ Openstack)

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