커널패닉 init 프로세스를 찾지 못합니다.

tt의 이미지

LFS 문서를 보고 Linux시스템을 이해하고 있습니다.

다음과 같이 하나의 하드에 파티션을 나눈뒤, 부팅했는데
init 프로세스를 찾지 못한다고 말한뒤 죽어버립니다.

...
VFS: Mounted root (ext2 filesystem) readonly.
Kernel panic: No init fount. Try passing init= option to kernel.

Device Boot Start End Blocks Id System
/dev/hda1 1 9258 74364853+ 7 HPFS/NTFS
/dev/hda2 9259 14357 40957717+ 83 Linux
/dev/hda3 14358 14488 1052257+ 82 Linux swap
/dev/hda4 * 14489 15097 4891792+ 83 Linux

MBR에 LILO가 설치되있고 /dev/hda4로 부팅하면 거기에 있는 lilo가 또 실행됩니다.
hda4의 lilo.conf입니다.

boot = /dev/hda4
prompt          # always expect prompt
timeout = 150   # wait 15 seconds
vga = normal    # force sane state
lba32           # 'linear' is deprecated
delay = 30      # delay 3 seconds if there is a stored command line
#serial = 0,1200n8      # uncomment to use COM1 too
read-only       # initailly mount roots r/o
root = current  # use "current" root
image = /boot/bzImage
  label = linux

질문은...에러메시지로 봐서 /dev/hda4가 마운트된거 같은데 왜 /sbin/init를 못찾는걸까요?

Prentice의 이미지

hda2에 기존 리눅스 시스템이 깔려 있나요? 만약 hda2가 /에 마운트된 상태에서 /mnt/hda4/path/bin/lilo.conf를 옵션으로 lilo를 실행하신다면 해당 lilo.conf의 root를 current 말고 /dev/hda4로 하셔야 할 것 같습니다.

tt의 이미지

current 를 hda4로 지정해도 마찬가지입니다...
아직 해결을 못하고있습니다 ㅜ.ㅠ

whiterock의 이미지

해당 루트 파일 시스템에 init 프로그램이 설치 되어 있는지 확인해 보세요.

흐음...

tt의 이미지

커널소스를 보니 다음과 같은 순서로 검색하더군요, 물론 init은 해당위치에 모두 있습니다.

execve("/sbin/init",argv_init,envp_init);
execve("/etc/init",argv_init,envp_init);
execve("/bin/init",argv_init,envp_init);
execve("/bin/sh",argv_init,envp_init);
panic("No init found.  Try passing init= option to kernel.");

drgno1의 이미지

root 파일 시스템이 어떤 것인지 지정해주세요.
/dev/hda4 는 boot 파일시스템이네요.
root(/) 파일시스템이 마운트 되야. /sbin/init이 실행되요~~

Be the Miracle!
Do rush at the Goal and you will be the no1.

Be the Miracle!
Do rush at the Goal and you will be the no1.

drgno1의 이미지

root = /dev/hda2 해보세요

Be the Miracle!
Do rush at the Goal and you will be the no1.

Be the Miracle!
Do rush at the Goal and you will be the no1.

tt의 이미지

제가 마운트하고자하는 파일시스템은 /dev/hda4입니다.
/dev/hda4의 lilo까지 실행되나 init 프로세스를 찾지 못하는 상태입니다.
아래는 /dev/hda4의 lilo.conf입니다.

boot = /dev/hda4
prompt          # always expect prompt
timeout = 150  # wait 15 seconds
vga = normal    # force sane state
lba32          # 'linear' is deprecated
delay = 30      # delay 3 seconds if there is a stored command line
#serial = 0,1200n8      # uncomment to use COM1 too
read-only      # initailly mount roots r/o
root = current  # use "current" root  /dev/hda4로 지정해도 마찬가지입니다.
image = /boot/bzImage
  label = linux
drgno1의 이미지

/dev/hda4는 이미 올라간상태에요
이게 올라가지 않았다면, 위의 메시지도 볼수 없을거에요
리눅스 부트 프로세스의 마지막인 init 프로세스가 root 파티션에 위치하거든요
위에서 검색하신 디렉토리가 다 root 파티션에 들어가 있습니다.
boot 파티션에는 사용자가 컴파일한 커널 이미지가 들어가있어서, 님이 위와 같은 화면을 확인할수 있었던 것이구요.

init process는 커널 이미지로 다 부팅하고 나서 나머지 프로세스를 생성하기 위한 최고레벨의 프로세스(부모) 에요

루트 파티션이 제대로 마운트가 안된다면, /sbin/init과 같은 프로세스를 실행시킬수가 없게되죠.
님이 말씀하신 /dev/hda4는 이미 마운트가 다 되서 다 사용된 상태에요,
VFS .... root ... 이 메시지에서 처럼이라면 root파티션이 마운트되었다는건데
그 마운트된 파일시스템에 /sbin/init이라는 파일이 없다는 것이니까.

root에 님이 처음에 설정하신 root 파티션(/) 을 지정해주시면 됩니다.
/dev/hda4는 boot
/dev/hda3 는 swap
/dev/hda2 가 root 파티션으로 보이네요.
/dev/hda1은 윈도우 파티션인것 같고요.

한번 확인해보세요.
Be the Miracle!
Do rush at the Goal and you will be the no1.

Be the Miracle!
Do rush at the Goal and you will be the no1.

tt의 이미지

/dev/hda4가 boot인지 root인지 모르겠습니다.

