วิธีย้ายพาร์ติชั่นสำหรับบูตและรูทไปยังไดรฟ์อื่น


27

ฉันมีสองไดรฟ์ในคอมพิวเตอร์ของฉันที่มีการกำหนดค่าต่อไปนี้:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

น่าเสียดายที่ไดรฟ์ 2 ดูเหมือนว่ากำลังจะตายเพราะการพยายามเขียนถึงมันทำให้ฉันมีข้อผิดพลาดและการตรวจสอบการตั้งค่าสมาร์ทแสดงถึงสถานการณ์ที่น่าเศร้า

ฉันมีพื้นที่เหลือเฟือใน Drive 1 ดังนั้นสิ่งที่ฉันต้องการทำคือย้ายพาร์ติชั่น / และ / boot ไปที่นั้นลบ Drive 2 ออกจากระบบแทนที่ Drive 2 ด้วยไดรฟ์ใหม่แล้วย้อนกลับกระบวนการ

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


นี่คือสิ่งที่ฉันต้องทำเช่นกัน ฉันเขียนบล็อกพร้อมคำแนะนำแบบเต็มเกี่ยวกับวิธีย้ายพาร์ติชั่นรูท / ไปยัง / โฮม
Lucas

คำตอบ:


29

คุณจะต้องบูตจากซีดีสด เพิ่มพาร์ติชันสำหรับพาร์ติชันเหล่านั้นลงในดิสก์ 1 คัดลอกเนื้อหาทั้งหมดแล้วใช้sudo blkidเพื่อรับ UUID ของแต่ละพาร์ติชัน บนใหม่ของดิสก์ 1 / แก้ไข / etc / fstab เพื่อใช้ UUID ใหม่ที่คุณเพิ่งค้นหา

การอัพเดต GRUB ขึ้นอยู่กับว่าเป็น GRUB1 หรือ GRUB2 หาก GRUB1 คุณต้องแก้ไข /boot/grub/device.map

ถ้า GRUB2 ฉันคิดว่าคุณต้องติดตั้งพาร์ติชันของคุณเพราะพวกเขาจะอยู่ในสถานการณ์จริง ตัวอย่างเช่น:

sudo mkdir /media/root
sudo mount /dev/sda1 /media/root
sudo mount /dev/sda2 /media/root/boot
sudo mount /dev/sda3 /media/root/home

(การกรอกสิ่งที่พาร์ทิชันที่แท้จริงคือสิ่งที่คุณคัดลอกสิ่งที่แน่นอน)

จากนั้นผูกเมาท์ / proc และ / dev ใน / media / root:

sudo mount -B /proc /media/root/proc
sudo mount -B /dev /media/root/dev
sudo mount -B /sys /media/root/sys

ตอนนี้เข้าไปในไดรฟ์เพื่อให้คุณสามารถบังคับให้ด้วงอัพเดตตัวเองตามเลย์เอาต์ใหม่:

sudo chroot /media/root
sudo update-grub

คำสั่งที่สองจะทำการร้องเรียนหนึ่งครั้ง (ฉันลืมว่ามันคืออะไร ... ) แต่ก็ไม่เป็นไร

ทดสอบโดยการถอดไดรฟ์ที่ไม่ดีออก หากไม่สามารถใช้งานได้ไดรฟ์ที่ไม่ดีควรยังสามารถบู๊ตระบบได้ แต่ฉันเชื่อว่านี่เป็นขั้นตอนที่จำเป็นทั้งหมด


3
FYI สำหรับทุกคนที่ดูวันนี้สิ่งนี้ไม่สามารถใช้กับการตั้งค่า EFI คุณต้องติดตั้ง/media/root/boot/efiเหนือสิ่งอื่นใด
wjandrea

1
ฉันต้องไปsudo grub-install /dev/sdaก่อนsudo update-grub
วิลเลียม Mortada

5

หากคุณเปลี่ยนไดรฟ์ทันทีคุณสามารถใช้งานได้dd(ลองใช้กับเซิร์ฟเวอร์ของฉันเมื่อหลายเดือนก่อนและใช้งานได้อย่างมีเสน่ห์)

