จะย้าย Linux ไปยังพาร์ติชั่นอื่นได้อย่างไร?


9

ฉันต้องการทำสำเนาของระบบ linux ที่ใช้งานได้ซึ่ง (อยู่ใน / และสถานที่ใหม่จัดทำขึ้นใน / mnt / sdb5) ดูเหมือนว่าจะมีจำนวนมากฮาร์ดลิงก์นุ่มและไฟล์พิเศษใน / dev; จะcpioจัดการกับงานนี้โดยไม่ต้องใช้เวทมนตร์เพิ่มเติมหรือไม่

มาตรการป้องกันที่รู้จักในปัจจุบัน:

  • จะไม่ลบ / แก้ไขระบบที่ใช้งานอยู่จนกว่าช่วงเวลาที่คัดลอกนั้นจะสามารถบู๊ตได้และทำงานได้root=/dev/sdb5; ก่อนลบให้ทำการสำรองข้อมูลพาร์ติชันแบบเต็ม
  • จะใช้ cpio สำหรับการเก็บถาวรแต่ละไดเรกทอรีรากแยกต่างหากดังนั้นจะแยกออกจากสภาพแวดล้อม LiveCD ดังนั้นพาร์ทิชันผู้บริจาคจะไม่ได้รับอันตราย

แต่ถึงกระนั้นก็จะไม่เสียเวลาเพียงเพราะ cpio พลาดธงบางส่วนและพิการสิทธิ์ / ประเภทโหนด / soft หรือ hardlink

เครื่องมือใดที่จะใช้ / หินใต้น้ำที่ควรหลีกเลี่ยง



@warren ขอบคุณ จะทำแบบทดสอบ cpio-vs-tar อีกครั้งเดี๋ยวนี้)
kagali-san

ไม่ต้องกังวล: หวังว่าจะช่วย :)
วอร์เรน

คำตอบ:


10

ที่จะตอบคำถามที่เกิดขึ้นจริงเกี่ยวกับcpio: เหล่านี้เป็นธงที่ฉันจะใช้สำหรับcpio:

find / -xdev -depth \! -path ./lost+found -print0 | cpio --pass-through --null --dot --make-directories --unconditional --preserve-modification-time --sparse /mnt/sdb5

แน่นอนเนื่องจากคุณไม่ได้คัดลอกผ่านเครือข่ายฉันจะใช้cp:

cp --archive --sparse=always --verbose --one-file-system --target-directory=/mnt/sdb5 /

และถ้าคุณต้องการที่จะทำการคัดลอกหลายครั้งrsyncเป็นตัวเลือกที่ดีกว่าสำหรับความสามารถในการทำงานต่อ (นอกจากนี้ยังชอบcpจัดการ ACLs และคุณลักษณะเพิ่มเติมและสามารถเลือกทำงานผ่านเครือข่ายcpioได้ดังนั้นจึงเป็นตัวเลือกที่มีประโยชน์มากที่สุดยกเว้นการทำสำเนาครั้งแรกในเครื่องที่ฉันต้องการใช้cp)

rsync --archive --inplace --hard-links --acls --xattrs --devices --specials --one-file-system --8-bit-output --human-readable --progress / /mnt/sdb5

อย่าลืมคัดลอก/bootและ/dev!

/bootเป็นเรื่องง่ายเพียงแค่คัดลอก แต่/devเป็นมาก trickier udevในปัจจุบันตั้งแต่มันซ่อนอยู่โดย ฉันแนะนำขั้นตอนต่อไปนี้:

  1. mkdir /tmp/dev
  2. mount --move /dev /tmp/dev
  3. คัดลอก/devไปยัง/mnt/sdb5โดยใช้หนึ่งในคำสั่งด้านบน
  4. mount --move /tmp/dev /dev
  5. rmdir /tmp/dev

6

ในฐานะที่เป็น @Klox ddกล่าวเมื่อคัดลอกพาร์ทิชันที่มีขนาดเดียวกันผมเห็นด้วยกับการใช้

