다른 물리 하드에 있는 부트로더 살리는 법

marubazz의 이미지

결론부터 물어보자면... 2번째 하드에 설치한 리눅스 부트 로더도 살릴 수 있나요? 날라간거요.

하드가 세개인데요.
1번 하드에 윈도우 설치 되있고요.
2번 하드에 리눅스 파티션이랑, fat32로 윈도우 데이터 영역
3번은 s-ata 하드인데요.

노트북에 있는 grub는 살려본 경험이 있는데 데탑에 있는 것은 안되네요.

chroot /mnt/sysimage
grub-install /dev/hda

rescue 모드로 들어가서 이렇게 치면( hda 부분은 hdb로도 바꿔보고 hdb1 뭐 이런식으로 숫자 다 바꿔가면서 해봤거든요)
"dev/hdb1: does not have any corresponding BIOS drive" 또는 "/dev/hdb0: Not found or not a block device"

라고 나옵니다. 음... 물리적으로 다른 하드에 설치한 것은 살릴 수 없나요? 가능하다면 어떻게 해야 하는지 가르쳐 주시면 감사하겠습니다^^

dolsemix의 이미지

# vi /boot/grub/device.map
(hd0) /dev/hda
(hd1) /dev/hdb
(hd2) /dev/hdc

# grub-install --root-directory=/mnt/hdb1 /dev/hdb

이렇게 해보세요...

담배 고만 펴야겠다...

marubazz의 이미지

가르쳐 주신대로 했는데요.

mkdir: cannot create directory '/mnt/hdb1/boot':No such file or directory

라고 나옵니다.. 음.. 뭐가 문젤까요...^^;

익명 사용자의 이미지

리눅스 부트 로더도 살린다는 것이 무엇을 의미하나요?

CMOS 셋업의 부팅 순서를 바꾸는 방법으로 2번째 하드로 부팅시키는 것이라면,

# vi /boot/grub/device.map
(hd0) /dev/hdb
(hd1) /dev/hda
(hd2) /dev/hdc

로 해야 할 듯 합니다.

익명 사용자의 이미지

그리고, --root-directory=/mnt/hdb1 옵션 없이 그냥

# grub-install /dev/hdb

marubazz의 이미지

리눅스 부트 로더도 살린다는 것이 무엇을 의미하나요? -> 아.. 제가 위에 썼던 말은요. 제가 부트 로더를 살렸던건 하드 한개에 윈도우와 리눅스를 같이 깔았을때 였거든요. 그런데 한개의 하드엔 윈도우, 다른 하나엔 리눅스를 깔았을때도 부트 로더를 살릴수 있냐고 여쭤본거에요...

바로 위의 님께서 가르쳐 주신대로

# vi /boot/grub/device.map
(hd0) /dev/hdb
(hd1) /dev/hda
(hd2) /dev/hdc

# grub-install /dev/hdb

하면 부트로더가 살아나나요??
집에가서 함 해봐야겠네요..

익명 사용자의 이미지

잘 못 알려 드린 것 같습니다.

gonEH의 이미지

하드가 두개 이상이시라면, MBR도 하드 개수만큼 있겠죠..
1번하드를 hda (윈도우),
2번하드를 hdb (리눅스)라고 한다면,
1번하드에는 윈도우의 부트로더가 MBR에 설치되어 있고,
2번하드에는 리눅스의 부트로더가 MBR에 설치될겁니다. (MBR 설치시)
이러면 부트로더를 사용할 필요없이 메인보드에서 부팅위치를 설정할 수 있구요.
저같은 경우는 ASUS K8N을 쓰고 있는데 아수스 로고가 뜰때 F8을 누르면 부팅할 위치를 선택할 수 있습니다.

만약 1번하드(윈도우) MBR에 GRUB을 설치하셨다면, 리눅스로 부팅하셔서,

# grub

grub> find /boot/grub/stage1
(리눅스의 부트파티션이 나옵니다.)
grub> root (hdx,x)    <--- 아까 나온 파티션을 적습니다.
grub> setup (hd0)     <--- 윈도우 MBR에 설치할 경우.

안된다면, 리눅스 설치하셨을때 어떻게 하셨는지 자세히 올려주세요..

marubazz의 이미지

우선 위에 도움 주신분들 정말 감사합니다^^
그런데 제가 능력이 부족해서 잘 안되네요...^^;

우선 위에 분이 말씀 해주신대로 두번째 하드로 부팅하니까 정말 리눅스로 부팅이 되더군요..(초보라 이것도 신기^^;) 그런데 정확히 리눅스는 아니고 grub version0.93 이라고 하면서요 Minimal BASH-like line editing is supported. 라고 나오면서 몇줄 더 나오고요 바로

grub>

이렇게 나오더라구요... 그래서 위에 분이 말씀하신대로
grub> find /boot/grub/stage1

이렇게 했더니 "Errror 15:File not found"라고 나오네요. 그래서 그냥

grub>root (hdb,1) -> 이 부분은 hda, 그리고 숫자들 바꿔가면서 해봤습니다

위와같이 쳤더니 "Error 23: Error while parsing number" 라고 나오네요...

