멀티 부트로 사용하다 windows를 Win7으로 설치시 멀티 부트 문제입니다

안녕하세요

Ubuntu를 배우려하는 windows application 개발자입니다.

windows xp(c drive)와 ubuntu 14.04(e drive)를 멀티 부트로 사용하다

C: 드라이브 windows를 Win7으로 설치한 다음 OS를 선택하는 화면이 나오지 않습니다.

멀티 부트를 살릴 수 있는 방법이 있는지 문의 드립니다.

도움 부탁 드립니다.

대부분의 윈도우즈 멀티부팅 문제는 윈도우즈+리눅스 보다, 리눅스+윈도우즈 에서 발생합니다.
윈도우즈는 이기적이라, 다른 운영체제와의 멀티부팅을 고려하지 않고, 기존의 부트매니저를 교체해 버리거든요.
grub이 날아가서, 윈도우즈 부트매니저만 보일 것입니다.

윈도우즈 부트매니저를 기본 부트매니저로 사용할 것인지, 아니면 GRUB을 기본 부트매니저로 사용할 것인지를
선택하셔야 합니다.

  1. 윈도우즈 부트매니저를 기본부트매니저로 사용할 경우
    ==> 차후 윈도우즈를 재설치 하실 것을 생각하신다면, 이 방법을 추천합니다.
    GRUB4DOS다운로드
    GRLDR, GRLDR.MBR, MENU.LST를 c:\에 복사
    GRUB4DOS를 윈도우즈 부트매니저에 등록

[code:14cujleg]
bcdedit /create /d Grub4dos /application bootsector
==> {GUID}출력
bcdedit /set {GUID} device boot
bcdedit /set {GUID} path \grldr.mbr
bcdedit /displayorder {GUID} /addlast
[/code:14cujleg]

만일 시스템 예약 파티션이 존재할 경우는

[code:14cujleg]bcdedit /create /d Grub4dos /application bootsector
==> {GUID}출력
bcdedit /set {GUID} device partition=c:
bcdedit /set {GUID} path \grldr.mbr
bcdedit /displayorder {GUID} /addlast [/code:14cujleg]

C:\MENU.LST 편집

[code:14cujleg]
title Chainload to GRUB2
find --set-root /boot/grub/i386-pc/core.img && chainloader /boot/grub/i386-pc/core.img
find --set-root /grub/i386-pc/core.img && chainloader /grub/i386-pc/core.img
boot

title Ubuntu from HDD
find --set-root /boot/grub/grub.cfg && kernel /boot/vmlinuz-버전 quiet splash && initrd /boot/initrd.img-버전
find --set-root /grub/grub.cfg && kernel /vmlinuz-버전 quiet splash initrd && /initrd.img-버전
boot

title Ubuntu from 2’st HDD, 3’st Part
root (hd1, 2)
kernel /boot/vmlinuz-버전 quiet splash
initrd /boot/initrd.img-버전

title Windows 7
search -s -f /bootmgr
chainloader /bootmgr
[/code:14cujleg]
이러면 Bootmgr->Grub4dos->GRUB2로 부팅이 가능합니다.
==> Grub4dos에서, 확인 없이 GRUB2로 전환하여, 윈도우즈에서 GRUB4DOS 선택시 바로 GRUB2로 전환하시려면…
MENU.LST의 첫번쨰 줄에

[code:14cujleg]timeout 0
#첫번째 부트 항목
default 0
[/code:14cujleg]
를 삽입해 주시면 됩니다.

  1. GRUB2 부트로더로 교체

2-1. 보조 부팅장치를 통해 부트로더 설치
CD롬이나, USB로 우분투 사용해보기로 들어가셔서,

[code:14cujleg]mkdir t
sudo mount /dev/sda1 t
for dev in /proc /sys /dev /dev/pts; do sudo mount -B $dev t$dev
mount /boot
grub-install /dev/sda
update-grub
umount /boot
exit
sudo umount t/{proc,sys,dev/pts,dev}
sudo umount t
[/code:14cujleg]재부팅

2-2. GRUB4DOS로 교체후, GRUB2로 교체
GRUB4DOS설치
bootlace.com 0x80 ==> 16비트 하위시스템 문제가 발생할 수 있지만, 리눅스에서도 이 명령으로 grub4dos를 설치하실 수 있습니다.(0x81은 두번째 디스크)
문제가 발생하면, wingrub설치 후, wingrub에서 부트로더를 설치하시거나, grubinst설치후 grubinst로 grub4dos부트로더 설치

C:\MENU.LST를 편집하셔서, 위의 내용으로 저장
우분투로 부팅하신 후,

[code:14cujleg]
sudo grub-install /dev/sda
sudo update-grub
[/code:14cujleg]
1번과정에서도 멀티부팅을 마치 신 후, GRUB2로 교체하시고 싶으시면, 위의 명령을 사용하시면 됩니다.

재부팅

GRUB2로 교체하신 후, 윈도우즈 부팅 항목이 보이지 않으신다면,
sudo gedit /boot/grub/custom.cfg

[code:14cujleg]menuentry "Windows7" {
insmod ntfs
insmod fat
insmod ntldr
search -s -f /bootmgr
ntldr /bootmgr
}[/code:14cujleg]
이렇게 저장하시고, sudo update-grub 하신 후, 재부팅하시면
마지막 줄에 Windows7 항목이 나타날 것입니다.

Protochaos님 자세한 설명 감사합니다.

제가 내공이 부족하여 설명해 주신 내용과 약간의 삽질로 Ubuntu를 다시 볼 수 있게되었습니다.

다시한번 감사드립니다.