จะคัดลอกระบบไฟล์ Linux ส่วนใหญ่ไปยังไดรฟ์ใหม่ได้อย่างไร


1

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

ฉันต้องการตรวจสอบให้แน่ใจว่าข้อมูลทั้งหมดข้อมูลเมตาลิงค์และสิ่งเหล่านั้นถูกสงวน ดูเหมือนว่าจะไม่รวม "cp" เนื่องจากจะไม่เก็บข้อมูลเมตาและลิงก์ทั้งหมด

เทคนิคพื้นฐานทั้งสองที่ฉันสามารถระบุได้ดูเหมือนจะเป็นสิ่งที่ต้องการ:

 find / -xdev -print0 | cpio -pa0V /mnt/dst

และ:

 rsync -avP -H -S --numeric-ids / /mnt/dst

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

คำตอบ:


0

ไม่แน่ใจว่าข้อมูลเมตาของคุณหมายถึงอะไร หมายเลขไอโหนด? cp -a จะคัดลอกการอนุญาตลิงก์และอื่น ๆ ทั้งหมดหากคุณต้องการแยกสิ่งต่าง ๆ ฉันจะใช้ตัวเลือก --exclude ของ rsync หากคุณมีไฟล์กระจัดกระจาย (อาจเป็นไปได้ว่าคุณไม่ได้ทำจนกว่าจะทำการจำลองเสมือนจริง) คุณควรใช้ตัวเลือก -S หากคุณต้องการใช้ rsync

หากเป็นไดรฟ์สำหรับบูตของคุณคุณจะต้องติดตั้ง bootloader ของคุณอีกครั้งและอาจกำหนดค่าพาร์ติชันของคุณ


0

โดยรวมแล้วแนวทางการใช้งาน find และ cpio นั้นน่าจะดี (ฉันมักจะใช้ find, xargs และ tar แต่มีสาเหตุมาจากความรู้ที่มีอยู่ของเครื่องมือเหล่านั้น) โดยทั่วไปแล้ว tar และ cpio นั้นทำขึ้นเพื่อสำรองข้อมูลและควรเก็บทุกสิ่งที่จำเป็น อย่างไรก็ตามอาจมีข้อมูลเมตาที่พวกเขาไม่ได้รวมไว้ (ACL เช่นป้ายกำกับ SELinux) ดาว เห็นได้ชัดว่ามีการสนับสนุนที่ดีกว่าสำหรับสิ่งนี้ ฉันคาดหวังว่า rsync จะดีกว่า cp แต่แย่กว่าการติดดาวในการจัดการข้อมูลเมตาเพิ่มเติม

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