부트캠프 에러 대처법

부트캠프를 설치할 때 가장 많이 접하게 되는 에러는 “Disk Error”와 “Missing Hal.dll Error”이다. 이들 에러의 원인과 대처 방법은 다음과 같다.

1. Disk Error

Disk Error 는 윈도 설치 시에 하드를 포맷하지 않아서 생기는 에러이다. 정확한 원인은 잘 모르겠는데, Boot Camp Assistant 가 하드를 파티션 나누고 포맷을 할 때 MS의 표준 포맷 방식을 따르지 않는데서 오는 오류로 추측된다. 그 예로, MS Windows의 경우 32GB 가 넘는 파티션은 Fat32로 포맷이 불가능하다. 그런데, 애플의 Boot Camp Assistant 는 32GB가 넘는 경우도 Fat32로 포맷을 한다.

이 에러는 간단하게 대처가 가능하다. 윈도를 설치할 때, 화면에서 하드를 다시 한번 포맷해 주면 된다. Fat32건, NTFS건 상관은 없다. 파티션을 지우고 다시 만들지만 않으면 에러가 발생하지 않는다. 만약 기존에 존재하는 파티션을 하나라도 지우게 되면 2번의 hal.dll 에러가 발생한다.

2. Missing hal.dll Error

이 문제는 최근에 부트캠프에 회사에서 제공받은 한글 윈도를 설치하다가 처음으로 겪게된 에러이다. 그 동안 학교에서 구입했던 영문 윈도를 설치할 때는 전혀 겪지 않았던 오류다.

hal.dll 을 찾을 수 없다는 메시지가 뜨는 이유는 간단하다.  윈도는 부팅이 되는 순간에 boot.ini 파일을 참조하여 windows 가 설치된 볼륨과 파티션을 찾는다. 만약 boot.ini 에 지정된 경로에 윈도가 존재하지 않는다면 hal.dll 을 찾을 수 없다는 메시지를 보여주며 윈도 시동이 되지 않는다.

예를 들어, 현재 부트캠프에서 사용하고 있는 윈도의 boot.ini 는 다음과 같은 정보를 가지고 있다.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS

