grub 복구시 chroot 와 device.map 에 대해..

1day1의 이미지

http://bbs.kldp.org/viewtopic.php?t=63005 를 테스트하고 있습니다.

과정을 말씀드리면, 기존 SCSI 하드에 debian 이 깔려 있는 상태입니다(sda1). grub 이구요.
여기에 하드를 하나 더 달고(IDE 하드-hdc)
(cd / && tar cvpf - . --exclude mnt --exclude proc ) | (cd /mnt/hdc1 && tar xpvf - ) 로 백업을 했습니다.

그다음에

Quote:
chroot /mnt/hdc1

을 하니 , hdc1 이 시스템의 / 로 바뀌어야 할텐데, 기존의 sda1 이 그대로 / 를 차지 하고 있네요.
꼭 rescue 로 부팅하고 chroot 를 해야 그런것인가요?(문제1)

다음으로 기존 grub 의 설정을 바꿔보려고, grub/menu.lst 를 보니, 이 /dev/sda1 이 hd0,0 로 되어 있습니다.
(hda1 이면 (hd0,0) 가 되고, hda2 는 hd0,1 , hdb1 은 hd1,0 이런식이잖아요.그러면 SCSI 인 경우에는 어떻게 되는 것이죠.)
IDE 하드를 추가가 되는 경우(/dev/hdc) , /dev/hdc1 는 hd2,0 로 표시되는 것인지요?

Quote:

# vi /boot/grub/device.map
(hd0) /dev/sda
(hd2) /dev/hdc

이렇게 해주긴 했는데, 맞는 것인지 모르겠습니다. (문제2)

문제1 chroot 의 경우
mount -t proc proc /mnt/hdc1/proc 이런식으로 chroot 전에 해주어야 한다는 것을 본것 같은데, 그 이유인지요?
다시 시도를 해봐야 겠습니다.

문제2 device.map 에 지정된 대로 hd0, hd1 등이 처리가 되나요?
아니면 상관없이 시스템에서 자동적으로 지정이 되는 것인지요? 시스템에서 지정이 되는 것이면 이 정보를 어디서 볼 수 있는 것이죠?

ps. 하드 이전 하는 것이 수월할 줄 알았는데, 의외로 까다로운 부분이 많네요. :cry:

1day1의 이미지

문제1 의 chroot 는 proc 을 먼저 해봐도 안되네요.
rescue 로 해야만 하는 것인지?

문제2 의 device.map 은

Quote:
# vi /boot/grub/device.map
(hd0) /dev/sda
(hd2) /dev/hdc

처럼 하면 안되고, hdc (hd2) 를 인식못하더군요.

Quote:
# vi /boot/grub/device.map
(hd0) /dev/sda
(hd1) /dev/hdc

처럼 인식하는 순서대로 해야 하는 듯 합니다.

현재 chroot 가 잘 되질 않아서, grub-install 이 제대로 안되는 듯 합니다.

F/OSS 가 함께하길..

파도의 이미지

확실하진 않지만, chroot /mnt/hdc1이렇게 해주면 그 Shell에서만 루트가 변경되는 것으로 알고 있습니다.

그래서 exit하면 루트가 원래대로 돌아온다고 알고 있습니다.

일단 하드디스크가 어떻게 인식되는지 알기 위해서는
fdisk -l을 해보세요.

device.map 파일의 설정은
컴퓨터를 켰을때 처음 부팅되는 하드디스크를 (hd0)로 맞추면 됩니다.

--------Signature--------
시스니쳐 생각 중..

1day1의 이미지

파도 wrote:
확실하진 않지만, chroot /mnt/hdc1이렇게 해주면 그 Shell에서만 루트가 변경되는 것으로 알고 있습니다.

그래서 exit하면 루트가 원래대로 돌아온다고 알고 있습니다.

일단 하드디스크가 어떻게 인식되는지 알기 위해서는
fdisk -l을 해보세요.

