मैं grub.cfg में एक गलत UUID कैसे तय करूं?


5

मैं अपने पीसी पर डेबियन व्हीज़ी चलाता हूं और मैंने हाल ही में रूट विभाजन को rsync के साथ दूसरे में कॉपी किया है क्योंकि मैंने पाया कि मैंने अच्छी तरह से काम किया है (मुझे dd और ddrescue के बारे में भी पता है लेकिन वे नए विभाजन पर बेकार जगह छोड़ते हैं)। मैंने sudo tune2fs -U random / dev / hda9 के साथ नए विभाजन के लिए एक नया यादृच्छिक UUID उत्पन्न किया और fstab / और / गृह प्रविष्टियों को भी अद्यतन किया।

फिर जैसा कि मैं जानता हूं कि GRUB के बारे में मैं नए OS की जांच करने के लिए एक GRI (GRUB Customizer) का उपयोग करता हूं और GRUB में एक प्रविष्टि जोड़ता हूं और MBR -it एक /etc/grub.d प्रविष्टि बनाता है, फिर GRUB को अपडेट करता है।

स्टार्टअप पर, GRUB सूची में नया OS (sda9 पर) शामिल है, लेकिन यह पहले OS को बूट करता है (जिसे मैंने -sd5 से कॉपी किया है)।

/boot/grub/grub.cfg में नया डेबियन ओएस शामिल है लेकिन यह इस तरह दिखता है

set root='(hd0,msdos9)'  
search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556  
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=cc3bca0d-aee4-4b9c-95c2-57212cc36d4d ro quiet  
initrd /boot/initrd.img-3.2.0-2-amd64

1 uuid sda9 का है, लेकिन दूसरा uuid sda5 का है। मैं स्टार्टअप पर (ई के साथ) 2 uuid को बदल सकता हूं और यह sda9 को बूट करता है।
तो मैं grub.cfg को कैसे सही करवा सकता हूं ताकि sda9 GRUB सूची प्रविष्टि बूट sda9 से स्थायी रूप से हो जाए?

जवाबों:


4

बस संपादित करें /boot/grub/grub.cfg/और sda5 के साथ sda5 के UUID को बदलें:

search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556  
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=64662470-0e58-4dfd-90ac-43227d773556 

भविष्य में इस प्रकार की त्रुटि से बचने के लिए update-grub आप जिस सिस्टम का उपयोग करना चाहते हैं , उससे चलाएं । यदि आप इसे पुराने OS से चलाते हैं, तो यह वर्तमान रूट विभाजन को उठाएगा और उससे बूट करने के लिए grub.cfg सेट करेगा।


और अगर मैं grub.cfg को संपादित करता हूं, तो GRUB अपडेट किए जाने से पहले 2 uuid को वापस लौटाने से क्या होगा? (जैसा कि मुझे पता है, मैंने कोशिश की होगी)
मोज़ेरेला

@mozerella, क्या आपने sda9 सिस्टम या sda5 से अपडेट-ग्रब चलाया?
टेराडॉन

sda5 से, वास्तव में
mozerella

@mozerella, इसे फिर से चलाने का प्रयास करें लेकिन जब आपने sda9 OS में बूट किया हो।
टेराडॉन

मुझे सिर्फ एहसास हुआ है! sda9 के OS की अपनी grub.cfg फ़ाइल है, इसलिए मुझे sda9 पर OS से अपडेट-ग्रब चलाने की आवश्यकता है। तो यह इंगित करने के लिए धन्यवाद, क्या मैं Q को उत्तर दूंगा?
मोएज़ेला

1

जब आप इससे भागते update-grubहैं तो sda5वह पढ़ता /boot/grub/grub.cfgहै sda9जिससे नकल की गई थी sda5। पहला बूट sda5जिसमें आपका प्राथमिक OS है। फिर ठीक करने के लिए इन कमांड का उपयोग करें:

SourceUUID=cc3bca0d-aee4-4b9c-95c2-57212cc36d4d
TargetUUID=64662470-0e58-4dfd-90ac-43227d773556
sudo mkdir /mnt/clone
sudo mount -t auto -v /dev/sda9 /mnt/clone
sudo sed -i "s/$SourceUUID/$TargetUUID/g" /mnt/clone/boot/grub/grub.cfg
sudo update-grub
sudo umount /mnt/clone -l

मैं नए विभाजन स्क्रिप्ट के लिए एक Ubuntu 16.04 LTS क्लोन पर इस जवाब पर आधारित है ।


0

मुझे /boot/grub/menu.lst को हटाना पड़ा (आपको पहले बैकअप लेना चाहिए) और फिर एक नया जनरेट करने के लिए हाँ कहकर अपडेट-ग्रब करें। इसके बाद बूट करने के लिए सही विभाजन UUID का पता चला।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.