क्या किसी के पास यह सुझाव है कि रूट विभाजन को एक नई ड्राइव पर कैसे ले जाएं और उस ड्राइव पर बूट करने के लिए grub2 सेट करें? मुझे लगता है कि यह क्या मैं करना चाहता हूँ grub-mkconfig का निर्देशन करने के लिए कोई किस्मत नहीं है (जैसे मेरे नए रूट में chroot'int बस सभी लिपियों को भ्रमित करता है)।
बैकग्राउंड मैं डेबियन स्क्वीज एक हेडलेस लो-पावर एनएएस पर चल रहा है। मेरे मौजूदा सेटअप है /पर sda0और /bootपर sde0(एक CF कार्ड): मैं अलग की जरूरत /bootहै क्योंकि sd[a-d]एक देरी स्पिन-अप करने के लिए की जरूरत है। अब मुझे एक पुरानी 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कर्नेल छवि को खोजने के लिए एक आधा-अधूरा प्रयास sdf5किया, उसके बाद a grub-install --root-directory=/mnt/newroot /dev/sdf। लेकिन यह सिर्फ मुझे एक ग्रब बचाव शीघ्र उतरा जब मैं से बूटिंग की कोशिश की sdf।
मेरी बैकअप योजना बस को पुनर्स्थापित करना है, इसलिए एक बोनस प्रश्न (इस के लिए कोई चेकमार्क नहीं): मुझे अपना lvm2 और mdadm कॉन्फिगर करने के लिए क्या करना होगा? क्या यह सब फाइलसिस्टम में संग्रहीत है (और क्या यह स्वचालित रूप से खोजा जाएगा), या क्या मुझे इसे स्वयं लेने की आवश्यकता है?
समाधान (Maciej Piechotka के लिए धन्यवाद): जैसा कि Maciej बताते हैं, मुझे काम करने के लिए सभी ग्रब टूल के लिए एक उचित चुरोट की आवश्यकता है। संदर्भ के लिए, मैंने इसे कैसे किया:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
सभी फाइलें अब कॉपी की जाती हैं ( कॉपी रणनीतियों की चर्चा के लिए यहां देखें )। etc/fstabनई रूट को इंगित करने के लिए नया ठीक करें :
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नई रूट और चेरोट के लिए:
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 .
अब हम भविष्य की जड़ को ठीक उसी तरह से काट रहे हैं जैसे यह दिखेगा। Maciej के अनुसार, बस कॉल करना ठीक होना चाहिए grub-install, लेकिन मैंने बूटलोडर को स्थापित करने से पहले update-grubउत्पन्न पर एक नज़र पाने के लिए सबसे पहले किया /boot/grub/grub.cfg। मुझे यकीन नहीं है कि यह स्वचालित रूप से अपडेट हो जाएगा?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstabमें chroot(इस के साथ संगत होगा update-grubशिकायत की कि "\ माउंट नहीं किया गया")। क्या मैं फिर से ऐसा करने की कोशिश कर रहा था, मैं चेरोट में विशेष फ़ाइल सिस्टम को माउंट करने के लिए परेशान किए बिना पहले कोशिश करूंगा।
/etc/default/grub, और सटीक प्रतिलेख से पोस्ट करेंupdate-grub।