기 타 grub4dos usb 부팅하면 기존 하드로 부팅이 안됩니다.
2012.05.11 21:07
menu.lst 에서
timeout 10
default 0
title Boot from HDD
chainloader (hd0)+1
rootnoverify (hd0)
title Setup Windows 7
chainloader /BOOTMGR
.....
요렇게 해서 usb 부팅하면 메뉴화면이 나오는데..
시간이 10초 지나면 기본 하드부팅을 해야되는데... 부팅이 안됩니다
그래서 인터넷을 찾아보니... hd0 이 usb 로 잡히는 경우도 있다고해서 hd0 부분을 hd1 으로 바꿔보니까...
하드 부팅이 안되고..아래 두번째 항목에 있는 윈도우 7 설치과정으로 진행됩니다
dvd 로 동일하게 레코딩해서 해보면 정상적으로 진행되는데..
왜 usb 에서는 잘 안될까요??
혹시 아시는분 답변 좀 부탁드립니다.
댓글 [7]
-
메리아 2012.05.12 09:33
-
해골77 2012.05.12 10:32 답변 감사합니다 한번 테스트 해봐야 겠습니다.
-
메리아 2012.05.12 09:45
생각난 김에 검색해보니,
find --ignore-floppies --ignore-cd /ATHENE20 명령 세줄은 통째로 빼셔도 되겠네요.(뒤쪽 명령 남기지 말고)
'||'란 명령은 'command1 || command2'일때, command1이 false면 command2를 실행하는 명령이라네요.
간단히 설명하면, 지금 이 menu.lst를 로딩한 파티션이 USB나 기타 외장하드인지 점검하는 의미라고 보입니다.
ATHENE20가
존재하면 USB인 것이고(뒤쪽명령을 수행하지 않음),
존재하지 않으면 CD/DVD라는거죠(왜냐하면 --ignore-cd 옵션때문에 cd를 검색하지 않으므로 앞부분 명령이 false가 됨).
즉 CD로 부팅했으면 간단히 하드 찾아서 부팅하고, USB로 부팅했으면 새로 map시켜서 부팅하라 이거죠.
(그러므로 파일명은 menu.lst와 루트에 있는것을 정확하게 일치시켜야하고, 또한 연결된 다른 하드디스크,USB의 루트에 존재하지 않을만한 특이한 이름이 되어야함.)
이런 세심한 배려까지 해주시던 구운고구마님이 계속 PE만들어 주셨으면 참 좋았을텐데 아쉽습니다.
전 지금도 유용히 쓰고 있는데. ㅠㅠ
어쨌건 그런 문제이므로 CD/DVD에도 쓸 요량이 아니라면, 첫 세줄은 빼고 쓰시면 될겁니다.
물론 써야한다면 위에 말한대로 파일을 새로 하나 공으로 만들어 넣어야죠.
-
해골77 2012.05.12 10:42 방금 테스트해보니... 일단 하드로 부팅을 시도하네요... 근데..제컴이 사타커넥터 1,2번이 고장이라..3번 부터 하드가 좀 뒤죽박죽 섞여있어서 그런지... 일단 bootmgr missing 메시지를 띄우고... 스페이스를 누르니...설치된 운영체제 하드로 부팅은 됐습니다.. 오늘 좀더 여러가지 체크해봐야겠습니다.... 어제 저녁내내 몇번씩 해봐도 안됐었는데.... 답변 정말 감사드리며... 오늘도 좋은 하루 보내시길 바랍니다...
-
아토믹스 2012.05.12 12:14 그러시면 차라리 부트로더를 찾아서 부팅해버리는 게 편하지 않나요..
mbr이 hd0에 없다는 것인데..
윈도우 부팅이나.. 리눅스 부팅으로 해서
부트매니저, 엔티로더, 이런식으로...
-
해골77 2012.05.12 13:25 저도 그 생각을 해봤는데.. 근데..현재 쓰는 컴은 윈도우7 이지만.. 다른 컴은 xp 쓰고 있어서요.. xp 랑 윈도우7 이랑 부트로더가 달라서.. 그럴경우에 적용하는 방법을 몰라서요.^^;;
-
지아 2012.05.14 00:02
운영체제가 설치된 하드디스크 말고 다른 저장장치에 grub를 심어 부팅을 시도할 경우에는
grub를 심은 저장장치(usb-hdd)를 시모스셋업의 부팅 우선순위에서 젤 위로 올려놓고 사용하는 건 알고 계시죠?
그럼 사타 연결포트는 어디에 연결하든 신경쓰지 마시고 시모스셋업의 부팅 우선순위 설정하는 곳에 가서
usb 저장장치를 젤 위로 올려 놓고 그 바로 아래 운영체제가 설치된 하드디스크를 놓는 걸로 순서를 맞추시고 저장하여 부팅하시면 되구요.
menu.lst 내용에서는...
title Boot from Hard Disk
map (hd0) (hd1)
map (hd1) (hd0)
map --rehook
rootnoverify (hd0,0)
chainloader +1로 하시면 됩니다.
위 내용은 시모스셋업에서 설정한 우선순위를 grub 메뉴에서 운영체제를 설치한 하드디스크로 부팅하는 것을 도와줍니다.
참고)
chainloader +1
==> 지정한 하드디스크나 파티션에서 부트가 가능한 파일을 찾는 역할을 하므로 단일로 운영체제를 xp를 설치했을 경우..
chainloader /ntldr 로 해도 되구요. 또 vista나 win7을 단일로 설치했을 경우에도 chainloader /bootmgr로 해도 됩니다.
chainloader +1로 하는 이유는 xp든 vista 또는 win7이든 해당 파티션에서 부팅파일을 찾겠다는 뜻입니다.
그래야 어떤 컴에 usb 연결을 하든 하드디스크의 운영체제로 부팅을 할 수 있겠지요
또 멀티로 운영체제를 설치했을 경우에는 부팅이 가능한 운영체제 목록을 표시해 주는 부트관리자가 뜨겠지요.
^^
왜냐하면 usb로 부팅했을경우, hd0는 'USB'이기 때문입니다.
hd1이 하드디스크죠.(상황에 따라 hd2가 하드일 수도 있으니 주의)
해결하는 명령은 아래와 같습니다.
-------------------------------------------------------------------
title Boot from HardDisk\n * 컴퓨터에 장착된 하드디스크로 부팅합니다.
find --ignore-floppies --ignore-cd /ATHENE20 || rootnoverify (hd0,0)
find --ignore-floppies --ignore-cd /ATHENE20 || chainloader +1
find --ignore-floppies --ignore-cd /ATHENE20 || boot
rootnoverify (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1
-------------------------------------------------------------------
위 명령은 구운 고구마님의 PE에 있는 GRUB내용을 그대로 가져온 것인데요,
사실 저도 문법은 정확하게 잘은 모릅니다.
다만
map (hd0) (hd1)
map (hd1) (hd0)
에서 USB와 하드의 순서를 교체해주는 것으로 보입니다.
그래서 정상적으로 하드로 부팅을 옮겨주는거죠.
find --ignore-floppies --ignore-cd /ATHENE20
이 부분이 들어간 명령은 정확하게 어떻게 되는건지 모르겠네요.
일단 "ATHENE20"라는 파일을 찾으면 실행하는 것이거나(혹은 반대로 실행을 못하게 하거나) 그런거 같은데요,
이 파일은 특별한 파일이 아니라 그냥 '이름만' 있으면 되는겁니다. 그냥 txt파일 하나 빈거 만들어서 "MYUSB"라고 확장자 지우고 만들고, menu.lst도 그에 맞게 수정해도 됩니다.(안해봤지만 txt남겨놓고 명령에도 똑같이 넣으면 될듯)
여러가지 테스트 해보면 알텐데,
제가 저거 다룰때 저게 중요한게 아니라 다른부분 손보고 수정하는게 바빠서 저 부분은 그냥 그대로 가져다 쓰고 여태 그냥 쓰고 있습니다. ㅡ.ㅡ
한번 알맞게 수정해서 써보세요. ^^