GRUB을 설치한 후 Booting 실패에 대한 질문 입니다.

hyper9의 이미지

지금 해보고 있는 내용을 간단히 설명드리면요,
USB를 booting 가능하게 만들어서 HDD가 있는 system에서도
일단 USB로 booting을 해보려고 합니다.

일단 USB memory 에 boot directory를 만들고, 다음과 같은 file들을 넣어두었습니다.

config-2.6.29.6
efi
grub
initrd-2.6.29.6.img
initrd.img -> initrd-2.6.29.6.img
lost+found
System.map -> System.map-2.6.29.6
System.map-2.6.29.6
vmlinuz -> vmlinuz-2.6.29.6
vmlinuz-2.6.29.6

그리고 /boot/grub/device.map은
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/sda
(hd2) /dev/sdb
입니다.

grub.conf의 내용은 아래와 같습니다.

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/hda3
#          initrd /initrd-version.img
#boot=/dev/hda
default=1
serial --unit=0 --speed=9600
terminal --timeout=0 console serial
timeout=8
#hiddenmenu
splashimage=(hd0,0)/grub/splash.xpm.gz
title System Kernel - Over VGA port
        root (hd0,0)
        kernel /vmlinuz ro root=LABEL=/ PROMPT_NO nmi_watchdog=1 quiet
        initrd /initrd.img
title System Kernel - Over serial port
        root (hd0,0)
        kernel /vmlinuz ro root=LABEL=/ PROMPT_NO console=tty0 console=ttyS0,9600 nmi_watchdog=1 quiet
        initrd /initrd.img

일단 booting을 하면 위의 grub.conf에 설정된 것 같이 2개의 선택사항이 display되고 GRUB은 정상적으로
불리어지는 것 같습니다.

그리고 이 중에 하나를 선택하면 그 때부터 화면이 아무런 error 없이 조용해집니다.
무슨 error라도 나와야 더 볼것 같은데,,그냥 조용해지니,,답답하기만하네요.

일단은 System에는 하나의 hard disk가 있고, 지금 USB memory를 사용해서 booting을 시도 하는 중이었습니다.
따라서 System에는 2개의 disk가 있는 셈입니다.

System Hard Disk는 아무 내용도 없고 format이 된 상태입니다.

'c' command를 이용해서 GRUB의 command line mode로 들어가서
GRUB> find /boot/grub/stage1
이라고 해보면
Error 15 : File not found
라고 나옵니다.

실제로 USB memory에는 /boot/grub/stage1이라는 file은 존재하는데
어떤 이유에서인지 제대로 찾지 못하는 것 같습니다.

어떻게 접근해보는 것이 좋은지 조언을 부탁드리고 싶습니다.
그럼,,미리 감사드립니다.

hyper9의 이미지

'c' command를 이용해서 GRUB의 command line mode로 들어가서
GRUB> find /boot/grub/stage1
이라고 해보면
Error 15 : File not found
라고 나옵니다.

이 부분이 특히 궁금합니다.
다른 것도 모르긴 하지만요.

어떤 것이 잘못되어 있을 때 일어날 수 있는걸까요?
조언 미리 감사드립니다. ^^

rogon3의 이미지

잘 모르지만, grub 에서의 find 명령은 OS에서 익숙한 find 명령과 다른 형태의 파일을 찾거나, 혹은 C 를 입력하기 전에 커서가 위치한 부팅메뉴의 파티션 위치를 확인할 수 있는 파일들만 찾습니다

예를 들어 확장자가 mod 나 lst 인 apple.mod 나 menu.lst 파일인 경우 그 파일을 찾았을 때 에러 메세지는 나오지 않지만, apple.mod 나 menu.lst 를 출력하는게 아니라 (hd0,2) 와 같이 grub 편집모드로 들어오기 전에 커서가 위치한 부팅메뉴의 파티션 위치를 출력해줄 뿐입니다

따라서 질문자의 파일 형식들은 파티션 위치를 알려주거나 grub 의 find 명령으로 찾을 수 있는 형태의 파일이 아니기에 error 15 메세지만 보여주는게 아닐까 짐작합니다.

하지만, $ find /boot/grub/ 상태에서 Tab 키를 누르면 /boot/grub 디렉토리 안의 파일 목록은 형식에 상관없이 확인할 수 있습니다

확실히 모르기 때문에 답도 개판이 됐는데, 어쨌든 파일 목록 확인하시려면 Tab 키를 누르세요

*******************************
데비안과 세벌식 사용자입니다

*************************************

*******************************
데비안과 세벌식 사용자입니다

*************************************

hyper9의 이미지

설명을 해주신 내용을 잘 이해 못해서 다시 질문을 드립니다.