fdisk 로 파티션을 나눌때 시스템id를 83번 즉 Linux로 지정했는데
이렇게하면 /로 잡히는게 아닌지요?

현재 파티션은 다음과 같이 나눠져있고,

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1      9258  74364853+   7  HPFS/NTFS
/dev/hda2          9259     14357  40957717+  83  Linux
/dev/hda3         14358     14488   1052257+  82  Linux swap
/dev/hda4   *     14489     15097   4891792+  83  Linux

/dev/hda4를 마운트해서 init파일이 모두 존재하는것을 확인하였습니다.

[root@localhost lfs]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2             40313996   2583836  35682276   7% /
none                    254012         0    254012   0% /dev/shm
/dev/hda4              4814968    822788   3747592  19% /mnt/lfs
[root@localhost lfs]# ls /mnt/lfs
COPYING  boot  dos  home  lib         man  root  share    tmp  var
bin      dev   etc  info  lost+found  mnt  sbin  sources  usr
[root@localhost lfs]# ls /mnt/lfs/sbin/
bootlogd  init      lilo      poweroff  runlevel  sulogin
halt      killall5  mkrescue  reboot    shutdown  telinit
[root@localhost lfs]#

drgno1의 이미지

/dev/hda4가 boot라고 표시되어 있네요.(boot 파티션입니다)

그리고 df명령을 했을때, /dev/hda2가 / 에 mounted on 되어 있는 상태이네요.

Be the Miracle!
Do rush at the Goal and you will be the no1.

Be the Miracle!
Do rush at the Goal and you will be the no1.

tt의 이미지

/dev/hda2가 /에 마운트된것은 제가 4개의 lilo선택목록중 2번을 선택했기 때문입니다.

1. xp
2. linux1 (/dev/hda2)
3. linux2 (/dev/hda2)
4. linux3 (/dev/hda4)

저는 지금 4번으로 부팅하려하는것이고요,

그리고 fdisk로 /dev/hda4의 boot필드를 토글시켜서 부팅시켜도 init프로세스를 찾지못합니다.
drgno1님께서 지적해주신대로 /dev/hda4를 루트파티션으로 인식시키면 될것도같은데...

drgno1의 이미지

그렇다면 /dev/hda4를 root 파티션으로 인식 시키는 것이 올바른 해결 책 같아 보이는데요?
/dev/hda4에 몽땅 다 설치 하신거네요. ^.^
그럼 /dev/hda4만 제대로 마운트되면 해결되야 될것 같은데요.

/dev/hda4를 루트 파티션으로 인식할수 있도록 lilo conf를 손봐줘야 될듯싶습니다.

부팅이 되었다는 자체로 봐서는 /dev/hda4가 자알 마운트된 상태이라는 건데, 그거 참...@.@

Be the Miracle!
Do rush at the Goal and you will be the no1.

Be the Miracle!
Do rush at the Goal and you will be the no1.

tt의 이미지

이거참 알것같으면서 모르겠네요 ㅋㅋ
drgno1님 같이 고민해주셔서 감사합니다. 해결될때까지 경과보고하겠습니다 ㅋㅋ

세이군의 이미지

혹시 OS가 총 3개가 설치된 것이 아닌지요?
/dev/hda1 - XP(?)
/dev/hda2 - Linux 1
/dev/hda3 - Linux Swap
/dev/hda4 - Linux 2

각 파티션이 위에 적은 대로 설치가 된 건지 확인을 해 주세요.

pung96의 이미지

Quote:

Kernel panic: No init fount. Try passing init= option to kernel.

말 그대로 init을 지정해주는 것은 어떨가요.
tt의 이미지

파일시스템을 인식못하기때문에 어떠한 프로세스를 지정해도 찾지 못합니다.

woonuk의 이미지

/dev/hda4 의 lilo.conf 에서 root=/dev/hda4 로 수정한 다음에
lilo 명령을 제대로 실행하였나요?

hda2 로 부팅한 상태로 hda4 를 /mnt/lfs 에 마운트 하였다면

# chroot /mnt/lfs /bin/bash
# lilo

이과정을 해주면 될거 같은데요.

tt의 이미지

[root@localhost lfs]# chroot /mnt/lfs/ /bin/bash
chroot: /bin/bash: No such file or directory

이에러와 위의 /dev/hda4파일시스템을 접근못하는 것과 원인이 같은지는 모르겠지만
lilo소스에 있는 스크립트를 사용해서 lilo는 실행 시킬수가 있었습니다.

그런데 대체 저건 또 무슨에러인지... 분명 /bin/bash가 있는데...없다그러네요

tt의 이미지

분명 커널이 올라가고나서 파일시스템이 올라갑니다.
커널이 풀렸다는 말은 곧 파일시스템이 인식되었다는 것입니다.(부트와 루트 통으로사용)
따라서 /etc/init을 실행한것인데 그동안 init이 실행되지 않는줄 알고
파일시스템이 왜 인식이 되지않는걸까? 하고 고민을 했습니다. 바보같죠...

암튼 원인은 init프로세스 실행시 필요한 라이브러리들

[root@localhost root]# ldd /sbin/init
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000

요것들을 파일시스템에 복사해주니 해결되었습니다.
감사합니다...

drgno1의 이미지

우웃...@.@
이런 문제는 정말 @.@
어떻게 찾으셨어요~?>

축하해요~

Be the Miracle!
Do rush at the Goal and you will be the no1.

Be the Miracle!
Do rush at the Goal and you will be the no1.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.