उबंटू का उदाहरण लें तो हम बता सकते हैं गिरी कस्टम क्या distro के साथ आता है के बजाय संकलित किया गया था?
उबंटू का उदाहरण लें तो हम बता सकते हैं गिरी कस्टम क्या distro के साथ आता है के बजाय संकलित किया गया था?
जवाबों:
ज़रूर, बस जाँच करें कि क्या dpkg
इसके बारे में जानता है।
पहले आपके द्वारा चलाए जा रहे कर्नेल संस्करण की जाँच करें।
uname -a
Linux orwell 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
फिर डेटाबेस dpkg
में कर्नेल इमेज फ़ाइल को खोजने के लिए कहें dpkg
।
dpkg -S /boot/vmlinuz-3.2.0-4-amd64
linux-image-3.2.0-4-amd64: /boot/vmlinuz-3.2.0-4-amd64
या, बेहतर, पैकेज dlocate
से उपयोग करें dlocate
। dlocate
पहले dpkg
डेटाबेस से कैश बनाता है , और उसका उपयोग करता है। इसलिए यह तेज है।
dlocate /boot/vmlinuz-3.2.0-4-amd64
linux-image-3.2.0-4-amd64: /boot/vmlinuz-3.2.0-4-amd64
अंत में, जांचें कि डेबियन अभिलेखागार में यह पैकेज है।
apt-cache policy linux-image-3.2.0-4-amd64
linux-image-3.2.0-4-amd64:
Installed: 3.2.68-1+deb7u1
Candidate: 3.2.68-1+deb7u1
Version table:
*** 3.2.68-1+deb7u1 0
500 http://security.debian.org/ wheezy/updates/main amd64 Packages
100 /var/lib/dpkg/status
3.2.65-1 0
500 http://httpredir.debian.org/debian/ wheezy/main amd64 Packages
वे नहीं करते हैं, तो यह एक कस्टम पैकेज है। बेशक, अगर dpkg छवि फ़ाइल के बारे में नहीं जानता है, तो आपका कर्नेल एक पैकेज का हिस्सा नहीं है, लेकिन इसे स्थानीय रूप से संकलित किया गया है।
ध्यान दें कि apt
कर सकते हैं डेबियन संग्रह में एक पैकेज और एक ही नाम के एक स्थानीय रूप से संकलित एक के बीच अंतर बताने। मुझे लगता है कि यह पैकेज के md5sum की जांच करता है, लेकिन मैं यह विवरण भूल जाता हूं कि यह कैसे करता है। बाइनरी पैकेज में हैश के बारे में जानकारी होती है apt-cache show linux-image-3.2.0-4-amd64
, उदाहरण के लिए नीचे देखें । जैसे
Package: linux-image-3.2.0-4-amd64
Source: linux
Version: 3.2.68-1+deb7u1
Installed-Size: 105729
[...]
Size: 23483788
MD5sum: f9736f30f8b68ae79b2747d8a710ce28
SHA1: 64bfde903892801dccd04b52b12316901a02cd96
SHA256: 775814b3eff4a964b593c0bdeaac20587a4e3ddb1257a9d2bfcf1e9d3b9bfd15
apt-cache show ...
काम करता है। मुझे लगता है मैं गलत समझ रहा हूं। अब सही हो रहा है।
न्यूनतम रूप से, uname -r
कर्नेल संस्करण देगा, जैसे कि 3.18.6
। हालांकि, जब कर्नेल संकलित किया जाता है, तो एक अतिरिक्त स्ट्रिंग को कॉन्फ़िगर किया जा सकता है और उससे जुड़ा होता है और डिस्ट्रो आमतौर पर अपने स्वयं के पैच स्तर (डैश के बाद) और स्वाद को इंगित करने के लिए ऐसा करता है, जैसे 3.18.6-32-generic
। यह एक सुराग है; जब आप कस्टम कर्नेल बनाते हैं तो स्पष्ट रूप से अपनी स्वयं की स्ट्रिंग का उपयोग करना एक और हो सकता है।
uname -v
एक स्ट्रिंग जो डिफ़ॉल्ट रूप से कुछ इस तरह से देता है
#4 SMP PREEMPT Mon Mar 9 13:55:25 EDT 2015
संख्या इस अर्थ में मनमानी है कि यह उस समय की संख्या है जब पेड़ को रीसेट किए बिना एक विशिष्ट स्रोत पेड़ का उपयोग करके बनाया गया था - यह तब उपयोगी हो सकता है जब आप अपना निर्माण कर रहे हों। SMP
एक मल्टी-टास्किंग (यानी, वास्तविक समय नहीं) इंगित करता है कर्नेल और PREEMPT शेड्यूलर के "प्रीमेशन मॉडल" से संबंधित एक और कॉन्फ़िगरेशन विकल्प है। लेकिन यहां बड़ा सुराग शायद उस समय का था जब इसे बनाया गया था। इसका उपयोग कर्नेल पर संशोधन / परिवर्तन टाइमस्टैम्प के खिलाफ मेल करने के लिए किया जा सकता है, यह ध्यान में रखते हुए कि बदला जा सकता है, जैसे, के साथ touch
। उदाहरण के लिए, stat
कर्नेल इस तरह दिखता है:
File: ‘3.19-goldilocksSpecial’
Size: 6858880 Blocks: 13400 IO Block: 4096 regular file
Device: 801h/2049d Inode: 3156605 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-02-15 15:32:29.000000000 -0500
Modify: 2015-03-03 13:55:21.000000000 -0500
Change: 2015-03-03 14:02:26.767045553 -0500
Birth: -
जो बहुत लाइन में है Mon Mar 9 13:55:25 EDT 2015
।
किसी अन्य के रूप में भी
sudo apt-cache policy linux-generic
पैकेज प्रबंधक द्वारा स्थापित संस्करण है और
uname -r
संस्करणों की तुलना करें
मेरे लिए इसके
linux-generic:
Installed: 3.19.0.15.14
Candidate: 3.19.0.15.14
तथा
3.19.0-15-generic
जो एक ही संस्करण को दर्शाता है
/boot
। मेरा कहना यह है कि मैं यह नहीं देखता कि आप uname
कुछ विकल्पों को बदलते समय सिर्फ recompile करते हैं तो आप बदलाव के आउटपुट की उम्मीद क्यों करेंगे । उस मामले में, मुझे लगता है कि उम्मीद थी apt-cache
और uname -r
एक ही जानकारी वापस आ जाएगी, तथ्य यह है कि आप स्थानीय रूप से recompiled है, के बावजूद।
मैं कहूंगा कि सबसे आम तौर पर सही जवाब "नहीं, आप नहीं कर सकते हैं"। विभिन्न तरीके हैं जो कुछ मामलों में मदद कर सकते हैं और ये पहले से ही सुझाए गए हैं, लेकिन ये सभी याद करने लगते हैं कि यह स्थिति वास्तव में कैसे बनी। सच में, यदि आप एक कस्टम कर्नेल का उपयोग कर रहे हैं, तो वह कर्नेल कुछ भी कर सकता है, जिसमें उसकी उपस्थिति छिपाना या एक अलग कर्नेल दिखाई देना शामिल है।
मुझे चिंता होगी यदि आप वास्तव में एक कस्टम कर्नेल चला रहे हैं और यह नहीं जानते हैं। यह जानने का एकमात्र विश्वसनीय तरीका है कि किस कर्नेल का उपयोग किया जा रहा है, यह ध्यान से रखें कि आप किस कर्नेल का संकलन और संस्थापन कर रहे हैं।
यदि आप वास्तव में यह सुनिश्चित नहीं कर रहे हैं कि सिस्टम क्या कर्नेल चला रहा है या यह कर्नेल किन स्रोतों से बनाया गया है या कहाँ से आया है, तो मैं गंभीरता से ओएस को ज्ञात अच्छी छवि से पुन: स्थापित करने और भविष्य में किन कर्नेल की कोशिश करने और बूट करने के बारे में अधिक सावधान रहने पर विचार करूंगा। से या उपयोग।