멀티부팅 grub 세팅 좀 도와주세요

=== 쓸데 없는 서론 ===
오늘 기숙사에서 집으로 돌아왔는데
컴퓨터가 포맷되어 있더군요.
엄마가 컴퓨터 하시는데
지금 당장 롸잇 나우 바이러스 치료 버튼이 있길래 눌렀더니
재시작 하래서 재시작했더니 컴퓨터 꼴통되서
컴터 아저씨한테 갖다줬더니 포맷을 하더라 하시더군요
"루킷인가 로킷인가 하여튼 이름이 두 글자인 바이러스" 랬습니다.
하아 뭐 컴터 수리공에게 줬다 하면 무조건 포맷이니 참 -ㅁ-
만들던 앱도 다 날라가고 내 아기자기한 동영상도 ㄷ…

=== 서론 끝 ===
해서 포맷하고 깔은 xp가 자꾸 뻗어버려서 짜증난 관계로
우분투를 깔았습니다.
9.04. 집에 있길래.
xp하고 멀티부팅도 되니 그냥 아무 생각없이 깔았습니다.
에. 문제는.
지원이 끊긴 모양이더군요.
9.04-9.10-10.04 루트를 타서 LTS를 깔려고 했는데.
자꾸 이 녀석이 인덱스 파일을 못 불러오더군요.

