पुरानी गुठली को हटाना क्यों असुरक्षित है?


36

मैं अपने बूट ड्राइव पर अंतरिक्ष से बाहर चला गया हूं, इसलिए मैंने पुरानी गुठली को हटाने का फैसला किया। मुझे यह पृष्ठ मिला जो बताता है कि मुझे क्या करना चाहिए: लुबंटू प्रलेखन: पुरानी गुठली निकालें

मैंने सबसे पुराना कर्नेल मैन्युअल रूप से हटा दिया है और अब यह ठीक है, लेकिन मुझे एक बात समझ में नहीं आती है: लेख के अंत में कुछ कोड हैं जो सभी पुराने कर्नेल संस्करणों को हटा सकते हैं, लेकिन इसे केवल उन्नत उपयोगकर्ताओं के लिए चिह्नित किया गया है।

मुझे वास्तव में समझ नहीं आया कि यहां क्या खतरा है। यह मूर्खतापूर्ण लगता है, लेकिन वे कहते हैं कि एक ही समय में एक विशिष्ट मशीन द्वारा उपयोग किए जाने वाले एक से अधिक कर्नेल हो सकते हैं।

क्या यह संभव है कि मेरे उबंटू मशीन पर अलग-अलग एप्लिकेशन एक साथ अलग-अलग कर्नेल का उपयोग कर सकते हैं? सभी पुरानी गुठली को हटाना अपने आप में खतरनाक क्यों माना जाता है?


8
दरअसल, लेख में "खतरे" और "असुरक्षित" शब्द नहीं हैं। आपको इस तरह के अतिरंजित निष्कर्ष कैसे मिले?
mikewhatever 12

2
एक दो बार मैंने नवीनतम कर्नेल में अपग्रेड किया है और रिबूट करने से पहले अपने पुराने कर्नेल को हटा दिया है, केवल यह खोजने के लिए कि (मेरे विशेष सिस्टम पर) कर्नेल ने काम नहीं किया और सिस्टम बूट नहीं करेगा। अब मैं पहले रिबूट करता हूं और फिर पुरानी कर्नेल को हटा देता हूं यदि सब कुछ ठीक है।
मैथ्यू पढ़ें 15

जवाबों:


50

पुरानी गुठली निकालना स्वाभाविक रूप से असुरक्षित नहीं है, लेकिन यदि आप अपने सभी गुठली निकालते हैं और रिबूट करते हैं, तो आपको एक गुस्सा ग्रब स्क्रीन पर छोड़ दिया जाएगा। फिक्सिंग जो महत्वपूर्ण जानकारी लेता है (जैसे कि लेकिन apt-get install linux-genericअंत में)।

पहली बार जब आप ऐसा करते हैं तो यह काफी रोमांचकारी होता है, लेकिन लोग अपने ग्रब मेनू को साफ करने या कुछ डिस्क स्थान को पुनर्प्राप्त करने की तलाश में नहीं होते हैं।

यह खतरा उपयोगकर्ताओं को कोड के एक ब्लॉक को कॉपी-पेस्ट करने से आता है, जो उनके लिए जाना जाता है और जोखिमों को स्वीकार किए बिना- लागू नहीं होता है। पुरानी गुठली का पता लगाने के कई उदाहरण हैं और कुछ सही हैं। यहां तक ​​कि मेरे नवीनतम प्रयास में अभी भी इसके नुकसान हैं। और हम एक ऐसे मुद्दे के बारे में बात कर रहे हैं जिसे ठीक किया जा सकता है; उबंटू के कई पोस्ट गलत तरीके से उपयोग किए जाने पर स्थायी डेटा हानि का कारण बन सकते हैं।

हम संभावित समस्याओं के प्रति उपयोगकर्ताओं को जागरूक करने के लिए जोखिम पर हस्ताक्षर करके नुकसान से बचाने की कोशिश करते हैं । सबसे अच्छी स्थिति में, उपयोगकर्ता को एक समस्या से निपटने के लिए तैयार किया जाएगा और सबसे खराब स्थिति में, कम से कम वे शिकायत नहीं कर सकते हैं कि उन्हें चेतावनी नहीं दी गई थी।


11
अपने सभी कर्नेल (स्पष्ट रूप से) को न निकालें, लेकिन वर्तमान में चल रहे कर्नेल को भी न हटाएं यदि आपने अभी एक अपडेट किया हुआ कर्नेल स्थापित किया है और अभी तक रिबूट नहीं किया है। क्यूं कर? यदि अपडेट किए गए कर्नेल में कुछ टूटता है, तो आप हमेशा ग्रब में अपने पिछले कर्नेल का चयन कर सकते हैं और काम पर वापस आ सकते हैं। अन्यथा, आप एक अनबूटेबल सिस्टम के साथ फंस जाएंगे और "लाइवसीडी गेम" (मजेदार गेम नहीं, बीटीडब्ल्यू) खेलना होगा।
नाथन उस्मान

1
यह लगभग उतना ही मजेदार है dd if=/dev/zero of=/dev/sda bs=512 count=1। मुझे याद नहीं है कि मैं क्या करने की कोशिश कर रहा था (मेरे जीवन को कष्टप्रद बनाने वाले कई बूट प्रबंधकों के बारे में)। मैंने एक लाइवसीडी के साथ लगभग सात घंटे बिताए, जो मेरे विभाजन की तालिकाओं को सुधारने की कोशिश कर रहा था।
phyrfox

