มี "จุดคืนค่า" ใน Linux (Debian / Ubuntu) เช่น Windows หรือไม่


17

ฉันทำงานโดยตรงใน Ubuntu Virtual Machine (VM) มีการอัปเดตบางอย่าง (เช่นเคอร์เนล) ที่ตัวจัดการอัปเดต

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

สมมติว่าฉันไม่ได้ใช้ VM ด้วยการติดตั้ง Debian / Ubuntu มีวิธีการติดตั้งคืนค่าที่ไม่ได้ขึ้นอยู่กับการกำหนดค่า VM เพื่อกู้คืนระบบของคุณก่อนการอัพเกรด (เช่น "จุดคืนค่า" ใน Windows) การกู้คืนง่ายเหมือนเครื่องใช้ VM หรือไม่

(ฉันไม่ได้มองหา "ภาพผี" หรืออะไรทำนองนั้น (Norton Ghost, Clonezilla ฯลฯ ) ฉันกำลังมองหาบางสิ่งในตัวในระบบ Linux)


3
ฉันรู้ว่านี่เป็นนอกหัวข้อดังนั้นฉันจึงเพิ่มเป็นความคิดเห็น แต่ OpenSolaris สามารถสร้างภาพรวมของระบบไฟล์ ZFS ทั้งหมดและกู้คืนได้ในภายหลัง ไม่ใช้พื้นที่ดิสก์มากเกินไปเนื่องจากการลดการซ้ำซ้อน ในความเป็นจริงวิธีมาตรฐานในการอัปเกรดที่สำคัญคือการสร้างภาพรวม FS ใหม่และติดตั้งการอัพเกรดบน หากทำงานได้คุณสามารถลบไฟล์เก่าได้ ถ้าไม่คุณสามารถกลับไปที่คนที่ทำงานอยู่
AndrejaKo

3
@AndrejaKo: +1 อย่างไรก็ตามมันเป็น "โคลน" (สแน็ปช็อตที่เขียนได้สแน็ปช็อตปกติเป็นแบบอ่านอย่างเดียว) และความจริงที่ว่ามันไม่ต้องการพื้นที่มากพอที่จะขจัดข้อมูลซ้ำซ้อน แต่ด้วยวิธีจัดการสแนปชอต ในระบบไฟล์ COW นั่นคือ คุณได้รับการประหยัดพื้นที่ดิสก์เดียวกันในพูลที่ไม่ใช่การลดความซ้ำซ้อนเช่นกัน
knweiss

@knweiss ใช่ถูกต้องแล้ว ฉันแค่มองมัน!
AndrejaKo

คำตอบ:


15

