ฉันเสียเปรียบยูทิลิตี้ของ Windows ที่จับภาพดิจิตอลของไดรฟ์ทั้งหมดของคุณซึ่งคุณสามารถกู้คืนได้ในกรณีที่ไดรฟ์ขัดข้อง (เช่นเช่น Time Machine สำหรับ Mac OS X)
มีวิธีการทำเช่นนี้ใน Linux หรือไม่?
ฉันเสียเปรียบยูทิลิตี้ของ Windows ที่จับภาพดิจิตอลของไดรฟ์ทั้งหมดของคุณซึ่งคุณสามารถกู้คืนได้ในกรณีที่ไดรฟ์ขัดข้อง (เช่นเช่น Time Machine สำหรับ Mac OS X)
มีวิธีการทำเช่นนี้ใน Linux หรือไม่?
คำตอบ:
เครื่องมือที่คุณต้องการ (ซึ่งส่วนใหญ่คล้ายกับ Time Machine) เรียกว่าrsnapshot แตกต่างจากเครื่องมือสำรองข้อมูลทั่วไปที่คัดลอกเฉพาะสิ่งที่มีการเปลี่ยนแปลงและช่วยให้คุณสามารถเดินทางไปยังจุดต่าง ๆ ในเวลาได้อย่างง่ายดาย คุณสามารถบอกได้ว่าได้รับอนุญาตให้มีพื้นที่ว่างในดิสก์เท่าใดและจะปรับจำนวนสแนปชอตที่เก็บไว้ให้คงอยู่ภายในขีด จำกัด นั้น เครื่องมือที่ดีมาก
PartImageเรียกใช้จากบรรทัดคำสั่งหรือเป็นข้อความ GUI มันมีข้อได้เปรียบที่สำคัญอย่างหนึ่งเหนือ dd:
Partimage จะคัดลอกข้อมูลจากส่วนที่ใช้ของพาร์ติชันเท่านั้น สำหรับความเร็วและประสิทธิภาพบล็อกฟรีจะไม่ถูกเขียนไปยังไฟล์รูปภาพ สิ่งนี้แตกต่างจากคำสั่ง 'dd' ซึ่งคัดลอกบล็อกว่างเปล่า
คุณสามารถทำอะไรได้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 คือสแน็ปช็อต LVM และหมายเลขสองคือrsnapshotซึ่งฉันใช้เพื่อสำรองข้อมูลแบบจุดต่อเวลาไปยังฮาร์ดดิสก์ภายนอกโดยเฉพาะ วางฮาร์ดไดรฟ์ภายนอกไว้เพื่อให้ฉันสามารถดึงมันออกมาทางประตูได้อย่างง่ายดายหากมีสิ่งไม่ดีเกิดขึ้น ฉันยังไม่ได้ใช้กลไกนอกสถานที่นอกเหนือจากการเบิร์นสแนปชอตเป็นระยะ ๆ ไปยังแผ่นดีวีดีที่เข้ารหัสแล้วและส่งพวกเขาไปยังสถานที่ของเพื่อนในเมืองอื่นเพื่อเก็บข้อมูล
ฉันขอแนะนำ rsnapshot เพราะวิธีที่มันทำ snapshots โดยใช้การเชื่อมโยงอย่างหนักสำหรับสิ่งที่ไม่ได้เปลี่ยน หากโฮมไดเร็กตอรี่ของคุณเป็นบ้าคุณสามารถถ่ายสำเนา rsnapshot และ tarpipe หรือ rsync กลับไปยังพาร์ติชั่นโฮมใหม่ของคุณหลังจากติดตั้งใหม่หรือกู้คืนจากความล้มเหลวของไดรฟ์
หลาย. มีddแบบเก่า(1)ซึ่งเป็นอาร์เคน มีการถ่ายโอนข้อมูล (8)และกู้คืน (8) ; มีโอเพนซอร์ซหลายผลิตภัณฑ์อยู่รอบ ๆ เช่นAmanda ; และถ้าคุณต้องการคุณสามารถติดตั้ง ZFS และใช้สคริปต์ cron เพื่อถ่ายภาพสแนปชอตเป็นระยะทำให้คุณมีบางสิ่งที่เหมือนกันกับ Time Machine (ดูที่เว็บบล็อกของ Tim Foster)
หากคุณต้องการสำรองข้อมูลในระดับไฟล์เหมือนเครื่องย้อนเวลาฉันขอแนะนำrsnapshotตามที่นอร์แมนแนะนำ
หากคุณต้องการการสำรองข้อมูลเต็มรูปแบบและวิธีแก้ไขปัญหาการกู้คืนข้อมูลเช่น norton ghost แล้วฉันพบว่าCloneZillaทำงานได้ค่อนข้างดี ฉันบู๊ตซีดีสดจากนั้นใช้เครื่องอื่นเป็นเซิร์ฟเวอร์ SSH เพื่อสำรอง / เรียกคืนอิมเมจเป็น / จาก
(ฉันจัดการเพื่อให้เวอร์ชันสดทำงานผ่านการบูต PXE สำหรับแล็ปท็อปแท็บเล็ตเก่าที่ฉันไม่มีไดรฟ์ซีดีและไม่มีการบูต USB แต่มันเล่นซอมาก)
และคุณสามารถใช้กับเครื่อง windows ได้เช่นกัน
ฉันมักจะกังวลเกี่ยวกับการใช้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
รวมถึงการติดตั้งระบบไฟล์ที่ผู้ใช้ติดตั้ง "เสริม"
นี่คือขั้นตอนเต็มรูปแบบสำหรับวิธีอื่นใช้สำหรับการย้ายจากฮาร์ดไดรฟ์หนึ่งไปยังอีกฮาร์ดไดรฟ์และแม้แต่การโคลนนิ่งเครื่องหากฮาร์ดแวร์คล้ายกัน
ขั้นแรกให้สร้างภาพของระบบการทำงานที่ดี ทำเช่นนี้เป็นราก
# 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
ออกจากและติดตั้งไดรฟ์รีบู๊ตเครื่อง
คุณสามารถมีสแน็ปช็อตบน Linux โดยใช้ LVM ซึ่งเป็นตัวจัดการโลจิคัลวอลุ่ม