ฉันจะย้ายการติดตั้ง Linux ระหว่างพาร์ติชันได้อย่างไร


8

ฉันได้รับ HDD ใหม่และต้องการย้ายการติดตั้ง Linux ที่มีอยู่ (เฉพาะเจาะจงมากขึ้น: OpenSUSE 11.1) จากพาร์ติชันบน HDD เก่าไปยังพาร์ติชันบน HDD ใหม่

แผนของฉันคือ:

  1. การบูตโดยใช้แผ่นซีดีสำหรับบูต (สมมติว่าเป็นแผ่น CD สำหรับบูต OpenSUSE)

    แก้ไข ตามที่หลายคนแนะนำ (ขอบคุณทุกคน)
    1a คัดลอกไฟล์ทั้งหมดจากไดรฟ์หนึ่งไปยังอีก

  2. แก้ไข / etc / fstab ( เพิ่มจุดเชื่อมต่อไปยังพาร์ติชันใหม่)
  3. แก้ไข /boot/grub/menu.conf ( เพิ่มพาร์ทิชันสำหรับบูต)
  4. ติดตั้งด้วง

ฉันถูกไหม? มันคืออะไร
หรือฉันทำผิดขั้นตอนที่สำคัญบางอย่าง? (ฉันค่อนข้างแน่ใจว่าฉันทำ)


1
คุณพลาดขั้นตอนในการคัดลอกไฟล์จากพาร์ติชั่นเก่าไปยังไฟล์ใหม่ บางคนอาจจะบอกว่าเป็นสิ่งที่สำคัญอย่างเป็นธรรม :)
cas

คำตอบ:


4

ฉันจะบอกว่ามีสิ่งหนึ่งที่คุณพลาด

  1. การบูตโดยใช้แผ่นซีดีสำหรับบูต (สมมติว่าเป็นแผ่น CD สำหรับบูต OpenSUSE)

    1a คัดลอกไฟล์ทั้งหมดจากไดรฟ์หนึ่งไปยังอีก

  2. ปรับเปลี่ยน / etc / fstab (เปลี่ยนจุดเชื่อมต่อเป็นพาร์ติชันใหม่)

  3. แก้ไข /boot/grub/menu.conf (เปลี่ยนพาร์ติชันสำหรับบูต)
  4. ติดตั้งด้วง

ฉันจะบอกว่าถ้าคุณตั้งค่าพาร์ติชันบนไดรฟ์ใหม่เพื่อให้เข้ากันได้กับเซ็ตเก่ามันน่าจะตรงไปตรงมา อาจซับซ้อนกว่านี้เล็กน้อยหากคุณต้องแก้ไขตำแหน่งเมานต์จุดภายในไฟล์ OS ฉันอยากจะแนะนำให้รักษาพาร์ทิชันที่คล้ายกันมากพอที่คุณต้องทำคือบู๊ตติดตั้งไดรฟ์ใหม่คัดลอกเปลี่ยนพาร์ติชันสำหรับบูตติดตั้งด้วงใหม่บนไดรฟ์ใหม่ ลบไดรฟ์เก่าและคุณทำเสร็จแล้ว!


คุณต้องระวังการคัดลอก ใช้ตัวเลือก -a เพื่อ cp
Kim

5
หรือใช้ rsync มันมีข้อได้เปรียบที่ว่าหากมีสิ่งใดขัดจังหวะการคัดลอกคุณสามารถเรียกใช้ rsync อีกครั้งและมันจะเลือกจากที่ที่มันถูกทิ้งไว้แทนที่จะเริ่มใหม่ตั้งแต่ต้น ตามลำดับการตั้งค่าเครื่องมือที่เหมาะสมสำหรับงานนี้คือ: rsync, tar, cp -a
cas

+1 ข้อเสนอแนะจาก Craig ด้านบนเป็นคำแนะนำที่ดีแน่นอน
Axxmasterr

1

