SNOWFLAKES DRAWING PAPER

[Ubuntu] GRUB를 이용하여 우분투와 윈도XP 멀티부팅 설정하기(하드디스크가 여러 개인 경우) 본문

참고/정보/ubuntu(우분투)/Linux

[Ubuntu] GRUB를 이용하여 우분투와 윈도XP 멀티부팅 설정하기(하드디스크가 여러 개인 경우)

눈송2 2008. 12. 28. 21:30


※ 보통 하드디스크가 하나일 때에는 GRUB에서 파티션을 잘 잡아주지만 두 개 이상의 하드디스크에 여러 OS를 설치하는 경우 GRUB에서 설정을 잘못 잡는 경우가 있다. 본 포스트는 설정이 제대로 되지 않아 부팅이 불가능할 때 정확한 설정을 하기 위한 작업에 대한 내용을 담고 있다.

우분투가 설치된 하드디스크를 좀 더 큰 용량으로 교체하기 위해 얼마 전 우분투 8.10 인트레핏 아이벡스 i386를 새 하드디스크에 새로 설치하였다. 예전에 하디헤론을 설치하였을 때에는 우분투 부팅에 문제가 있었는데(관련 글), 이번에는 우분투로는 부팅이 잘 되나 GRUB를 통해 기존 윈도XP로 부팅을 시도하면 아래와 같은 메시지가 화면에 출력되고 부팅이 되지 않았다 - 윈도XP가 설치된 하드디스크로 바로 부팅을 하면 정상적으로 부팅된다.

Starting up ...

NTLDR is missing
Press Ctrl+Alt+Del to restart

아래 코드를 실행해 menu.lst 파일을 열어 GRUB 설정을 보았다.

$ sudo gedit /boot/grub/menu.lst

menu.lst 파일에서 윈도XP 부분의 설정은 아래와 같다.

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sdb1
title Microsoft Windows XP Professional
root (hd1,0)
savedefault
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1

위 정보에 따르면 윈도XP가 설치된 파티션은 /dev/sdb1(hd1,0)이다. 이 부분을 올바른 정보로 수정하기 위하여 fdisk로 디스크/파티션 정보를 알아보았다. 아래는 정보 중 윈도XP가 설치된 디스크/파티션 정보이다.

$ sudo fdisk -l

(...)

Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbd7f9cb3

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 6528 52436128+ 7 HPFS/NTFS
/dev/sdc2 6529 60801 435947872+ 7 HPFS/NTFS

(...)

주황색으로 보이는 부분이 윈도XP가 설치된 파티션으로 '/dev/sdc1'에 설치되어 있음을 알 수 있다. 현재 디바이스맵을 보면 아래와 같다.

$ cat /boot/grub/device.map
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc
(hd3) /dev/sdd
(hd4) /dev/sde
(hd5) /dev/sdj
사용자 삽입 이미지

터미널에서 확인한 파티션과 디바이스맵 정보.

위에서 보이는 바와 같이 윈도XP가 설치된 /dev/sdc는 (hd2)이므로 menu.lst 파일을 아래와 같이 수정하였더니 GRUB를 통해서도 윈도XP로 부팅이 되었다.

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sdc1
title Microsoft Windows XP Professional
root (hd2,0)
savedefault
map (hd0) (hd2)
map (hd2) (hd0)
chainloader +1
사용자 삽입 이미지

수정한 menu.lst 파일.

위 방법은 윈도뿐 아니라 다른 OS가 설치되어 있을 때에도 가능한데, UUID(새 창으로 열기)(Universally Unique Identifier, 범용 고유 식별자)를 통해 menu.lst를 수정하려면 해당 파티션의 UUID를 알아야 한다. 만일/dev/sdc1 파티션의 UUID를 조회하려면 아래 명령어를 실행하면 된다.

$ sudo vol_id -u /dev/sdc1

테스트 환경



Comments