제가 설치했던건 레드햇 9.0이고요... 윈도우랑 리눅스 쓰던중에 윈도우를 다시 깔아서 grub가 날라간거 같습니다.(전 예전에 윈도우 다시 깔면 부트로더 날라가는것도 모르고 갑자기 리눅스가 날라간지 알고 몇번 다시 깔았었는데...^^;)

윈도우는 첫번째 하드에, 리눅스는 두번째 하드에 깔려있는데요... 음.. 그리고 s-ata하드 하나 껴있는데.. 이거는 별 영향 없겠죠???

아... 어렵네요...^^;

익명 사용자의 이미지

grub> root (hd0,0)
grub> find /boot/grub/grub.conf

이렇게 해서 파일이 있다고 나오면

grub> configfile /boot/grub/grub.conf

이렇게 해보세요.

익명 사용자의 이미지

아니면,
grub> find (hd0,0)/boot/grub/grub.conf

grub> configfile (hd0,0)/boot/grub/grub.conf

이렇게 해보세요.

GRUB에서 장치명은

/dev/hda = (hd0)
/dev/hda1 = (hd0,0)
/dev/hda2 = (hd0,1)

입니다.

marubazz의 이미지

앗...--;
클났습니다...

위에 방법도 안되서...
윈도우로 부팅이나 할려고 했떠니...
grub가 덮어 씌워져서 그런지... 첫번째 하드로 부팅해도 grub(text만 나오는) 떠버리네요.. --;

어흑... 어찌해야 하죠... ??^^;

파도의 이미지

marubazz wrote:
앗...--;
클났습니다...

위에 방법도 안되서...
윈도우로 부팅이나 할려고 했떠니...
grub가 덮어 씌워져서 그런지... 첫번째 하드로 부팅해도 grub(text만 나오는) 떠버리네요.. --;

어흑... 어찌해야 하죠... ??^^;

윈도우XP 사용하시겠죠?

윈도우 설치 CD 가지고 계신다면 복구모드로 부팅해서 fixmbr 명령을 사용하시면 될 겁니다.

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

gonEH의 이미지

fixmbr 하셔도 되지만, 멀티부팅이 해결 되실때까지만 그냥 이렇게 입력해 보세요.

grub> rootnoverify (hd0,0)
grub> makeactive
grub> chainloader +1

mbr을 덮어씌우지 않고 윈도우즈로 부팅합니다. ^^

gilho의 이미지

grub> root (hd0,0) => /dev/hda1 /boot 이곳
착각 하지 말것은 hda,hdc,hdb 모두 (hd0가 될수 있습니다.) BIOS에서 인식한 첫번째 Disk가 hd0,
다음에 인식한것은 hd1번 입니다.

hdd => 두번째 인식한 Disk에 부트로더를 넣는 예입니다.
fdisk /dev/hdd
hdd1 => 101M => /boot 영역임
hdd2 => / 할당

fsck.ext3 /dev/hdd1
mount /dev/hdd1 /mnt
cd /boot
find . | cpio -odvmu /mnt => 현재의 /boot 정보를 /mnt (hdd1)에 백업
cd /
umount /mnt

grub --no-floppy
grub> root (hd1,0) => hd1 => 두번째 인식한 HDD => hdd의 첫번째 파티션 101M를 찾는다.
grub> setup (hd1) => hd1 방금 백업 다은 정보를 가지고 hd1 (hdd) 부트 로더를 생성
grub> exit

mount /dev/hdd1 /mnt
vi /mnt/grub/grub.conf => 내용을 수정하면 바로 적용.

초보라면 어질 어질 하겠지만..
Disk 3개 정도 가지고 이틀정도 Test하면 감이 옴니다.

hd0가 hdd가 되는 이유 아시겠나요?
IDE0 hda,hdb
IDE1 hdc,hdd

이제 감이 오시나요?

제가 테스트한건 IDE1번에 두개 디스크를 붙여서 Test한것..

wfellow의 이미지

다른 디스크를 설치후 원디스크의 mbr과 동일하게 설정 후, 백업...
dd if=/dev/hdX of=mbr.img bs=446 count=1

디립따 부어 버리기...
dd if=mbr.img of=/dev/hda

lilo나 grub등은 처음 446바이트에 내용이 있습니다.
왜 446바이트인지는 ,,, (노현정)딱~ 공부하세요~

ps: dd명령 위험한겁니다.. /dev/hdX부분하고 man dd보시고 테스트 후, 해보셔여.

-----[꼬릿말 절취선 시작]-----
삽질전에 먼저 구글신께 기도하자.
-----[꼬릿말 절취선 끝]-----

-----[꼬릿말 절취선 시작]-----
삽질전에 먼저 구글신께 기도하자.
-----[꼬릿말 절취선 끝]-----

wfellow의 이미지

올리고 보니 1년전의 질문이네요??
그렇다면 gilho님은 그 전설의 유물 발굴단????

-----[꼬릿말 절취선 시작]-----
삽질전에 먼저 구글신께 기도하자.
-----[꼬릿말 절취선 끝]-----

-----[꼬릿말 절취선 시작]-----
삽질전에 먼저 구글신께 기도하자.
-----[꼬릿말 절취선 끝]-----

doodoo의 이미지

여기까지 읽고 함참 킥킥거렸습니다....

유물 발굴단...가슴에 와닷네요 ^^;

댓글 달기

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