Wubi로 설치한 우분투 옮기기


2011년 1월 20일 by 김 승엽

얼마 전 AS를 보냈던 하드 디스크가 오늘 오후 도착했다. 전화로 문의한 뒤, 택배로 의뢰했는데 도착했다는 연락이 오지 않아 어떻게 됐나 궁금하던 참이었는데, 오늘 교체품이 도착해서 좀 놀랐다. 굉장히 쿨한 AS 처리에 대한 이야기는 나중에 마저 하기로 하고, 이 도착한 하드디스크를 연결한 뒤 XP에 설치해서 사용하던 Wubi Ubuntu의 부팅 메뉴 복원 작업에 들어갔다.

뭐 되겠지 하고 시작했는데, 검색하며 자료를 찾다보니 내 경우는 몇가지 문제가 중첩되어 좀 골치아팠다.

  1. Windows XP 에서 Windows 7 으로 운영체제가 변경 (부팅방식 변경)
  2. 기본 운영체제가 설치된 하드디스크의 변경 (큰 문제는 아니었다.)
  3. Wubi가 설치되었던 하드 디스크의 변경 (기존 C 에서 D 드라이브로 변경)

대 부분 위의 문제 중 한 가지만 처리하는 경우에 대한 내용이 많았는데, 이게 엮이니 어떻게 처리해야 할 지 감이 잡히질 않았다. 이런 저런 삽질 끝에 성공해서 우분투로 부팅 가능하게 되긴 했지만 나중에 다시 하라면 기억 못할 것 같아 정리해 두기로 했다. 내용이 좀 엉성할 지 모르지만 일단은 백업에서부터 복구 과정을 정리해놓는다.

백업은 단순히 Wubi로 설치되었던 우분투의 디렉토리 (/ubuntu) 와 C 드라이브 Root 의 몇 가지 파일들을 그대로 다른 하드디스크에 옮겨 놓는 방식이었다. C 드라이브 Root 에서 백업한 파일들은 menu.lst, wubildr, wubildr.exe, wubildr.mbr 파일들이었다.

새로운 하드 디스크를 설치한 뒤 D 드라이브로 바꾸고 백업해 놓았던 우분투의 디렉토리 (/ubuntu) 를 옮겼다. C 드라이브 Root 에 있었던 파일들은 그대로 놔두면 되는데 혹, 내 경우와 같이 포멧 후 운영체제를 새로 설치한 경우라면 C 드라이브의 Root 에 백업한 파일들을 옮겨준다. 또, /ubuntu/winboot 에 파일들이 존재하는지 확인해서 그 쪽에도 옮겨준다.

위치를 잡았으니 이제 부팅 메뉴를 추가하는데 여기서 EasyBCD 라는 프로그램의 무설치 버전을 사용했다. EasyBCD 는 Vista 와 Windows 7 의 부트로더인 BCD를 간편하게 편집 가능하게 해주는 툴로 여기서 Wubi 엔트리 추가가 가능하다.

BCDedit_01

실행 후, 왼쪽의 Add New Entry 를 누르고 오른쪽에서 리눅스 > Type : Wubi 를 선택한다. Name 은 부팅메뉴에 뜨는 이름이니 마음에 드는 걸로 고쳐도 된다. 내 경우에는 Ubuntu 로 바꾸었다.

BCDedit_02

그 다음에는 Advanced Settings 를 누른 뒤, 오른쪽에서 우분투가 위치해 있는 드라이브를 지정해 주고 내용을 저장한다.

이걸로 우분투 부팅 엔트리는 추가 되었지만 이걸로는 동작을 하지 않는다. 일단 명령 프롬프트를 관리자 권한으로 실행해서 명령 프롬프트에 bcdedit 라고 입력하고 엔터를 치면 현재 부트 메뉴들이 쭉 출력되고 마지막에 아래 그림처럼 리얼 모드 부팅 섹터라는 부분이 나오게 된다.

bcdedit_04

내용은 다르겠지만 위와 비슷한 형태일 텐데, 이 부분을 수정해 주어야 한다.

bcdedit /set {identifier 란의 내용} path \우분투위치\winboot\wubildr.mbr

내 경우,

bcdedit /set {c3fbd63-e-247b-11e0-b93d-00012b001285} path \ubuntu\winboot\wubildr.mbr