แต่เมื่อคุณต้องการคัดลอกดิสก์บนพาร์ติชั่นที่แตกต่างกัน whith rsyncขนาดที่แตกต่างกันฉันอยากจะไปกับ เมาท์พาร์ติชันใหม่ (สมมติว่า / mnt / new) และ:

# rsync -a --exclude=/proc --exclude=/dev --exclude=/sys / /mnt/new

ไม่มีเวทมนต์ aditional สำหรับการเชื่อมโยงและไม่จำเป็นต้องใช้ซีดีสด (ผู้ใช้คนเดียว / init 1 จะทำได้ดี)


อ่าใช่ ฉันใช้rsyncตลอดเวลาและพลาดสิ่งที่ชัดเจน ฉันชอบddด้วยเหตุผลที่ฉันพูด แต่rsyncก็เหมาะสมกว่าสำหรับความต้องการของ OP
Klox

3

ตัวแปรที่เหมาะสมที่สุดของการddใช้partimageมันจะคัดลอกเฉพาะส่วนที่ใช้ของพาร์ทิชันทำให้การคัดลอกพาร์ทิชันที่ไม่ได้ใช้ขนาดใหญ่สมควรมากขึ้น

หมายเหตุข้อแม้ที่สำคัญ:

Partimage ไม่รองรับ Ext4 ซึ่งเป็นค่าเริ่มต้นสำหรับการติดตั้ง Ubuntu ใหม่

สำเนาที่สะดวกจะรวมอยู่ในการแจกจ่ายซีดี System Rescue


2

เมื่อย้ายการติดตั้ง Linux ระหว่างฮาร์ดไดรฟ์ฉันมักจะบูตจาก Live CD และใช้ddเพื่อคัดลอกพาร์ทิชันทั้งหมด ฉันรับรู้ว่าสิ่งนี้ไม่ได้เกี่ยวข้องกับการเปลี่ยนแปลงขนาดของดิสก์ (ย่อมเป็นดิสก์ใหม่ที่ใหญ่กว่าซึ่งทำให้สิ่งต่าง ๆ ง่ายขึ้น) แต่ฉันชอบเทคนิคสำหรับเหตุผลที่คุณกังวลเกี่ยวกับการใช้cpio: บางอย่างอาจผิดไป การใช้ddเทคนิคมันคือทั้งหมดหรือไม่มีอะไรเลย: ดิสก์บูทใหม่และทุกอย่างเหมือนกันหรือดิสก์ไม่บู๊ต ไม่มีความเสี่ยงของปัญหาที่ซุ่มซ่อนโผล่ขึ้นมาในภายหลัง

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


ระบบที่ฉันพูดถึงมีประมาณ 50 gigs ฟรีบนพาร์ติชัน XFS 500 gb (ที่ไม่สามารถลดขนาดได้ปัจจุบันรองรับเฉพาะการเติบโตผ่านxfs_grow) และพาร์ติชันรูทเป็น XFS เช่นกัน ยิ่งแย่ไปกว่านั้นมันคือ Gentoo ที่มีชื่อเสียงซึ่งเกือบจะอ้วนเอง ยิ่งไปกว่านั้นการย้ายจะต้องทำโดยไม่ต้องเพิ่มที่เก็บข้อมูลเพิ่มเติมและในปัจจุบันไม่สามารถสำรองข้อมูลมากกว่า 60 กิ๊ก - ดังนั้นจึงไม่มีการดำเนินการพาร์ติชัน ต้องนำ Win 'ไปใช้กับเครื่องนั้นเพื่อทดสอบบางสิ่ง
kagali-san

ยังดีดี แต่สำหรับการดำเนินงานของไดรฟ์ / พาร์ติชันฉันมักจะใช้โซลูชันที่เป็นกรรมสิทธิ์มากขึ้น TrueImage Acronis ดูเหมือนว่าจะทำงานได้ดีขึ้น (การบีบอัดการแบ่งปันแซมบ้า - จากแฟลช livecd / liveusb)
kagali-san
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.