-------------------------------------------------------
grub 에서의 find 명령은 OS에서 익숙한 find 명령과 다른 형태의 파일을 찾거나, 혹은 C 를 입력하기 전에 커서가 위치한 부팅메뉴의 파티션 위치를 확인할 수 있는 파일들만 찾습니다
-------------------------------------------------------
->
이 말씀은 GRUB에서의 find 명령은 OS에서 사용하는 find명령과 다르다는 의미인가요?
아니면 OS에서 find로 찾을 수 있는 file과는 다른 형태의 file들만 찾을 수 있다는 말씀이신가요?
->
그리고 C를 입력하기 전에 Cursor가 위치한 booting Menu 의 partition 위치를 확인할 수 있는 file들만 찾는다는 의미에 대해서 다시 한번 여쭤보겠습니다.
일단 C를 입력하기 전에 GRUB이 표시해주는 booting menu는 "/boot/grub/grub.conf"에 의해서 표시되는 내용을 따르는 것 같습니다.
그리고 실제로 표시되는 내용도 /boot/grub/grub.conf의 내용이 맞고요.
위에 제가 올렸던 내용에 따른다면 "System Kernel - Over VGA port" 와 "System Kernel - Over serial port" 이렇게
두 가지가 선택될 수 있는 것이겠다고 이해가 됩니다.
그리고 Cursor가 위치한 곳에서 Enter를 누르면 해당 partition이 선택된다는 의미이신거죠?
그렇다면 이 경우에는 두 menu가 모두 (hd0, 0)을 가리키고 있으므로 항상 hd0 가 되겠네요.
그렇다면 Grub에서의 find 명령을 사용해서는 이렇게 선택된 hd0상에서의 file만을 찾을 수 있다는 의미이신거죠?

-------------------------------------------------------------
예를 들어 확장자가 mod 나 lst 인 apple.mod 나 menu.lst 파일인 경우 그 파일을 찾았을 때 에러 메세지는 나오지 않지만, apple.mod 나 menu.lst 를 출력하는게 아니라 (hd0,2) 와 같이 grub 편집모드로 들어오기 전에 커서가 위치한 부팅메뉴의 파티션 위치를 출력해줄 뿐입니다
-------------------------------------------------------------
->
그러므로 제대로 find 명령이 실행된다면 (hd0, 0)과 같은 결과를 얻어야 하는데, 무슨 이유에서인가 제대로 찾지를 못한거네요.
저도 file이름이나 내용이 출력되는 것이 아니고, (hd0,0), (hd0,1) 와 같은 partition의 위치만 표시되는 걸로 이해하고 있었습니다.

----------------------------------------------------------
따라서 질문자의 파일 형식들은 파티션 위치를 알려주거나 grub 의 find 명령으로 찾을 수 있는 형태의 파일이 아니기에 error 15 메세지만 보여주는게 아닐까 짐작합니다.
----------------------------------------------------------
-> 제가 선택했던 file은 실제 usb memory내의 /boot/grub내에 존재하는 file이었고요. 이런 경우에 이 file이 속해있는 Partition의 위치를 알려주는 것이 file의 형태와 관련이 있다는 말씀이신가요?
저는 무슨 이유에서인가 /boot/grub/grub.conf 에 적혀있는 (hd0,0)를 grub이 제대로 찾지 못하고 있다는 생각을 했거든요.
grub.conf에는 (hd0,0)이라고 되어 있는데, 해당 parition을 제대로 찾지 못하니, 당연히 file을 찾지 못하고, 그래서 error 15
가 return된 것이 아닌가 생각을 했습니다.
그리고 그것이 /boot/grub/device.map과 연관이 있는 것은 아닌가 생각했습니다.

위의 글에서 말씀드린대로 /boot/grub/device.map의 내용은
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/sda
(hd2) /dev/sdb
입니다.

그리고 지금 System에 USB memory를 포함해서 disk가 2개 있는 셈인데요.
그렇다면 USB memory가 sda로 인식되는 것인지, 아니면 sdb로 인식되는 것인지도 확실하지 않습니다.
그리고 GRUB 이 위의 device.map을 바탕으로 disk를 인식한다면, USB memory가 sda로 인식되어 있다면 grub.conf도 (hd0,0) 이 아닌 (hd1,0)을 가지고 있어야 하는 것은 아닌지, 또는 USB memory가 sdb로 인식되어 있다면 grub.conf에서도 (hd2,0)으로 설정을 해놓아야 하는 것은 아닌지...그걸 잘 모르겠습니다.

-----------------------------------------------------
확실히 모르기 때문에 답도 개판이 됐는데, 어쨌든 파일 목록 확인하시려면 Tab 키를 누르세요
-----------------------------------------------------
->
말씀해 주신대로
GRUB> find /boot/grub/stage1 대신에 GRUB> find boot/grub/이라고 해보았는데요.
똑같이 Error 15가 발생했습니다.

조언 너무 감사드리지만, 아직도 너무 모르는게 많습니다.
조언을 더 주신다면 감사하겠습니다. ^^

rogon3의 이미지

되도않는 답으로 오히려 궁금증만 늘려드렸군요

위 댓글의 모든 내용은 제 컴퓨터에서 부팅시 grub에서 find 명령을 실행시켰을 때 나타나는 현상을 적은겁니다.

이유를 알고쓴 글이라기 보다 이미 설치된 컴퓨터에서 나타난 현상을 적은글이라고 이해해주셨으면 합니다.

grub2에는 find 가 search로 대체되었는데, http://grub.enbug.org/CommandList

grub legacy 에서의 이런 기이한 현상때문에 find 가 빠진게 아닐까하고 짐작합니다

grub 0.97 메뉴얼은 http://www.gnu.org/software/grub/manual/legacy/ 여기 있습니다

*******************************
데비안과 세벌식 사용자입니다

*************************************

*******************************
데비안과 세벌식 사용자입니다

*************************************

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.