ใน linux ฉันจะสร้าง / กู้คืนสแน็ปช็อตรูปภาพของไดรฟ์ทั้งหมดได้อย่างไร


14

ฉันเสียเปรียบยูทิลิตี้ของ Windows ที่จับภาพดิจิตอลของไดรฟ์ทั้งหมดของคุณซึ่งคุณสามารถกู้คืนได้ในกรณีที่ไดรฟ์ขัดข้อง (เช่นเช่น Time Machine สำหรับ Mac OS X)

มีวิธีการทำเช่นนี้ใน Linux หรือไม่?


1
ฉันคิดว่านิสัยเสียของคุณใน Windows เป็นแบบเดียวกับที่ผู้ใช้ลีนุกซ์เสียเพราะมีระบบสาธารณูปโภค :)

คำตอบ:


13

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


6

PartImageเรียกใช้จากบรรทัดคำสั่งหรือเป็นข้อความ GUI มันมีข้อได้เปรียบที่สำคัญอย่างหนึ่งเหนือ dd:

Partimage จะคัดลอกข้อมูลจากส่วนที่ใช้ของพาร์ติชันเท่านั้น สำหรับความเร็วและประสิทธิภาพบล็อกฟรีจะไม่ถูกเขียนไปยังไฟล์รูปภาพ สิ่งนี้แตกต่างจากคำสั่ง 'dd' ซึ่งคัดลอกบล็อกว่างเปล่า


6

คุณสามารถทำอะไรได้dd if=/dev/sda of=/path/to/target/backupถ้าคุณรู้ว่าคุณมีห้องที่คุณต้องการวาง คุณสามารถกด " dd if=/dev/sda | bzip2 > /path/to/target/backup" เพื่อบีบอัดได้ทันที อาจใช้เวลาสักครู่

หรือคุณสามารถทำ " tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup" ในฐานะผู้ใช้ที่มีสิทธิ์การอ่านที่จำเป็นทั้งหมด เลือกของคุณ

ภาคผนวก:ฉันเพิ่งซื้อแล็ปท็อปเครื่องใหม่ติดตั้งไว้กับ Vista ฉันคิดว่าฉันต้องการรักษา vista ไว้ที่ไหนสักแห่งในกรณีที่ฉันต้องการลองในบางครั้งครั้งแรกที่ฉันบูตคอมพิวเตอร์ (ด้วย linux livecd) ฉันทำสิ่งนี้:

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

นี่เป็นเครือข่ายท้องถิ่นที่รวดเร็วแน่นอน มิฉะนั้นจะเป็นการดีกว่าที่จะบีบอัดก่อนส่ง:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

หวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์

แก้ไข:โอ๊ะโอ เปลี่ยนbbเป็นdd...


1
นั่นจะไม่รวมถึงบูตเซกเตอร์ด้วยหรือไม่ ที่ทำให้ฉันสับสนเสมอเมื่อใช้ partimage เพื่อสำรองข้อมูลไดรฟ์ windows

greg มันจะรวมทุกอย่างรวมถึงตารางพาร์ทิชันและ mbr
Johannes Schaub - litb

4

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

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


3

หลาย. มีddแบบเก่า(1)ซึ่งเป็นอาร์เคน มีการถ่ายโอนข้อมูล (8)และกู้คืน (8) ; มีโอเพนซอร์ซหลายผลิตภัณฑ์อยู่รอบ ๆ เช่นAmanda ; และถ้าคุณต้องการคุณสามารถติดตั้ง ZFS และใช้สคริปต์ cron เพื่อถ่ายภาพสแนปชอตเป็นระยะทำให้คุณมีบางสิ่งที่เหมือนกันกับ Time Machine (ดูที่เว็บบล็อกของ Tim Foster)

วิกิพีเดียมีบทความที่มีรายการของตัวเลือกหลายหนึ่ง


2

หากคุณต้องการสำรองข้อมูลในระดับไฟล์เหมือนเครื่องย้อนเวลาฉันขอแนะนำrsnapshotตามที่นอร์แมนแนะนำ

