ใครบ้างมีคำแนะนำสำหรับการย้ายพาร์ติชันรูทไปยังไดรฟ์ใหม่และตั้งค่า grub2 เพื่อบู๊ตบนไดรฟ์นั้นหรือไม่? ฉันดูเหมือนจะไม่มีโชคในการสั่ง grub-mkconfig ว่าฉันต้องการทำอะไร (เช่น chroot'int ในรูทใหม่ของฉันเพียงแค่ทำให้สคริปต์ทั้งหมดสับสน)
พื้นหลังฉันใช้ Debian Squeeze บน NAS ที่ใช้พลังงานต่ำ การตั้งค่าปัจจุบันของฉัน/
เปิดอยู่sda0
และ/boot
เปิดsde0
(การ์ด CF): ฉันต้องการแยกต่างหาก/boot
เพราะsd[a-d]
ต้องหมุนช้า ตอนนี้ฉันได้พบดิสก์ IDE 2.5 "รุ่นเก่าเพื่อใช้/
รวม/boot
ถึงอนุญาตให้ฉันหมุนดิสก์ขนาดใหญ่ทั้งหมดลง
สิ่งที่ฉันลองโดยทั่วไปฉันไป
mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot
จากนั้นฉันก็ลอง
chroot /mnt/newroot
update-grub
แต่นั่นล้มเหลวเมื่อด้วงถามว่ารูทถูกเมานท์หรือไม่ จากนั้นผมได้พยายามครึ่งใจที่การตั้งค่า/mnt/newroot/grub/grub.cfg
ที่จะหาภาพ kernel บนตามด้วยsdf5
แต่เพียงแค่นี้ฉันเป็นเจ้าของที่ดินพรอมต์กู้ภัยด้วงเมื่อฉันพยายามบูตจากgrub-install --root-directory=/mnt/newroot /dev/sdf
sdf
แผนการสำรองข้อมูลของฉันเพิ่งจะติดตั้งใหม่ดังนั้นคำถามโบนัส (ไม่มีเครื่องหมายถูกสำหรับสิ่งนี้): ฉันต้องทำอะไรเพื่อรับการกำหนดค่า lvm2 และ mdadm ของฉัน มันทั้งหมดถูกเก็บไว้ในระบบไฟล์ (และจะถูกค้นพบโดยอัตโนมัติ) หรือฉันจำเป็นต้องใช้มันเอง?
วิธีแก้ปัญหา (ขอบคุณ Maciej Piechotka): เมื่อ Maciej ชี้ให้เห็นว่าฉันต้องใช้ chroot ที่เหมาะสมสำหรับเครื่องมือด้วงทั้งหมดในการทำงาน สำหรับการอ้างอิงนี่เป็นวิธีที่ฉันทำ:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
ตอนนี้ไฟล์ทั้งหมดจะถูกคัดลอก (ดูที่นี่สำหรับการอภิปรายกลยุทธ์การคัดลอก) แก้ไข new etc/fstab
to the ชี้ไปที่รูทใหม่:
janus@nasguld:/mnt/newroot$ diff -u etc/fstab.old etc/fstab
-UUID=399b6a6d-c067-4caf-bb3e-85317d66cf46 / ext3 errors=remount-ro 0 1
-UUID=b394b614-a977-4860-bbd5-7862d2b7e02a /boot ext3 defaults 0 2
+UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 / ext3 noatime,errors=remount-ro 0 1
สุดท้ายเมานdev
ท์sys
และproc
ไปที่รูทและ chroot ใหม่:
janus@nasguld:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
janus@nasguld:/mnt/newroot$ sudo mount -t proc none /mnt/newroot/proc
janus@nasguld:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
janus@nasguld:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on
janus@nasguld:/mnt/newroot$ sudo chroot .
ตอนนี้เราถูก chrooted ไปที่รูตในอนาคตอย่างที่มันจะดู ตาม Maciej มันก็โอเคที่จะแค่โทรgrub-install
แต่ฉันได้update-grub
ก่อนเพื่อดูที่สร้างขึ้น/boot/grub/grub.cfg
ก่อนที่จะติดตั้ง bootloader ฉันไม่แน่ใจว่าจะมีการอัปเดตอัตโนมัติหรือไม่
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstab
ในchroot
(ซึ่งจะสอดคล้องกับการupdate-grub
บ่นว่า "\ ไม่ได้ติดตั้ง") หากฉันจะทำสิ่งนี้อีกครั้งฉันจะลองก่อนโดยไม่รบกวนการติดตั้งระบบไฟล์พิเศษใน chroot
/etc/default/grub
update-grub