คุณต้องคัดลอกไฟล์ตามที่ Axxmasterr ชี้ให้เห็น ทุกอย่างดูถูกต้องสำหรับฉัน คนอื่น ๆ ได้ปฏิบัติตามเส้นทางที่คล้ายกันมาก: การย้ายการติดตั้ง GNU / Linux ไปยังพาร์ติชันใหม่

ระวังด้วยคำสั่ง cp ที่คุณใช้เพื่อคัดลอกไฟล์ ใช้ตัวเลือก -a เพื่อให้แน่ใจว่าพฤติกรรมที่ถูกต้องเมื่อคุณเข้าชม symlink และรักษาข้อมูลความเป็นเจ้าของ

บางคนใช้ tar แทน cp เพื่อคัดลอกไฟล์ไปยังพาร์ติชั่นใหม่:

$ cd sourcedir; tar --create --file = - | (cd targetdir; tar --extract --file = -)

ตามที่แนะนำในลิงค์เมื่อเริ่มต้นคุณอาจต้องการออกจากรายการเก่าในไฟล์ด้วงและเพิ่งเพิ่มรายการใหม่ในกรณีที่คุณต้องการเปลี่ยนกลับ

โชคดี!


ฉันขอแนะนำให้เปลี่ยนเครื่องหมายอัฒภาคในคำสั่งนี้เป็น && (ตัวดำเนินการตามเงื่อนไข) เพื่อให้คำสั่ง 'tar' ที่ตามมาจะไม่ถูกดำเนินการหาก chdir () ล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม (พิมพ์ผิดสิทธิ์อะไรก็ตาม) นอกจากนี้ฉันขอแนะนำให้ใช้ตัวเลือก -S (--sparse) กับ 'tar' --create เพื่อเปิดใช้งานการจัดการไฟล์แบบกระจายเช่นบางอินสแตนซ์ของ / var / log / wtmp หรือ / var / run / utmp เป็นต้น)
จิมเดนนิส

1

ฉันคิดว่ามันจะทำงาน

หากมีเพียงพาร์ติชั่นเดียวในฮาร์ดไดรฟ์แต่ละตัวและดิสก์ใหม่มีขนาดเท่ากันหรือใหญ่กว่าดิสก์ดั้งเดิมวิธีที่เร็วกว่าก็คือการลอกแบบเก่า (/ dev / xxx โดยที่ xxx = ดิสก์ดั้งเดิมของคุณ , hdb, ฯลฯ ) ไปยังอันใหม่ (/ dev / yyy)

ดังนั้นขั้นตอนจะเป็น:

  1. บูตโดยใช้ซีดีสด
  2. sudo dd if = / dev / xxx ของ = / dev / yyy bs = 32k

ตรวจสอบให้แน่ใจว่าคุณได้รับ (ไฟล์อินพุต) และถูกต้องหรือไม่หรือคุณจะบดบังดิสก์เก่าทั้งหมด


ทำ DD จะคัดลอกไฟล์ระบบได้เป็นอย่างดีก็ไม่อาจจะเตรียมไว้สำหรับการเปลี่ยนแปลงในขนาดของดิสก์ (แม้ว่าพื้นที่บนดิสก์ใหม่)
Joakim Elofsson

จริงพาร์ติชันโคลนในดิสก์ใหม่จะมีขนาดเท่ากับพาร์ติชั่นดั้งเดิมของดิสก์เก่าดังนั้นคุณต้องขยายมันเพื่อใช้ดิสก์เต็มใหม่ (ฉันจะใช้ gparted) หากคุณต้องการเปลี่ยนระบบไฟล์ด้วยวิธี "cp -a" ที่กล่าวถึงในคำตอบอื่นจะดีกว่า
เฟร็ดแฮมิลตัน

คุณสามารถปรับขนาดไฟล์ ext2-3-4 filesytems โดยใช้ resize2fs ระบบไฟล์อื่นมีเครื่องมือที่คล้ายกัน สำหรับส่วนขยายยังเป็นไปได้ที่จะลดขนาดของระบบไฟล์ ฉันชอบสิ่งนี้มากกว่าวิธี cp / tar / dump
Kristof Provost
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.