कैसे / sbin / init लिलो बूट के दौरान पाया जाता है


2

मैंने सिर्फ अपना रूट विभाजन (डिस्ट-अपग्रेड की प्रत्याशा में), लिलो.कॉन्फ़ और fstab (क्लोन किए गए विभाजन में) में बदल दिया और लिलो को चलाया।

लेकिन अफसोस कि सिस्टम क्लोन विभाजन से बूट नहीं होगा। मैं कुछ पेजों को असभ्य कर्नेल संदेश देख सकता हूं, फिर यह बस रुक जाता है।

किसी कारण से, मैंने अच्छे विभाजन से बूट करने की कोशिश की, जोड़ना init=/bin/sh और फिर से सिस्टम बूट नहीं हुआ और एक ही कर्नेल संदेश पर रुक गया। यह माना जाता है कि "init में कुछ गड़बड़ है"।

इसलिए मैंने टेबल चालू करने का फैसला किया और पास हो गया init=/sbin/init जब "खराब" विभाजन से बूट हो रहा है और यह वास्तव में काम करता है - सिस्टम ठीक ठीक बूट हुआ।

लेकिन मुझे समझ नहीं आ रहा है कि यहाँ क्या हो रहा है। क्या किसी के पास इसके लिए स्पष्टीकरण है?

यहाँ मेरा लिलो, आत्मविश्वास है

# Automatically added by lilo postinst script
large-memory

lba32
boot=/dev/sda
root=/dev/sda3
install=/boot/boot.b
prompt
delay=30
timeout=30
vga=normal

default="Linux-3.8.2"

image=/boot/vmlinuz-3.8.2-ext4
        root=/dev/sda3
        label="Linux-3.8.2"
        vga=0x317

image=/boot/vmlinuz-3.8.2-ext4
        root=/dev/sdd3
        label="Linux-3.8.2-bak"
        vga=0x317

संपादित करें: ये कर्नेल संदेश हैं

[    3.258242] sd 6:0:0:1: [sdf] Assuming drive cache: write through
[    3.262845] sd 6:0:0:1: [sdf] Attached SCSI removable disk

अगर यह इस बिंदु पर रुक जाता है और मुझे इनमें से कोई भी दिखाई नहीं देगा:

[    3.490096] firewire_core 0000:07:06.0: created device fw0: GUID 00ca308600001a4d, S400
[    3.513091] nvidia: module license 'NVIDIA' taints kernel.
[    3.517657] Disabling lock debugging due to kernel taint
[    3.818951] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
[    3.823236] NVRM: loading NVIDIA UNIX x86 Kernel Module  310.40  Sun Mar  3 20:44:11 PST 2013

अगर बदल रहा है init=... विकल्प व्यवहार को नहीं बदलता है, यह सबसे अधिक संभावना है कि बूट प्रक्रिया विफल हो से पहले init का शुभारंभ ...
Levans

लेकिन मार्टिन ने लिखा कि इसे बदलना init=/sbin/init सिस्टम को सही ढंग से बूट करने के लिए बनाता है। व्यवहार अजीब है। लिनक्स कर्नेल के लिए खोज करनी चाहिए /sbin/init डिफ़ॉल्ट रूप से और यदि यह निष्पादित करने में सक्षम नहीं है init यह कर्नेल घबराहट में समाप्त होना चाहिए।
pabouk

Init = / bin / sh पास करने से कर्नेल घबराहट नहीं होती है। न ही यह एक खोल शुरू करता है।
Martin Drautzburg

@MartinDrautzburg: कर्नेल प्रारंभ होने से पहले अंतिम संदेश क्या हैं? जब सिस्टम सही ढंग से बूट होता है तो इन संदेशों के बाद क्या दिखाता है? उन संदेशों को देखने के लिए जिन्हें आप Shift + PgUp का उपयोग करके वापस स्क्रॉल करने का प्रयास कर सकते हैं या आप कर्नेल पैरामीटर आज़मा सकते हैं boot_delay=500। के संबंध में भी /bin/sh: यह शायद गतिशील रूप से जुड़ा हुआ है। यदि ऐसा है तो मूल फाइलसिस्टम पर डायनेमिक लाइब्रेरी हैं?
pabouk

@MartinDrautzburg: क्या आपको लगता है कि फ्रीज़ पॉइंट तक दोनों सिस्टम में समान बूट संदेश होते हैं? मैं निम्नलिखित कोशिश करूँगा: कार्य प्रणाली पर : dmesg|grep 'Command line: ' तथा cat /proc/cmdline वास्तविक बूट मापदंडों को देखने के लिए। mount तथा ls -l /proc/1/exe के वास्तविक बाइनरी को देखने के लिए init प्रक्रिया। ldd /proc/1/exe तथा cat /proc/1/maps | grep -o '/.*\.so.*$' | sort | uniq के गतिशील पुस्तकालयों को देखने के लिए init समस्याग्रस्त प्रणाली पर: बूट करने से पहले मैं अनावश्यक डिस्क को हटाने की कोशिश करूंगा /dev/sdf
pabouk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.