การสร้างภาพรวมของระบบลินุกซ์


11

ฉันต้องการทำดังต่อไปนี้ - บันทึกสถานะปัจจุบันของ linux OS ของฉัน (centOS6.5) ทำการเปลี่ยนแปลงบางอย่าง (โดยเฉพาะฉีดข้อบกพร่องและทดสอบบริการบางอย่างเพื่อตรวจสอบว่ามันทำงานอย่างไรเมื่อเกิดข้อผิดพลาดประเภทนั้น) จากนั้นกู้คืนระบบกลับสู่สถานะที่บันทึกไว้ ฉันไม่สามารถหาวิธีการทำสิ่งนี้ในระบบ linux ฉันมีเครื่องที่มี centOS 6.5 พร้อมระบบไฟล์ ext4 นอกจากนี้ยังเป็นเซิร์ฟเวอร์จริงและไม่ใช่เครื่องเสมือน

ความคิดหรือข้อเสนอแนะ?


เซิร์ฟเวอร์จริงหรือเครื่องเสมือน?
สตีฟ

1
ฉันแนะนำให้เรียกใช้ระบบปฏิบัติการของคุณบนซอฟต์แวร์การจำลองเสมือนเช่น VirtualBox มันรองรับสแนปชอตอย่างดี
ชิ

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

โดยปกติจะต้องการเมตาชั้นเพิ่มเติมเช่นการจำลองเสมือนเพื่อรองรับสแนปชอตของระบบ มันจะยากมากที่จะทำให้ฟิสิคัลเซิร์ฟเวอร์ทำงานเหมือนว่าอยู่ภายใต้การควบคุมของมันจากระดับเฟิร์มแวร์และ bootloader
yaegashi

คำตอบ:


8

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

dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1

คุณต้องแทนที่/dev/sda1ด้วย root ( /) พาร์ติชันของคุณ ทำเช่นเดียวกันกับพาร์ทิชันอื่น ๆ (เช่นหนึ่งสำหรับ/boot, /boot/efi, /home) ที่บังคับ

หากคุณต้องการประหยัดพื้นที่คุณสามารถทำได้

dd if=/dev/sda1 bs=64M | gzip --fast | dd bs=32M of=/mnt/my_mounted_backup_drive/backup-sda1.gz

หรือซับซ้อนมากขึ้นช้าลงมาก แต่ประหยัดอีกสองสามไบต์

mkdir -p /mnt/linux
mount -o ro /dev/sda1 /mnt/linux
cd /mnt/linux
tar cvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz .??* *

จากนั้นคุณสามารถเรียกคืนวิธีอื่นได้เช่น

mkdir -p /mnt/linux
mount /dev/sda1 /mnt/linux
cd /mnt/linux
tar xvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz

หรือ

dd /mnt/my_mounted_backup_drive/backup-sda1.gz bs=32M | gzip --decompress | dd bs=64M of=/dev/sda1

(ระวังที่คุณกำลังเขียนข้อมูลของคุณสิ่งนี้จะลบทุกอย่างใน/dev/sda1นั้นเพื่อให้ถูกต้องในครั้งแรก :-)


PS: dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sdaถ้าคุณคาดหวังว่าบางสิ่งบางอย่างที่จะไปสำรองข้อมูลที่ไม่ถูกต้องจริงๆตารางพาร์ทิชันเช่น เมื่อทำการกู้คืนคุณต้องระวังอย่าเขียนบล็อกจำนวนมากเกินไปกลับไปที่ดิสก์ที่นี่ - ไม่สามารถบอกได้ว่าจำนวนเท่าไรหากไม่ดูโครงร่างพาร์ติชันของคุณ เรียกคืนขึ้นไป (ไม่รวม) บล็อกที่พาร์ทิชันแรกของคุณเริ่มต้นตามหรือgdisk fdisk
Ned64

5

คุณสามารถใช้ rsync เพื่อสำรองข้อมูลระบบทั้งหมด

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder

มีบทความที่ยอดเยี่ยมที่Arch Linux Wikiเกี่ยวกับเรื่องนี้


มันค่อนข้างสั้นที่จะเป็นตัวเลือกที่ดีที่สุดสำหรับฉัน แน่นอนถ้าคุณไม่มีrsyncคุณสามารถใช้ซึ่งddฉันใช้เพื่อสำรองไดรฟ์ usb ของฉัน
m3nda

3

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

http://rsnapshot.org/

http://www.mikerubel.org/computers/rsync_snapshots/

ในทำนองเดียวกันคุณสามารถใช้ LVM:

http://www.tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html


1

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

นี่คือตัวอย่างจากเอกสาร :

fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1

นอกจากนี้คุณยังสามารถใช้การบีบอัดแบบมัลติเธรดและการคืนค่าเป็นเรื่องง่าย

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1

-1

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

mount DIR DIR

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

umount DIR

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