บีบอัดข้อมูลสำรองในทันที


23

อาจจะดูเหมือนเป็นคำถามโง่ ๆ แต่วิธีที่ฉันพยายามทำมันไม่ทำงาน

ฉันใช้ livecd ไดรฟ์นั้นไม่ต่อเชื่อม ฯลฯ

เมื่อฉันสำรองข้อมูลด้วยวิธีนี้

sudo dd if=/dev/sda2 of=/media/disk/sda2-backup-10august09.ext3 bs=64k

... โดยปกติแล้วจะใช้งานได้ แต่ฉันไม่มีพื้นที่เพียงพอใน hd ภายนอกภายนอกฉันกำลังคัดลอกไปที่ (มันเกือบจะพอดีกับมัน) ดังนั้นฉันต้องการบีบอัดด้วยวิธีนี้

 sudo dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz

... แต่ฉันได้รับอนุญาตปฏิเสธ ฉันไม่เข้าใจ


2
อย่า นี่ไม่ใช่ข้อมูลสำรอง ตรวจสอบคำสั่ง 'dump' และ 'restore'
Juliano

หรือน้ำมันดินหรือ cpio ....
คริส

1
Juliano คุณหมายถึงอะไรโดย 'นี่ไม่ใช่การสำรองข้อมูล'
Phil

5
นี่ไม่ใช่การสำรองข้อมูลเนื่องจากการสำรองข้อมูลมีความร้ายแรงมีโครงสร้างที่ดีและใช้เครื่องมือที่เหมาะสมเพื่อสร้างการสำรองข้อมูล คุณเพิ่งทำสำเนาข้อมูลดิบของพาร์ติชัน ในการกู้คืนข้อมูลนี้คุณจะต้องมีพาร์ติชันอื่นที่มีรูปทรงเรขาคณิตเดียวกันซึ่งไม่รับประกัน นอกจากนี้หากคุณสร้างความเสียหายหนึ่งบล็อกของไฟล์เก็บถาวรของคุณ (superblock, inode tables, root directory, ฯลฯ ) คุณเสี่ยงต่อการสูญเสียข้อมูลทั้งหมดของคุณ ด้วยการสำรองข้อมูลที่เหมาะสมสิ่งนี้จะไม่เกิดขึ้น
Juliano

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

คำตอบ:


41

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

sudo bash -c "dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz"

อีกทางหนึ่งคุณสามารถติดตั้งดิสก์ด้วยตัวเลือกการเมาต์ uid / gid (สมมติว่า ext3) เพื่อให้คุณมีสิทธิ์ในการเขียนเป็นผู้ใช้สิ่งที่คุณเป็น หรือใช้รูทเพื่อสร้างโฟลเดอร์ใน / media / disk ที่คุณมีสิทธิ์ใช้งาน

ข้อมูลอื่น ๆ ที่อาจช่วยคุณ:

  • ขนาดบล็อกนั้นสำคัญมากสำหรับความเร็วส่วนใหญ่เท่านั้น ค่าเริ่มต้นคือ 512 ไบต์ซึ่งคุณต้องการเก็บไว้สำหรับ MBR และฟลอปปีดิสก์ ขนาดที่ใหญ่ขึ้นจนถึงจุดหนึ่งควรเพิ่มความเร็วในการทำงานคิดว่ามันคล้ายกับบัฟเฟอร์ นี่คือลิงค์ไปยังคนที่ทำเกณฑ์มาตรฐานความเร็วด้วยขนาดบล็อกที่แตกต่างกัน แต่คุณควรทำการทดสอบของคุณเองเนื่องจากประสิทธิภาพได้รับอิทธิพลจากหลายปัจจัย ลองดูที่คำตอบอื่น ๆ โดยอังเดร
  • หากคุณต้องการทำสิ่งนี้ผ่านเครือข่ายด้วย ssh และ netcat ดังนั้นพื้นที่อาจไม่เป็นปัญหาใหญ่โปรดดูคำถามข้อผิดพลาดของเซิร์ฟเวอร์นี้
  • คุณต้องการอิมเมจของพาร์ติชันหรือไม่อาจมีกลยุทธ์การสำรองข้อมูลที่ดีกว่า
  • dd เป็นคำสั่งที่อันตรายมากใช้ofแทนifและคุณจะเขียนทับสิ่งที่คุณพยายามสำรอง !! ขอให้สังเกตว่ากุญแจoและiอยู่ติดกัน? ดังนั้นจงระวังให้มาก

ฉันจะลองสิ่งนี้ ฉันจะทำให้มันเป็น bs = 64k ได้อย่างไร (และฉันจะต้อง?)
ฟิล

bs = 64k ทำให้การถ่ายโอนเร็วขึ้นเท่านั้นเพราะ dd จะอ่านบล็อกที่มีขนาด 64k แต่ละอันแทนขนาดบล็อกเริ่มต้นของ (ฉันจำไม่ได้)
chris

สิ่งที่ chris พูดและถ้าคุณต้องการที่จะรวมมันไว้หลังจาก dd และก่อนที่สัญลักษณ์ท่อ (|) ตามที่มันเป็นข้อโต้แย้งเพื่อ dd
Kyle Brandt

1
ฉันจะใช้ "sudo tee $ file> / dev / null" เป็นครั้งคราวเพื่อให้สามารถเขียนไฟล์ที่บัญชีผู้ใช้ของฉันไม่สามารถเข้าถึงได้เช่นกัน
Rik Schneider

6

ในกรณีแรก dd กำลังทำงานเป็น root

ในกรณีที่สอง dd กำลังทำงานในฐานะ root แต่ gzip กำลังทำงานเหมือนคุณ

เปลี่ยนการอนุญาตบน / media / disk ให้รูทเชลล์ด้วยตัวคุณเองหรือรัน gzip ในฐานะรูทด้วย


3

นอกจากนี้คุณสามารถแทนที่ gzip ด้วยbzip2 --bestการบีบอัดที่ดีกว่ามาก:

sudo dd if=/dev/sda2 | bzip2 --best > /media/disk/$(date +%Y%m%d_%H%M%S)_sda2-backup.bz2

3
เสียค่าใช้จ่ายเป็นจำนวนมาก ดูchangelog.complete.org/archives/… "วิธีคิดเกี่ยวกับการบีบอัด" สำหรับรายละเอียดเพิ่มเติม
Bill Weiss

@BillWeiss: ขอบคุณสำหรับความคิดเห็นของคุณน่าสนใจมากอ่าน!
อังเดร

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