หากคุณต้องการการสำรองข้อมูลเต็มรูปแบบและวิธีแก้ไขปัญหาการกู้คืนข้อมูลเช่น norton ghost แล้วฉันพบว่าCloneZillaทำงานได้ค่อนข้างดี ฉันบู๊ตซีดีสดจากนั้นใช้เครื่องอื่นเป็นเซิร์ฟเวอร์ SSH เพื่อสำรอง / เรียกคืนอิมเมจเป็น / จาก

(ฉันจัดการเพื่อให้เวอร์ชันสดทำงานผ่านการบูต PXE สำหรับแล็ปท็อปแท็บเล็ตเก่าที่ฉันไม่มีไดรฟ์ซีดีและไม่มีการบูต USB แต่มันเล่นซอมาก)

และคุณสามารถใช้กับเครื่อง windows ได้เช่นกัน


1

ฉันมักจะกังวลเกี่ยวกับการใช้ddเมื่อไดรฟ์มีขนาดแตกต่างกัน หรือมีจำนวนหัว / เซกเตอร์ / แทร็ค / อื่นที่แตกต่างกัน

ddมีประโยชน์มากเมื่อถ่ายภาพและ reflashing ไดรฟ์เดียวกัน โดยเฉพาะไดรฟ์ USB หรือพาร์ติชัน windows แต่เมื่อไปจาก 500Meg ถึง 1500Meg drive ฉันกังวล

นอกจากนี้เมื่อไดรฟ์ของฉันล้มเหลวฉันชอบที่จะใช้เป็นข้ออ้างในการอัพเกรดเป็นระบบปฏิบัติการรุ่นใหม่


ทั้งหมดที่กล่าวมาtarเก่าที่ดีนั้นทำได้ดีมาก! GNU-tarรวมถึงdiff-tar-Against-files , only-update-files-that-have-changeและตัวเลือกไฟล์เก็บถาวร - เท่านั้น - ใหม่กว่าวันที่

(ฉันควรพูดถึง: ฉันพบข้อผิดพลาดเมื่อไม่กี่ปีที่ผ่านมาซึ่งทำให้ฉันต้องดาวน์โหลดและติดตั้งGNU-tarเวอร์ชันใหม่(สิ่งที่ต้องทำกับชื่อพา ธ ที่ยาวมากและหลายเล่ม) ไม่ต้องกังวล เป็นตัวเลือกเสมอ)

คุณอาจจะไม่รวม/ proc , sys /และบางทีอาจจะ/ var / log / lastlogหรือmnt / (ฉันมักจะสำรองข้อมูลไปยังไดรฟ์ภายนอกที่ติดตั้งภายใต้/ mntสำรองข้อมูลสำรอง - ไม่ค่อยดี!)

การรวม/ devอาจคุ้มค่า gnu-tarจะจัดการอุปกรณ์อย่างถูกต้อง ( mknod ) แม้ว่าคุณอาจจะไม่ใช้การสำรองข้อมูล/ devในระหว่างการกู้คืน (ในบางครั้งการดูการอนุญาตหรือลิงก์ที่คุณตั้งค่าไว้ก่อนหน้านี้

นอกจากนี้คุณอาจต้องการที่จะถ่ายโอนข้อมูลfdiskและรอบต่อนาทีข้อมูลก่อนที่จะสำรอง เช่น

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

รวมถึงการติดตั้งระบบไฟล์ที่ผู้ใช้ติดตั้ง "เสริม"


1

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

ขั้นแรกให้สร้างภาพของระบบการทำงานที่ดี ทำเช่นนี้เป็นราก

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

สำรองอิมเมจเคอร์เนล

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

บูตเครื่องที่คุณต้องการปรับใช้อิมเมจด้วย live cd / gentoo cd ติดตั้งฮาร์ดไดรฟ์และแบ่งพาร์ติชันอย่างเหมาะสม:

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

เพิ่มระบบไฟล์

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

เมานต์ไดรฟ์:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

คัดลอกไฟล์ hostname.tgz ไปยังเครื่องนี้

แยกลงในรูทของเครื่องใหม่ / mnt / new_root

# tar -xzf hostname.tgz

Chroot สู่สภาพแวดล้อมใหม่

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

ตรวจสอบ /boot/grub/grub.conf และ / etc / fstab

ติดตั้งด้วงบนฮาร์ดไดรฟ์:

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

ออกจากและติดตั้งไดรฟ์รีบู๊ตเครื่อง


0

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


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