ไม่มีคุณสมบัติที่คล้ายกันในการเผยแพร่ Linux ใด ๆ ที่ฉันรู้ มีสาเหตุหลายประการที่ทำให้มีประโยชน์น้อยกว่า Windows มาก

  • โดยพื้นฐานแล้วดิสทริบิวชันของลีนุกซ์นั้นมีความร้ายแรงมากกว่าไมโครซอฟต์เกี่ยวกับการอัพเดทที่เสถียรซึ่งได้รับการอัพเกรดเพื่อแก้ไขข้อบกพร่องที่สำคัญและด้วยการเปลี่ยนแปลงขั้นต่ำ ตัวอย่างเช่นด้วย Ubuntu และ Debian คุณสามารถเลือกรับเฉพาะการปรับปรุงความปลอดภัย ( -security ) หรือเฉพาะการปรับปรุงความปลอดภัยและการแก้ไขข้อบกพร่องที่สำคัญ ( -updates )

  • การอัพเกรดเคอร์เนลเป็นสิ่งที่เสี่ยงที่สุดเนื่องจากโอกาสที่การเปลี่ยนแปลงที่มีประโยชน์จะทำให้เกิดปัญหากับการกำหนดค่าฮาร์ดแวร์เฉพาะ นี่คือสาเหตุที่การกระจายส่วนใหญ่อนุญาตให้ติดตั้งเคอร์เนลได้มากกว่าหนึ่งรุ่นในเวลาเดียวกัน ตัวอย่างเช่นในขณะที่ฉันเขียนสิ่งนี้ Ubuntu 10.04 มีเคอร์เนลสามรุ่น: 2.6.32.21.22 จากรุ่นเดิม 2.6.32.22.23 พร้อมอัปเดตความปลอดภัยและ 2.6.32.23.24 พร้อมการอัปเดตที่ไม่ใช่ความปลอดภัยเช่นกัน หากการเปิดตัว ... 24 ทำให้เกิดปัญหาบนคอมพิวเตอร์ของคุณคุณสามารถรีบูตภายใต้ ... 23 (และทำเครื่องหมาย ... 24 ว่าเป็นสิ่งต้องห้ามในการติดตั้งอย่างน้อยถ้าคุณใช้ความถนัด)

  • ไม่มีรีจิสตรี: ข้อมูลการกำหนดค่าทั้งหมดอยู่ในไฟล์ (ใน /etc ลำดับชั้น) ซึ่งสามารถเรียกคืนได้อย่างง่ายดายหากเกิดข้อผิดพลาด แม้กระนั้นการอัปเดตของรุ่นเสถียรจะส่งผลกระทบกับไฟล์ที่อยู่ด้านล่าง /etc.

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

    • แพคเกจที่ดาวน์โหลดจะถูกเก็บไว้ใน /var/cache/apt/archives. หากคุณมีพื้นที่ว่างในดิสก์อย่าเพิ่งลบไฟล์แพ็กเกจเก่าจนกว่าคุณจะยืนยันว่าเวอร์ชั่นที่ใหม่กว่านี้เหมาะกับคุณ
    • แหล่งที่มาหลายแห่งเก็บรุ่นเก่าไว้ดังนั้นคุณสามารถปรับลดรุ่นได้อย่างง่ายดาย (โดยการดาวน์โหลดและติดตั้งรุ่นเก่ากว่าด้วยตนเองหรือโดยใช้การตั้งค่า apt) สำหรับ Debian ให้ดูที่ snapshot.debian.org .
    • มีวิธีที่ง่ายมากในการตั้งค่าการควบคุมเวอร์ชัน /etc: ติดตั้ง etckeeper แพคเกจและเปิดใช้งานด้วยคำสั่ง etckeeper init. (ฉันทำ แต่ไม่ใช่เพราะฉันกังวลเกี่ยวกับการอัพเกรดการทำลายบางสิ่ง แต่เพราะฉันกังวลเกี่ยวกับการเปลี่ยนแปลงที่ทำบางสิ่ง)

ใช่ไม่มีการเปรียบเทียบระหว่างความเสถียรของ Windows และ Debian / เสถียร แม้ว่าจะมีบางสิ่งผิดพลาด (เกือบทุกครั้งเกิดจากความผิดพลาดของผู้ใช้ที่เห็นได้ชัด) แต่ก็มีเครื่องมือมากมายในการแก้ปัญหาและแก้ไขปัญหา
liori

2
"การอัพเกรดเคอร์เนลเป็นสิ่งที่เสี่ยงที่สุด" - นั่นเป็นสาเหตุที่ฉันเก็บสำเนา Knoppix ไว้ข้างคอมพิวเตอร์ 5 และไม่ใช่ 6
amphetamachine

คุณอาจพบว่ามีประโยชน์ [rsnapshot] (rsnapshot.org) ซึ่งเป็นยูทิลิตี้สแน็ปช็อตของระบบไฟล์ที่อ้างอิง rsync .
Pablo Bianchi

5

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


2
แต่ถ้าแพ็คเกจแตกอะไรบางอย่างระหว่างการรีบูทการย้อนกลับอาจทำได้ยาก (โดยเฉพาะที่เกี่ยวข้องกับการแก้ไขเคอร์เนล)
warren

1
นั่นคือเหตุผลที่มักจะเก็บเคอร์เนลก่อนหน้านี้และสามารถเลือกให้บูตในด้วงได้
mbq

1
ผมไม่เห็นด้วย. มันจะมีประโยชน์มากที่จะสามารถสลับไปมาระหว่าง OS update x และ update x + 1 (ความแตกต่างอาจรวมถึงมากกว่าแพ็คเกจเคอร์เนล) ด้วยการรีบูตง่าย สิ่งนี้เป็นไปได้ด้วย OpenSolaris
knweiss

ทุกอย่างเป็นไปได้ด้วย Solaris ยกเว้นการค้นหาไดรเวอร์ที่เสถียร ;-)
mbq