[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

이 정보에 나와 있는 것처럼 현재 부트캠프에 설치 된 운영체계 (operating systems)는 disk 0 의 partition 3 에 담겨 있는 것이다.

그런데, 어떠한 이유에서 이 파티션이 수정되어 실제로 윈도가 담겨있는 파티션의 숫자가 달라진다면 윈도가 설치된 파티션을 찾을 수 없어서 hal.dll을 찾을 수 없다는 오류가 발생하게 된다.

이런 오류를 내는 이유는 다음과 같이 정리할 수 있다.

- 설치 과정 중 필요없다고 생각되어 파티션을 삭제한 경우

부트캠프는 기본적으로 200MB 정도의 파티션을 따로 만들어 놓는데, 이걸 삭제하는 경우 전체 파티션맵이 틀려져서 윈도를 찾을 수 없게 된다.

- 설치 과정 중 윈도가 설치될 파티션을 삭제하고 다시 파티션을 만드는 경우

이 경우도 위와 마찬가지로 전체 파티션 구조가 틀려진다. 따라서 재시동시 boot.ini 가 윈도가 설치된 파티션을 찾을 수가 없어서 hal.dll 에러를 내고 멈추게 된다.

그렇다면, 이 문제에 대한 해결책으로 boot.ini 를 수정하면 되지 않을까? 아마도 가능할 것이다. 하지만, 부트캠프에 저장된 boot.ini 를 찾아서 수정을 하는 과정이 그리 쉬워 보이지 않는다. 가장 좋은 해결책은 Boot Camp Assistant 가 만들어 놓은 파티션 맵을 건드리지 않고 윈도가 설치될 파티션을 설치 과정 중에 포맷을 하는 것이다.

만일 이미 파티션을 삭제 했다면, 다시 맥으로 부팅해여 Boot Camp Assistant 를 열고 만들어진 두개의 파티션을 원래대로 합쳐준다. 그런 다음, 다시 Boot Camp Assistant 를 이용해 파티션을 나눠 주여야 한다.

3. 윈도 설치 중 포맷 옵션이 안나와요!

hal.dll 에러를 겪게 된 원인은 바로 회사에서 지급해 준 윈도가 설치 중에 하드를 포맷하는 옵션이 없기 때문이었다. 포맷과정 없이 자동으로 윈도를 설치하게 되는데, 이런 경우 위에 언급한 것과 같이 disk error가 발생한다. 따라서 어떠한 방법을 써서라도 하드를 포맷을 해야 했는데, 그 과정에서 2번에 언급했던 것과 같이 부트캠프가 자동으로 잡아 놓은 파티션을 지우고 다시 파티션을 생성하는 방법을 사용했던 것이었다. 결과는 hal.dll 에러.

이 문제를 해결하는 방법은 의외로 간단하다.

정식으로 구입한 패키지 형태의 윈도와는 달리, 볼륨라이센스 등으로 회사 등에서 제공되는 윈도 디스크는 설치과정을 수월하게 하기 위해 자동설치(unattended installation) 라는 방법을 사용한다.

이 방법을 통하게 되면 설치 과정 중 시리얼 넘버를 넣을 필요도 없고, 회사 네트웍 등에 필요한 설정 등도 자동으로 잡힌다. 본적은 없지만, 아마도 불법 유통되는 커스터마이징 된 윈도 설치 디스크도 같은 방법으로 자동설치모드를 제공할 것이다.

이렇게 자동설치를 사용하게 되면 설치 과정 중에 하드디스크를 포맷하는 옵션이 나타나지 않는다. 따라서, 자동설치가 되지 않도록 윈도 설치 디스크를 수정할 필요가 있다.

자동설치에 관한 옵션은 i386 폴더 밑에 winnt.sif 라는 파일에 기록되어 있다.

(참고: http://support.microsoft.com/kb/216586)

다음은 winnt.sif 의 예이다.

;SetupMgrTag
[Data]
AutoPartition=0
MsDosInitiated="0"
UnattendedInstall="Yes"

[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=No
UnattendSwitch="Yes"
WaitForReboot="No"
TargetPath=\WINDOWS

[GuiUnattended]
AdminPassword="password"
EncryptedAdminPassword=NO
AutoLogon=Yes
AutoLogonCount=1
OEMSkipRegional=1
TimeZone=85
OemSkipWelcome=1

[UserData]
ProductKey=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
FullName="Name"
OrgName="Organization"
ComputerName=ComputerName

[Display]
BitsPerPel=32
Xresolution=1024
YResolution=768
Vrefresh=75

[RegionalSettings]
LanguageGroup=1
SystemLocale=00000809
UserLocale=00000809
InputLocale=0809:00000809

[Identification]
JoinWorkgroup=WORKGROUP

[Networking]
InstallDefaultComponents=Yes

제대로 커스터마이징을 하려면 위에 열거 된 여러 옵션들을 꼼꼼하게 수정해야 하겠지만, 대개의 경우 winnt.sif 를 아예 삭제하는 것 만으로 문제를 해결할 수 있다.

설치 과정에서 윈도 설치 프로그램이 winnt.sif 를 찾지 못하면 모든 설정에 대해 사용자에게 꼼꼼히 질문을 하게 되기 때문에 하드를 포맷할지의 여부도 물어보게 된다.

따라서, 자신의 윈도 설치 디스크가 포맷여부를 물어보지 않고 그냥 넘어간다면 winnt.sif 를 삭제하고 다시 설치 디스크를 만들어 설치를 하면 된다.

이상의 내용을 간단하게 정리하면 다음과 같다.

1. disk error 발생 -> 윈도가 설치될 파티션을 설치과정 중 다시 포맷한다.

2. hal.dll 에러 발 -> 설치 과정 중 파티션을 삭제하지 않는다. 이미 삭제한 경우 boot camp assistant 를 다시 켜고 파티션을 다시 합쳐 준 다음에 다시 윈도용 파티션을 만든다.

3. 설치과정 중 포맷하는 옵션이 안나온다 -> 윈도 설치디스크에서 i386/winnt.sif 를 찾아 삭제하고 설치 디스크를 다시 만든다.



5 Responses to “부트캠프 에러 대처법”

  1. 기픈옹달 says:

    부트캠프에 윈도우 설치중 Disk Error가 떴는데 친절한 설명 감사드립니다. 어서 다시 설치해봐야겠군요~ ^^

  2. 감사합니다. says:

    최고의 solution입니다.
    며칠간 머리싸매고 고민했던 원인이, 결국 Volume license version의 설치 disc였었네요.
    정말 진심으로 감사드립니다.

  3. 올인 says:

    감사합니다 ^^*

  4. Bong says:

    큰 도움 받고 갑니다. ㅎㅎ;;

    Disk Error 당황하고 있었는데요. ㅎㅎ

  5. bae dae hyon says:

    엇… 여기에 이런 해답이… 한참 헤매다 머리 터질 지경이었는데… 고맙습니다

Leave a Reply