การย้าย / การบูตและ MBR ไปยังไดรฟ์ใหม่


11

ฉันมีเซิร์ฟเวอร์ CentOS 6 ที่มีฮาร์ดไดรฟ์สองตัวอยู่ในนั้น ไดรฟ์ 3TB ตัวเก่าของฉันมอบปัญหาให้ฉันดังนั้นฉันจึงนำสิ่งต่าง ๆ ไปสู่ไดรฟ์ใหม่ เนื่องจากLVM ของฉัน/และ/homeพาร์ติชันได้รับการจัดการโดย LVM จึงง่ายต่อการย้ายข้อมูลไปยังไดรฟ์ใหม่ ตอนนี้ฉันต้องการย้าย/bootพาร์ติชันของฉันและ MBR ที่ทำให้ทุกอย่างเริ่มต้นขึ้น

ฉันโหลดซีดีสดและพาร์ติชันrsyncedของฉัน/bootไปยังพาร์ติชันขนาดเดียวกันในไดรฟ์ใหม่ ฉันพยายามคัดลอก MBR ของฉันด้วยคำสั่งต่อไปนี้:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

หลังจากทำสิ่งนี้ฉันเริ่มระบบใหม่บอก BIOS ของฉันไม่ให้ดูฮาร์ดไดรฟ์เก่าในระหว่างรอบการบู๊ตและดูเฉพาะไดรฟ์ใหม่ แต่สิ่งที่ฉันจบลงคือเคอร์เซอร์กะพริบ

ฉันพลาดขั้นตอนที่นี่ไหม? หรือมีอย่างอื่นที่ฉันต้องทำเพื่อให้ทุกอย่างเริ่มระบบเพื่อให้ฉันสามารถลบไดรฟ์เก่าของฉันได้อย่างสมบูรณ์?

แก้ไข: ฉันเริ่มคิด rsync ไม่ใช่วิธีคัดลอก / boot พาร์ทิชันจากไดรฟ์หนึ่งไปยังอีก จากคำแนะนำนี้ฉันลองใช้คำสั่ง dump แทน ในคำสั่งนี้ฉันได้คัดลอกพาร์ติชั่นบูตเก่าที่ไม่ได้ต่อเชื่อมไปยังพาร์ติชั่นบูตใหม่ที่ว่างเปล่าของฉัน

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

ฉันได้รับข้อผิดพลาดด้วง 15 ในการบู๊ตซึ่งดีกว่าเคอร์เซอร์กะพริบ แต่ฉันไม่รู้ว่าใกล้กับโซลูชันหรือไม่


ทำไมไม่ติดตั้งด้วงในไดรฟ์ใหม่
frostschutz

ทุกครั้งที่ฉันเหนื่อยกับการติดตั้งด้วงฉันจะบูตเครื่องและรับพรอมต์ด้วงเท่านั้น
Cloudkiller

คำตอบ:


3

หากฮาร์ดดิสก์ทั้งสองมีขนาดเท่ากัน (หรือมีขนาดใหญ่กว่า) ทำไมคุณไม่เพียงคัดลอกดิสก์เก่าไปยังดิสก์ใหม่ กล่าวคือ

dd if=/dev/sda of=/dev/sdb

ทีนี้ถ้าฮาร์ดดิสก์ตัวใหม่ใหญ่กว่าให้เปลี่ยนขนาดพาร์ติชั่นเป็นแบบแยกส่วนหรือแยกส่วน ทั้งหมดนี้เป็นการบูทจากแท่งซีดี / USB สด


พวกเขามีขนาดแตกต่างกัน 3tb เป็นเพียง overkill สำหรับเซิร์ฟเวอร์ดังนั้นฉันย้ายลงไปที่ 1tb raptor หวังว่าจะได้ความเร็วเพิ่มขึ้นอีกเล็กน้อย ไม่ว่าการโคลนนิ่งจะไม่เป็นปัญหา อย่างน้อยส่วน LVM ก็เคลื่อนไหวได้อย่างง่ายดายและปรากฏว่าพาร์ติชันสำหรับบู๊ตถูกคัดลอกมาอย่างสมบูรณ์ด้วยการถ่ายโอนข้อมูลล่าสุดของฉัน ตอนนี้ฉันคิดว่าปัญหาเกี่ยวข้องกับด้วงหรือ MBR ของฉัน ฉันคิดว่าปัญหาคือฉันไม่รู้เพียงพอเกี่ยวกับ grub2 และวิธีโต้ตอบกับ LVM เพื่อแก้ไข
Cloudkiller

การใช้ dd ซึ่งทำบิตสำหรับการคัดลอกบิตเป็นวิธีโบราณในการทำการย้ายข้อมูลโดยเฉพาะอย่างยิ่งเมื่อขนาดของดิสก์อยู่ในช่วงเทราไบต์และบ่อยครั้งกว่าปริมาณข้อมูลจริงน้อยกว่า 10gb บนดิสก์ การติดตั้ง SUSE แบบสดใหม่ด้วยการติดตั้งไลบรารี่จำนวนมากทำให้ฉันมีขนาดประมาณ 5GB บนดิสก์ซึ่งฉันใช้เป็นไฟล์เดียวและใช้เมมโมรี่สติ๊กขนาด 8GB เพื่อย้ายไฟล์ tar นั้นไปรอบ ๆ บูตพาร์ทิชันไม่ว่าจะเป็น EFI หรือ MBR MB
Ron