5

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

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


ฉันใช้ etckeeper แต่จริงๆแล้วมันมีประโยชน์มากกว่าในการดูไทม์ไลน์ของการเปลี่ยนแปลงมากกว่าการย้อนกลับ (แน่นอนว่าคุณได้รับความสามารถทั้งสอง) การใช้แบ็กเอนด์ (เช่น hg, git, bzr ฯลฯ ) ในตัวเว็บเซิร์ฟเวอร์มักจะเป็นวิธีที่ง่ายที่สุด: sudo hg serve -R /etc

3

TMK คุณลักษณะการคืนค่า Windows จะย้อนกลับการเปลี่ยนแปลงรีจิสตรีและไดเรกทอรีที่สำคัญบางรายการเท่านั้น Linux ไม่มีสิ่งนี้

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


3

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

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


3

มีเครื่องมือที่เรียกว่า Timeshift ( http://www.teejeetech.in/p/timeshift.html ) ฉันไม่ได้ใช้ แต่ดูดีและฉันได้ยินสิ่งดีๆจากผู้ใช้ ภาพรวมได้รับการออกแบบเพื่อหลีกเลี่ยงการทำซ้ำข้อมูล และอย่ากลัวกับเว็บไซต์ที่ดูคลุมเครือ :)


2

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


ฉันต้องการทราบว่าการแบ่งพาร์ติชันดิสก์ที่แนะนำบน Ubuntu 12.04+ ใช้ LVM ดังนั้นนี่จึงเป็นคำแนะนำที่ดีที่สุด
kevinf

1

ขึ้นอยู่กับเทคโนโลยี VM ของคุณคุณสามารถหยุด / หยุดชั่วคราว / หยุดชั่วคราว VM ถ่ายโอนข้อมูลหลักและคัดลอกรูปภาพของ VM ถ้ามันล้มเหลวเพียงแค่คืนค่าดั้งเดิม

หากคุณตรงกับโลจิคัลวอลุ่มคุณสามารถสร้างสแน็ปช็อต LVM ตาม LV ดั้งเดิม ทดสอบการอัปเกรดและทำงานให้คุณทำซ้ำบน VM ดั้งเดิม (ดู lvcreate (8) -s)

หรือใช้น้ำมันทาทองเก่า (1) คุณสร้าง tar tar ที่สมบูรณ์ของ userspace เรียกคืนไฟล์และลบไฟล์ที่ไม่ได้อยู่ใน tar ball ต้นฉบับ


จากคำถาม: "มีวิธีการติดตั้งคืนค่าที่ไม่ขึ้นอยู่กับการกำหนดค่า VM" หรือไม่?
Ben Voigt

1

ในตอนนี้ลีนุกซ์ไม่ได้เสนอคุณสมบัติดังกล่าวถึงแม้ว่ามันจะเป็นเช่นนั้นก็ตาม มาก มีประโยชน์

อย่างไรก็ตามบทความ การอัพเกรดที่ไม่แตก, ZFS และ Apt อธิบายถึง apt-โคลน คุณสมบัติของ Linux-based Nexenta การกระจายพื้นที่เก็บข้อมูลและแนะนำ ...

นอกจากนี้ยังมีระบบไฟล์ใหม่   สร้างขึ้นในส่วนหนึ่งเป็นการตอบสนองต่อ ZFS   เรียกว่า BTRFS ซึ่งจะมีหลายอย่าง   ข้อดีของ ZFS และอาจเป็น   ความสามารถในการเปิดใช้งาน "ไม่แตก   อัพเกรด” สำหรับ Linux โดยเฉลี่ย   การแจกจ่ายอย่าง Ubuntu ใน   ในอนาคตเช่นกัน

IMHO ก่อนอื่นเราต้องใช้งานได้ ระบบไฟล์ Copy-On-Write (COW) สำหรับ Linux ก่อนคุณลักษณะดังกล่าวสามารถนำไปใช้ในระบบติดตั้ง / ตัวอัปเดตได้อย่างมีสติ

ประกาศ: แม้ว่า Nexenta ใช้ Linux แต่ไม่ได้ใช้เคอร์เนล Linux มันใช้เคอร์เนล OpenSolaris และ ZFS


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