와 같이 입력한 뒤, 다시 bcdedit 를 쳐 보면 아래와 같이 바뀌어 있을 것이다.

bcdedit_03

그럼 재부팅을 하기전에, \ubuntu\winboot\wubildr.mbr 파일이 존재하는지 확인하고 없다면 C 드라이브 루트에서 복사해서 넣어준다.

이제 재부팅해서 , 부팅 메뉴에서 Ubuntu를 선택하면 부팅과정이 진행되는 듯 하다가 진행이 되지 않고 빠져 나오는데, 이 경우는 우분투의 설치 드라이브가 이전과 달라져 grub 메뉴에서 드라이브 지정이 잘못돼 있기 때문이다. 기존 설치하드디스크와 위치가 동일하다면 문제가 되지 않을 것이다.

그럼 바로 재부팅을 하지 말고, 엔터를 쳐서 빠져 나온 콘솔화면에서 blkid 라고 쳐보면 화면에 설치된 하드디스크의 UUID 들이 출력된다. 설치된 하드디스크의 UUID 를 전부 보여주는데 여기서 우분투를 옮겨놓은 하드디스크의 UUID 를 적어놓는다. 라벨을 지정해 놓았다면 찾기 쉬울 테지만 그렇지 않은 경우는 좀 헤맬 수도 있다.

unfusion@ubuntu

위의 그림은 터미널이라 sudo 명령을 함께 주었는데, 그냥 blkid 만 쳐도 출력이된다. 치면 위의 그림과 같이 설치된 하드디스크 목록과 UUID 가 나온다.

이제 재부팅을 해서 윈도우즈로 돌아온 뒤 에디터로 \ubuntu\disk\boot\grub 의 menu.lst 파일을 에디터로 열어준다.

title           Ubuntu 10.04.1 LTS, kernel 2.6.32-26-generic
root            ()/ubuntu/disks
kernel          /boot/vmlinuz-2.6.32-26-generic root=UUID=965E7A455E7A1DE5 loop=/ubuntu/disks/root.disk ro quiet splash
initrd          /boot/initrd.img-2.6.32-26-generic

와 같은 형태의 라인들이 보일텐데 여기서 root=UUID=965E7A455E7A1DE5 라고 적힌 부분 (이 부분은 시스템에 따라 다르다.)을 아까 적어 놓았던 UUID 로 바꿔준다. 바꾸기 메뉴를 이용해 한꺼번에 바꾸면 간편하게 처리가 된다.

이제는 위에 수정한 파일을 저장하고 재부팅해서 우분투 부팅이 제대로 되는 지 확인만 하면 된다.

설명이 길어졌는데 간추리면 다음과 같다.
윈도우즈 7 을 새로 설치해 기존 설치했던 우분투를 다른 하드디스크에 옮겼다가 원래의 위치로 돌려놓은 경우에는 C 드라이브 루트에 있던 파일들을 복원하고 EasyBCD 툴과 bcdedit 명령을 통해 부팅 엔트리만 추가 해주면 된다.

우분투의 설치 위치를 변경하고자 할 때에는 옮기려는 드라이브의 UUID를 적어놓은 뒤 우분투 디렉토리를 옮긴다. 그리고 BCD 부트메뉴의 드라이브를 변경한 뒤, \ubuntu\disk\boot\grub 폴더의 menu.lst 파일을 수정하면 된다.

내 경우와 같이 운영체제도 다시 설치했고, 부트로더도 바뀌었으며, 드라이브도 바꾼 경우라면 위의 방법을 모두 처리해주면 된다.

새로 우분투 설치하고, 세팅할 것이 귀찮아서 시도했는데 성공해서 다행이다. 길게 적어놓긴 했는데, 설명 잘하는 재주가 없어서 다른 분들이 읽으셨을 때 도움이 될 지 모르겠다.


Show Related Posts List from Local

  • 우분투+윈도우사용자

    감사합니다. 제가 윈도우를 다시 설치해야 하는데 wubi로 설치된 우분투를 어떻게 옮길까 고민하하고 있었는데 큰 도움이 되었습니다.

    • http://unfusion.kunsan.ac.kr/word 김 승엽

      저도 고생 했던 부분이라 나중에 혹시 다시 하게 되면 어쩌나 싶어서 정리해 놓긴 했는데 정리를 잘 하지 못해서 이해 하시는데 어렵지 않으셨나 모르겠습니다.