노트북에 우분투 11.04를 설치해서 사용중입니다.
11.10베타가 나왔길래, usb 외장HDD를 연결해서 여기에 11.10을 설치했습니다.
그런데 이 외장 HDD를 제거하면 기존에 사용하던 리눅스(11.04)도 부팅이 안되네요.
(외장 HDD를 연결하면, 부팅을 선택할수 있는 메뉴가 나타납니다…)
어떻게 하면 기존처럼 노트북만으로 부팅이 가능할까요?
노트북에 우분투 11.04를 설치해서 사용중입니다.
11.10베타가 나왔길래, usb 외장HDD를 연결해서 여기에 11.10을 설치했습니다.
그런데 이 외장 HDD를 제거하면 기존에 사용하던 리눅스(11.04)도 부팅이 안되네요.
(외장 HDD를 연결하면, 부팅을 선택할수 있는 메뉴가 나타납니다…)
어떻게 하면 기존처럼 노트북만으로 부팅이 가능할까요?
USB를 꽃으신 채로 11.04로 부팅하신 다음 update-grub를 통해서 11.10부트 엔트리를 11.04의 grub설정에 추가하신 다음 grub-install을 통해서 해당 설정을 이용한 grub를 부트섹터에 다시 설치하시면 됩니다.
[code:3bolbsi8]
[/code:3bolbsi8]
grub-install 명령 등으로 GRUB이 설치될때…
사실은 읽어들일 디스크는 하드코딩됩니다.
설정파일이 아니라 바이너리 코드내에 존재 한다는 것이죠.
grub.cfg라는 부트설정파일을 어디서 읽을지를 결정할 수 없기 때문에…
MBR코드에 이것이 내장되게 되는것입니다.
일단 grub.cfg파일을 읽어 들이게 되면 그담엔 설정된 내용에 따라
부팅할 디스크를 결정하고, 그곳으로 부팅하게 되는것이죠.
예를 들어 grub-install /dev/sdb라고 명령을 입력하여
외장디스크에 GRUB을 설치한다고 했을때…
부팅우선순위가 내장디스크가 높다고 한다면…
내장디스크의 GRUB에서 설정파일을 외장디스크에서 읽게 될 것입니다.
물론 GRUB모듈및 관련파일들도 외장디스크에서 읽게 되겠지요.
헌데… 외장디스크를 꽂지 않았다면…
내장디스크로 부팅하여 외장하드의 설정파일을 읽는 과정에서 실패하게 될 것입니다.
이것이 제가 생각하는 부팅실패의 과정입니다.
그러니까 외장하드의 우선순위를 높여서 내장디스크의 grub이 아닌
외장디스크의 GRUB를 로드하게 하셔야 하지 않을 까 싶습니다.