ถ้าคุณสามารถใช้ EFI หรือ UEFI แทน BIOS และมีพาร์ติชันสำหรับเริ่มระบบ EFI ผ่าน GPT แทนที่จะเป็น MBR & บูตพาร์ติชันมันช่วยให้ง่ายขึ้นเพียงทำการฟอร์แมตพาร์ติชัน EFI เป็น fat32 และคัดลอกไฟล์ที่เกี่ยวข้องเหล่านั้น มิฉะนั้นสำหรับ MBR คุณต้องยกเลิกการรับรองวิธีการทำงานแก้ไขที่อยู่ภายในที่เกี่ยวข้องกับดิสก์ใหม่แล้วติดตั้ง MBR ใหม่บนดิสก์ใหม่ในเซกเตอร์แรกเพื่อให้ BIOS สามารถเข้าถึงได้อย่างถูกต้อง EFI มากดีกว่าถ้าฮาร์ดแวร์ของคุณมีความสามารถ EFI
รอน

และ ELILO นั้นดีกว่า GRUB / GRUB2 สิ่งที่มากเกินไปในด้วงที่ฉันไม่เคยใช้และทำให้สิ่งต่าง ๆ ซับซ้อน หนึ่งไฟล์ elilo.conf และคุณทำเสร็จแล้ว! ถ้ามันไม่บูทเพียงไฟล์เดียวที่จะมองเข้าไปและแก้ไข
ron

4

ปรากฎว่าการใช้ rsync หรือ dump เพื่อคัดลอกพาร์ติชั่น / boot ทำให้เกิดปัญหา จากคำตอบของ erick ด้านบนฉันบูตซีดีสดเข้าสู่โหมดช่วยเหลือและรันคำสั่ง dd ต่อไปนี้

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

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

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


นี่เป็นตัวอย่างที่ดีของความไม่รู้คือความสุขตั้งแต่เริ่มทำงาน ถามตัวคุณเองว่าซีดีกู้คืนช่วยให้คุณแก้ไขปัญหาใน MBR ได้อย่างไร มีดิสก์สองแผ่นในระบบในเวลาเดียวกันอันไหนคือ sda และ sdb และเมื่อคุณลบดิสก์เก่าและมีเพียงดิสก์ใหม่การเปลี่ยนแปลงนั้นจะกลายเป็น sda หรือ sdb หรือไม่?
Ron

ขึ้นอยู่กับสิ่งที่คุณกำลังทำมันอาจไม่สำคัญ แต่โดยทั่วไปแล้วการบูตโดยหรือระบุดิสก์ด้วยวิธีที่ไม่ซ้ำกันเช่นโดย device-id หรือ UUID
ron

การใช้ dd และ MBR นั้นเหมือนกับการใช้จุดและคอนเดนเซอร์ในเครื่องยนต์มากกว่าการจุดระเบิดด้วยอิเลคทรอนิกส์ด้วยการฉีดน้ำมันเชื้อเพลิงอิเล็กทรอนิกส์ (EFI) ... การเล่นสำนวนตั้งใจ ... และไม่ใช้ EFI เพราะไม่เข้าใจอย่างสมบูรณ์
ron

3

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

หมายเหตุ: เมื่อฉันใช้ "/ dev / sdx" ฉันถือว่าคุณรู้ว่า "sdx" จำเป็นต้องเปลี่ยนเป็นชื่อของดิสก์ / โวลุ่มที่คุณต้องการเป็น / boot

  • ใช้ fdisk (ไม่ใช่ cfdisk) เพื่อพาร์ติชันด้วยประเภท 83 (ส่วน linux ปกติ) และทำเครื่องหมายว่าสามารถบูตได้
    • เหตุผลที่ fdisk: cfdisk เริ่มพาร์ติชันเร็วเกินไปโดยไม่มีที่ว่างสำหรับบูตโหลดเดอร์ จำไว้ว่าบูตโหลดเดอร์จำเป็นต้องพอดีกับพาร์ติชั่น
  • สร้างระบบไฟล์บนพาร์ติชัน ต่อ [234], xfs คนอื่น ๆ ?.
  • เมานต์ที่ / boot
  • คัดลอกไฟล์ * .img จากไฟล์เก่า / บู๊ตลงใน / boot ... อย่างน้อยไฟล์ที่คุณต้องการเก็บไว้
  • ฉันยังคัดลอกไฟล์ vmlinuz- * จากเก่า / boot ไปยัง / boot …ไม่แน่ใจว่าจำเป็นหรือไม่
  • เรียกใช้ grub2-install / dev / sdx
    • หมายเหตุ 1: หากคุณใช้ด้วง (แทน grub2) ฉันเชื่อว่าคำสั่งที่ถูกต้องคือ grub-install / dev / sdx
    • หมายเหตุ 2: สิ่งนี้จะติดตั้งก่อนพาร์ติชันที่เราเพิ่งจัดรูปแบบดังนั้นอย่าชี้ไปที่ / dev / sdx1!
  • รัน grub2-mkconfig -o /boot/grub2/grub.cfg
  • อย่าลืมอัปเดต / etc / fstab สำหรับ / boot

การอ้างอิง: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.patriotmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso /blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2


2

ปัญหาคือคุณไม่ควรใช้ddเพื่อคัดลอก MBR เช่นนั้น คุณเพียงแค่ต้องติดตั้งด้วงบนไดรฟ์ใหม่เพื่อรับMBR ที่อัปเดตอย่างถูกต้อง MBR มีตำแหน่งของไฟล์ grub stage 2 ซึ่งเปลี่ยนไปเมื่อคุณกู้คืนดัมพ์

นอกจากนี้คุณควรอัปเกรดเป็น grub2 เนื่องจาก grub legacy ไม่ได้ถูกดูแลเป็นเวลาหลายปีและ grub2 ไม่ต้องการพาร์ติชั่นที่ไม่ใช่ lvm / boot


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