짜증나서 직접 CD를 하나 사다가 10.04 구웠습니다.
그리고 9.04를 지우는 방법을 찾다가
[url=http://www.makeuseof.com/tag/how-to-safely-uninstall-ubuntu-in-windows-dual-boot-environment/:16qzpzxk]이 링크[/url:16qzpzxk]를 발견했습니다.
여기서 Delete Linux Partitions 까지가 문서의 끝인줄 알고
그냥 sda2를 날리고 LTS를 깔았답니다
부트로더는 저희집 컴퓨터가 플래그를 찍어도 첫번째 파티션으로만 부팅을 해서
sda1으로 찍었는데 설치가 안되더군요 - 해서 sda에 설치했습니다
근데 문제는, 설치할때 xp 설치한 곳을 인지하지 못하고
그냥 저장소로 인식하더군요.
좀 걸렸지만 그냥 깔았습니다.
나란남자속편한남자.
그래서 grub 선택창도 안 떴었구나.

해서 결론은.
grub 세팅을 어떻게 해야 xp를 살릴 수 있는거죠?

Device Boot Start End Blocks Id System
/dev/sda1 * 1 6374 51199123+ 7 HPFS/NTFS
/dev/sda2 6375 9730 26950657 5 Extended
/dev/sda5 6375 9585 25791488 83 Linux
/dev/sda6 9586 9730 1158144 82 Linux swap / Solaris

파티션 테이블 정보를 보면 그럽은 /dev/sda에 설치 하는게 맞습니다.

전에 쓴 답변인데 참고 하세요.

viewtopic.php?p=101344#p101344

[url=http://paste.ubuntu.com/929040/:iwc8n0py]알려주신 프로그램으로 분석한 결과입니다[/url:iwc8n0py]
grub을 어떻게 건드려야 할진 모르겠군요;;
특히 grub2는 한글 문서가 별로 없는 것 같고.
특정 파티션으로 부팅하게 하는 메뉴는 어떻게 만드는건가요?

[quote="tkun":2srnqdil][url=http://paste.ubuntu.com/929040/:2srnqdil]알려주신 프로그램으로 분석한 결과입니다[/url:2srnqdil]
grub을 어떻게 건드려야 할진 모르겠군요;;
특히 grub2는 한글 문서가 별로 없는 것 같고.
특정 파티션으로 부팅하게 하는 메뉴는 어떻게 만드는건가요?[/quote:2srnqdil]

부트메뉴에 윈도우즈 항목을 추가하는것은 어렵지 않습니다.
일단 sudo update-grub혹은 sudo grub-mkconfig를 실행해보세요.
자동으로 os-prober가 실행되어 grub.cfg를 변경해줄것입니다.

이것 저것 다 귀찮고, 그냥 /dev/sda1은 윈도우즈XP라고 생각하고 부팅하라고 하고싶다면.
/boot/grub/custom.cfg파일은 만드시고,

[code:2srnqdil]#/boot/grub/custom.cfg
menuentry "Windows XP" {
insmod ntfs
set root=(hd0,1)
chainloader /ntldr
}[/code:2srnqdil]

이렇게 하시면… update-grub등을 하시더라도 항상 이메뉴는 뒷부분에 추가됩니다.

만약 앞부분에 넣고 싶으시다면…
sudo mv /etc/grub.d/41_custom /etc/grub.d/28_custom
sudo update-grub
이렇게 하시면 됩니다.
29_os-prober보다 번호가 앞서면 자동인식된 메뉴목록보다 앞에 나오겠지요.

제가 질문을 다르게 이해했었네요. 죄송합니다.

protochaos님의 말이 맞습니다.

sudo update-grub 명령이 원래 다른 오에스도 찾아서 등록해주는 것이 맞으나 안될 경우엔 protochaos님 말씀대로 설정 파일을 만들어 update-grub 하시면 됩니다. 저의 불찰로 불필요한 수고를 하신 것 같습니다.

[quote="protochaos":1jfza5s3]

[code:1jfza5s3]menuentry "Windows XP" {
insmod ntfs
set root=(hd0,1)
chainloader /ntldr
}[/code:1jfza5s3]
[/quote:1jfza5s3]
이대로 하니까 이렇게 뜨더군요:

[quote:1jfza5s3]error: unknown filesystem.
계속하려면 아무 키나 누르십시오…_[/quote:1jfza5s3]
분명히 파티션 형식이 HPFS/NTFS (0x07) 이라는데.

여기 저기 둘러다니면서 이런 코드도 적용해 본적 있습니다:

[code:1jfza5s3]menuentry "Windows" {
set root=(hd0,1)
chainloader (hd0,1)+1
}[/code:1jfza5s3]
이렇게 하니까 grub> 이라 돼있고 뭐 명령창 비스무리한게 있더군요.
뜨라는 xp는 안뜨고.
sda1에 Boot sector type: Grub Legacy라고 적혀있는게 좀 꺼림직했는데
이건가 보군요.
9.04 설치할때 sda1에 grub 설치한게 기억납니다.
… 하아.
그때는 정상적으로 xp 부팅이 됐는데.

…이제 어떻게 해야 하나요…

파티션과 파일시스템은 서로 다른 것입니다.
파티션에서 NTFS라고 설정해놓고 실제로는 리눅스파일시스템을 사용할 수 도 있다는 것이죠.

사실 파티션 ID 0x07은 NTFS뿐만아니라 HPFS에서도 사용하는 ID입니다.

파일시스템이 망가졌거나, 부트섹터가 망가졌을 수 있습니다.

[code:2e3ygry0]
dd if=/dev/sda1 bs=512 count=1 |xxd
[/code:2e3ygry0]
혹은
dd if=/dev/sda1 bs=512 count=1 |strings
결과에 MSWIN어쩌구 혹은 WIN어쩌구 하면… 윈도우즈 부트섹터가 맞을 겁니다.

님이 올린 글을 보고 사실 파티션의 부트레코드에 grub-legacy가 설치되어 있는것을 보고,
찜찜했습니다.

부트섹터의 복구는 다른 컴퓨터를 활용하시는게 좋겠습니다.
다른 컴퓨터에 MBRWiz나 MBRFix, FixMBR등을 다운로드하여,
부트섹터를 복구 하실 수 있습니다만…
잘 못 건드리시면, MBR을 업데이트하여 그럽 부트로더가 날아갑니다.

bootsect.exe프로그램을 첨부하니, 그것을 활용하세요.

다른컴퓨터에 연결시 f: 로 잡혔을 경우.

  1. XP/2000 부트섹터 복구
    bootsect.exe /nt52 f:

  2. Windows 7/Vista 부트섹터 복구
    bootsect.exe /nt60 f:


어라 exe파일이라 올라가지 않았군요.

다시 첨부합니다.

아 grub2에서는 chainloader /ntldr가 안되는 군요.

[code:1b2l9f0k]
menuentry "Windows XP" {
insmod ntfs
insmod ntldr
set root=(hd0,1)
ntldr /ntldr
}
[/code:1b2l9f0k]

이렇게 바꾸시면 됩니다.

어쨋거나 파티션 부트섹터를 복구해 두는것이 좋으니
bootsect.exe를 이용해서 복구하시고
menuentry "Windows XP" {
set root=(hd0,1)
chainloader +1
}
이렇게 하셔도 됩니다.