부트로더로 넘어가지 않습니다

현재 320GB하드디스크에서 160GB는 Windows7을, 30GB는 코분투 10.04를, 나머지는 백업용으로 사용하고 있습니다.

BIOS 화면이 나온 후에 나오는 화면이 부트로더가 맞는지요?

맞다면, 재부팅시 부트로더로 진행되지 않고 왼쪽 위에 하얀 밑줄만 깜빡거리고 컴퓨터가 부팅되지 않는 증상이 계속됩니다.

BIOS의 부팅 우선순위를 USB에서 변경하지 않았기에, 가지고있던 USB에 코분투 10.04를 설치해서 USB로 부팅한 결과, 제대로 작동하고,

하드디스크에 설치 후 재부팅하니 부트로더가 정상적으로 나오고, Windows7도 잘 작동합니다만,

재부팅하면 처음의 부트로더가 나오지 않는 증상이 다시 일어납니다.

재부팅할때마다 코분투를 재설치할수도 없는 일이고…

무슨 이유인지, 해결 방법은 없는 건지 알고 계시는 분 있으시면 가르쳐주셨으면 합니다…

위에 썼듯이 저 부분 말고는 완벽히 정상 작동합니다. Win7, 코분투 둘 다요.

다만 재부팅만 하면 문제가 생기네요…

최소한 부트로더만 재설치하는 방법이 있다면 그거라도 하겠습니다.

usb를 꽂아서 부팅하신 후

sudo blkid 해서 설치된 디바이스를 확인하시고요.

하드디스크에 설치된 장소가 /dev/sda5라면
mkdir t
sudo mount /dev/sda5 t -o rw
sudo mount /proc t/proc -o bind
sudo mount /sys t/sys -o bind
sudo mount /dev t/dev -o bind

chroot t /bin/bash
sudo apt-get install grub-pc
sudo grub-install /dev/sda
sudo update-grub
sync;sync
exit

sudo umount -l t

부트로더에 설치된 grub이 깨져서 그렇습니다. 간단하게 하려면…

적당히 usb나 cd-rom으로 우분투 부팅
터미널 띄우고 sudo bash 정도로 루트권한 확보하고

fdisk /dev/sda -l

이러면 파티션 정보가 나옵니다. 예를들어 리눅스 루트 파티션이 /dev/sda5 에 있다고 가정합니다.

mount /dev/sda5 /mnt

/mnt에 루트 파티션을 마운트하고…

grub-install --root-directory=/mnt /dev/sda5

이렇게 한 뒤 적당히

umount /mnt

sync

이정도 하면 설치가 확실히 될겁니다.

자세한 정보는 여기: https://help.ubuntu.com/community/Grub2 … CD%20Files

[quote="protochaos":3k3p7yfh]usb를 꽂아서 부팅하신 후

sudo blkid 해서 설치된 디바이스를 확인하시고요.

하드디스크에 설치된 장소가 /dev/sda5라면
mkdir t
sudo mount /dev/sda5 t -o rw
sudo mount /proc t/proc -o bind
sudo mount /sys t/sys -o bind
sudo mount /dev t/dev -o bind

chroot t /bin/bash
sudo apt-get install grub-pc
sudo grub-install /dev/sda
sudo update-grub
sync;sync
exit

sudo umount -l t[/quote:3k3p7yfh]

커흑 적다보니 /dev/pts를 빼먹었네요.

sudo mount /dev t/dev -o bind
밑에.
sudo mount /dev/pts t/dev/pts -o bind
추가…

위의 분 말씀 처럼 하시면 기본 적으로 GRUB부트매니져가 MBR에 설치가 되지만…

chroot를 사용하면 그 디렉토리를 루트로 가상화하여,
그 디스크에서 설치하는것 처럼 할 수 있습니다.

비단 grub부트로더 뿐만아니라,
전에 제 경험으론 시스템에서 잘못 rm명령을 내리다 즉시 취소했는데…
불행하게도 ls명령등 모든 명령이 동작을 않더군요… 오류는 libc가 망가져버린…
그 당시엔 vmlinuz의 커널과 initrd.img말고도, rescue.img라는 것을 만들수 있었는데…
복구이미지로 부팅을 해서, 관련 파일들을 복사해 넣고 chroot해서 겨우 복구한 경험이 있습니다.
그것도 첨엔 sync명령을 안내리고 그냥 고친 후 재부팅 했더니, 적용이 안되는 사태가…

하여튼 chroot하는 방법과 initramfs환경을 이해하시면 왠만한것은 복구가 가능합니다.

initramfs의 경우를 말하자면… 시디나 라이브디스크가 없어도 복구가 가능합니다.
리눅스커널을 로드할 수 있는 부트매니져와 vmlinuz와 initrd.img만 있으면 복구가 가능하다는 겁니다.
내부에는 busybox라고 리눅스기본명령들을 포괄하는 쉘이 들어 있습니다.
그러니까 말하자면 grep, awk, sed, mount, dd, mkfs, chroot 등등의 명령들을 사용하실 수 있는겁니다.