device.map 파일의 설정은
컴퓨터를 켰을때 처음 부팅되는 하드디스크를 (hd0)로 맞추면 됩니다.

감사합니다. ^^

fdisk -l 했을때 나오는 순서가 hd0 , hd1 .. 그 순서가 된다는 것이죠?

그리고, chroot 부분은 좀더 알아봐야 겠습니다. 제가 혼동하고 있는 부분이 있을 것도 같네요.

F/OSS 가 함께하길..

파도의 이미지

device.map은 GRUB의 stage1과 stage2가 설치될 때, 부팅하드디스크가 어느 것이냐를 알려 주는 역할을 합니다.

그러니까 fdisk -l로 출력되는 순서가 아니라 부팅시에 제일먼저 참조되는 하드디스크가 (hd0)가 되는 것입니다.

다른 하드디스크들은 fdisk -l의 순서대로 하는 것이 맞을 듯 합니다. 이것은 확인해보지 않아서 확신할 수 없습니다.

--------Signature--------
시스니쳐 생각 중..

1day1의 이미지

어느정도 해결점이 보이긴 한데, 마지막에서 또 문제가 생겼네요.

# chroot /mnt/hdc1 을 한후 df 로 보면 이상하게 나오는 것이
/mnt/hdc1/etc/mtab 이 그대로 보여서 그런것이었습니다.

grub 인스톨 까지는 된 것 같습니다.

그런데, 새로운 하드로 부팅을 하면..

Quote:
pivot_root : No such file or directory
/sbin/init : 426 : cannot open dev/console : No such file
Kernel panic : Attempted to kill init

IDE 하드를 인식하고, init 으로 넘어가야 하는것 같은데, 넘어가질 못하네요.

즉, 지금까지 과정을 보면.

1. SCSI -> IDE ( tar 로 시스템 복사 )
2. 옮긴 자료의 설정을 손보고, grub 설정 ( chroot )
3. 새로운 IDE 로 부팅 - 위의 메세지가 나오면서 kernel panic

아마도 SCSI 에서 IDE 로 옮기면서 커널이 IDE 하드의 파티션을 제대로 인식을 못하는 것같음.
위의 kenel panic 메세지가 나오기 전에 scsi 하드를 인식하고, 파티션까지 인식을 함.
IDE -> IDE 로 했다면 이상이 없을 수도 있을 듯 함. initrd 를 다시 만들어 줘야 하나?

ps. 혹시 /etc/modules 에

Quote:
ide-cd
ide-detect
항목이 있는데, 이것이 관련이 있지 않을까도 생각해 봅니다.

F/OSS 가 함께하길..

1day1의 이미지

성공했습니다. ^^

kernel panic 의 문제는 기본시스템을 SCSI 에 설치해서, IDE 에 대한 모듈이 기본적으로 올라오지 않아서 였습니다.(IDE -> IDE 인경우는 상관없을 듯함.)

/etc/modules 에

Quote:
ide-disk
ide-generic
를 넣으면 될 듯 하지만.. ^^
이것은 커널이 부팅된 다음에 로딩이 되는 것이라 안되구요.(한번 실패.. ^^;;)

커널이 로딩되기 전에 먼저 IDE 관련 모듈을 올려야 하기 때문에 답은 initrd 에 넣어야 합니다.
그래서 mkinitrd 를 사용.

Quote:
# mkinitrd -o /boot/initrd.img 커널버전

으로 initrd 를 생성해 줍니다.
이때 ide 관련 모듈은 /etc/mkinitrd/modules 에
Quote:
ide-disk
ide-generic
를 넣어 주고 위의 mkinitrd 명령으로 initrd 를 생성해 주면됩니다.(ide-disk,ide-generic 모두 필요한지는 모르겠습니다. ^^)

도움주신 분들 감사드립니다. ^^ :o :lol: :roll:

F/OSS 가 함께하길..

댓글 달기

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