คุณจะต้องมีซีดีบูตสำหรับสิ่งนี้เช่นกัน

  1. เริ่ม boot-CD
  2. เมานต์ไดรฟ์ 1 เท่านั้น
  3. Run dd if=/dev/sdb1 of=/media/drive1/backuproot.img- sdb1 เป็น/พาร์ติชั่นroot ( ) ของคุณ นี่จะเป็นการบันทึกพาร์ติชันทั้งหมดไว้ในไฟล์
    • เหมือนกันสำหรับ /boot
  4. ปิด, เปลี่ยนดิสก์, เปิดเครื่อง
  5. วิ่งdd if=/media/drive1/backuproot.img of=/dev/sdb1- เขียนมันกลับมา
    • เหมือนกันสำหรับ /boot

ด้านบนจะสร้างพาร์ติชัน 2 ขนาดที่แน่นอนเหมือนกับที่เคยมีมา คุณอาจต้องปรับด้วง (ตรวจสอบ macos โพสต์)

หากคุณต้องการปรับขนาดพาร์ติชันของคุณ (เหมือนที่ฉันทำ)

  1. สร้างพาร์ติชัน 2 บนไดรฟ์ใหม่ (สำหรับ/และ/bootขนาดใดก็ได้ที่คุณต้องการ)
  2. เมานต์อิมเมจสำรอง: mount /media/drive1/backuproot.img /media/backuproot/
  3. เมานต์/พาร์ติชันที่ว่างเปล่า:mount /dev/sdb1 /media/sdb1/
  4. คัดลอกเนื้อหาไปยังพาร์ติชันใหม่ (ฉันไม่แน่ใจเกี่ยวกับคำสั่งนี้มันสำคัญมากที่จะต้องรักษาความเป็นเจ้าของcp -Rอย่าทำ!) cp -R --preserve=all /media/backuproot/* /media/sdb1
    • เหมือนกันสำหรับ /boot/

สิ่งนี้ควรทำ


ปรากฎว่าไดรฟ์ "40GB" ใหม่ที่ฉันพยายามติดตั้งนั้นเล็กกว่าไดรฟ์ "40GB" ปัจจุบันของฉัน ฉันเชื่อมต่อพวกเขาทั้งคู่แล้วและฉันก็บูทเป็น liveCD มีวิธีง่าย ๆ ที่จะเริ่มจากคนเก่าไปสู่คนใหม่และเรียกมันว่าเป็นข้อตกลงที่ทำได้หรือไม่?
mlissner

จริงๆแล้วฉันเรียงคำถามนี้ออก พาร์ติชันที่มีขนาดใหญ่เกินไปคือพาร์ติชัน ext4 ดังนั้นฉันบูตบูท liveCD และใช้ gparted เพื่อลดขนาดลงเล็กน้อย
mlissner

4

ทางออกสุดท้ายของฉันคือการผสมผสานเทคนิคต่าง ๆ :

  1. ฉันเชื่อมต่อไดรฟ์ที่กำลังจะตายและเปลี่ยนเป็นคอมพิวเตอร์พร้อมกัน
  2. ไดรฟ์ใหม่มีขนาดเล็กกว่าเก่าดังนั้นฉันจึงย่อขนาดพาร์ติชันเก่าโดยใช้ GParted
  3. หลังจากทำเช่นนั้นฉันก็คัดลอกพาร์ติชั่นในไดรฟ์เก่าและวางมันลงบนใหม่ (เช่นใช้ GParted)
  4. ต่อไปฉันเพิ่มการตั้งค่าสถานะการบูตลงในพาร์ติชันที่ถูกต้องบนไดรฟ์ใหม่ดังนั้นจึงเป็นกระจกสะท้อนของไดรฟ์เก่าได้อย่างมีประสิทธิภาพ

ทั้งหมดนี้ทำงานได้ดี แต่ฉันต้องการที่จะปรับปรุง grub2 ตามคำแนะนำที่นี่

หลังจากเสร็จสิ้นสิ่งต่าง ๆ ดูเหมือนจะทำงาน

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