मैंने सिर्फ अपना रूट विभाजन (डिस्ट-अपग्रेड की प्रत्याशा में), लिलो.कॉन्फ़ और 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=/sbin/init
सिस्टम को सही ढंग से बूट करने के लिए बनाता है। व्यवहार अजीब है। लिनक्स कर्नेल के लिए खोज करनी चाहिए /sbin/init
डिफ़ॉल्ट रूप से और यदि यह निष्पादित करने में सक्षम नहीं है init
यह कर्नेल घबराहट में समाप्त होना चाहिए।
boot_delay=500
। के संबंध में भी /bin/sh
: यह शायद गतिशील रूप से जुड़ा हुआ है। यदि ऐसा है तो मूल फाइलसिस्टम पर डायनेमिक लाइब्रेरी हैं?
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
।
init=...
विकल्प व्यवहार को नहीं बदलता है, यह सबसे अधिक संभावना है कि बूट प्रक्रिया विफल हो से पहले init का शुभारंभ ...