1
इसका बस इतना ही आसान है, (कम से कम) एक कर्नेल जिसे परीक्षण किया जाता है और निश्चित रूप से काम कर रहा है। किसी ने - @ नथनओसमैन - को वास्तव में मेरे द्वारा अनुमान लगाए गए शब्दों में डाल दिया था। दूसरा महत्वपूर्ण सबक यहां सीखा गया है, उन चीजों को न करें जिन्हें आप परिणाम नहीं जानते हैं।
निकोलई

1
मैं "थ्रिलिंग" शब्द का उपयोग नहीं करूंगा, लेकिन जब मैंने ऐसा किया तो भावना तीव्र थी।
MDeBusk

अतीत में निश्चित कर्नेल मुद्दे होने के बाद, मुझे तीन गुठली छोड़ने में बहुत खुशी हो रही है। मैं आम तौर पर वर्तमान में चल रहे कर्नेल के साथ जाता हूं, नवीनतम कर्नेल और वर्तमान एक से ठीक पहले। यह मुझे रिबूट पर नवीनतम काम करने के लिए जाना जाता है, और अगर किसी कारण से विफल रहता है, तो यह पिछले है। यह शायद overkill है, लेकिन CYA अनुमोदित है।
झिलमिलाहट

4

पुरानी गुठली संकुल का हिस्सा है। यदि आप अभी हटाते हैं /boot/vmlinuz-3.13.0-44-genericतो आप पैकेज के टुकड़ों को सभी जगह छोड़ देंगे।

पहले पता करें कि आप कौन सा कर्नेल चला रहे हैं। इस मान के साथ कुछ भी न हटाएं इसका नाम है:

$ uname -r  
3.13.0-49-generic  

YMMV। फिर, पूछें dpkgकि यह क्या जानता है:

$ dpkg -l linux-*

उन पैकेजों में से कुछ को हटाया जा सकता है, लेकिन और क्या है? के उत्पादन से (मेरी प्रणाली पर) निकाली गई एक लाइन का उपयोग करना dpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

अब हम देखेंगे कि -3.13.0-44उनके नाम में अन्य पैकेज क्या हैं :

$ dpkg -l *-3.13.0-44*

एक बार जब आप यह सुनिश्चित करने के लिए एक अंतिम जांच करते हैं कि वर्तमान कर्नेल ( uname -r) पैकेज की सूची में नहीं है, तो आप अपनी पसंद के पैकेज प्रबंधन प्रणाली के माध्यम से उन्हें निकालना शुरू कर सकते हैं।


0

पिछली बार जब मैंने अपनी पुरानी गुठली निकाली, तो मैंने एक पुराना कोड स्निपेट उधार लिया। खैर, इस कोड स्निपेट ने मुझे नए कर्नेल को स्थापित करने के बाद रिबूट करने की आवश्यकता थी, इसलिए मुझे एक कर्नेल के बिना छोड़ दिया गया था। सौभाग्य से, मैंने इसे रिबूट करने से पहले पकड़ा था, लेकिन जैसा कि अन्य ने कहा, मुझे "गुस्सा ग्रब स्क्रीन" के साथ छोड़ दिया गया हो सकता है।

छोटी कहानी, यह बस एक ऐसी चीज़ है जिसे आसानी से गड़बड़ किया जा सकता है, जिसके परिणामस्वरूप एक ईंट प्रणाली को पुनर्प्राप्त करना मुश्किल हो सकता है।


0

यह असुरक्षित नहीं है। लिनक्स का उपयोग करके, आप वही कर सकते हैं जो आप चाहते हैं यदि आप सही कमांड जानते हैं।

में /bootनिर्देशिका, आप एक सरल कर सकते हैं ls -laएक लंबे समय के रूप में अच्छी तरह से लिस्टिंग के रूप में किसी भी छिपा फाइल या निर्देशिका खोजने के लिए (जो यदि कोई हो तो वहाँ होना चाहिए नहीं कर रहे हैं !!)।

इस जानकारी से, आप दिनांक और पुराने संस्करणों की फ़ाइलों का आकलन कर सकते हैं। उन सभी को न निकालें, लेकिन सबसे पुरानी फाइलें जो एक ही संस्करण के अनुरूप हैं।

कुछ बिंदु पर, मैं सोच रहा था कि यह संभव हो सकता है कि, यदि आपने अपने कर्नेल को स्रोत से संकलित किया है, तो आपको एक नया मोड़ देना होगा। .configफ़ाइल है, जो मुझे नहीं लगता कि अपने स्पष्टीकरण के अनुसार मामला है करते हैं, वहीं पर बनी रहेंगी।

इसलिए, यदि ऐसा होता है कि पुरानी फ़ाइलों को एक ही संस्करण से हटाने के बाद और आपकी मशीन को रिबूट करने के बाद, यह संभव हो सकता है कि आप कर्नेल आतंक से सामना करें।

सरल समाधान मशीन को लाइव यूएसबी या सीडी / डीवीडी लिनक्स के साथ बूट करना है। chrootइसमें, और कर्नेल जैसे टूल के साथ फिर से निर्माण करें dracut

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