우분투 하드 교체하기

|

80G짜리 하드에 우분투 설치했다가
150G짜리로 바꿀려고 쉽게 생각했다.

고스트 쓰면 되겠지.....



하지만.. 우분투는 윈도우가 아니란걸 깨닫기는 그리 오래 걸리지 않았더랬다.

검색 또 검색...
g4l(ghost 4 linux)란것도 받아보고...
알수없는 말들도 읽어보고.....

하지만 가장 확실한 방법..

리눅스는 장치든 뭐든 모조리 파일형태로 관리하기 때문에
그냥 파일만 복사하면 된다는것. (+grub설정 등등)


이 포스팅은 우분투 8.10을 기준으로 합니다.

일단 원본 하드와 새 하드를 준비.

우분투 Live CD로 부팅.

터미널을 열어 작업을 쉽게 하기 위해 root권한 취득

$sudo -i

새 하드에 대한 파티션 설정

fdisk [장치 위치]
장치 위치는 fdisk -l 하면 나온다. hda, hdb, sda1 이런게 무슨 의미인지는 알테니 패스.

나는 primary master로 새 하드, secondary master로 기존 하드.
so,
#fdisk /dev/sda

기본 파티션과 swap파티션을 생성해야 한다.

기본 파티션 생성 :
n (새로 생성) -> p (Primary partition) -> 1 (1번) -> 용량입력 -> 완료
용량은 실린더 단위로 입력하면 되지만, 용량 자체로 입력하고 싶다면,
+xxx단위 로 입력하면 된다. 예를들어 140G를 할당하고자 한다면 +140G를 입력.

swap 파티션을 위한 extended 영역 설정
n (새로 생성) -> e (Extended) -> 엔터 -> 엔터
마지막의 엔터 두번은 시작실린더와 종료실린더인데 그냥 남은공간 전부 extended로.

extended에 logical파티션 생성
n (새로 생성) -> l (Logical) -> 엔터 -> 엔터
엔터 두번은 역시 마찬가지.

애초에 primary partition생성할때 swap을 위한 공간을 빼고 전체로 하면 된다.

이때 자동으로 생성된 swap파티션은 Linux타입이다.
이걸 Swap으로 변경해주어야 한다.

t -> 5 (스왑파티션은 5) -> 82 (Linux swap)

우분투 swap의 형식 hex코드는 0x82
그냥 82만 입력해주면 된다.


이제 파티션 준비는 끝났다.

그럼 포맷을 해야하는데, ext2나 ext3로 포맷하면 된다.
포맷은
mkfs.ext3 /dev/sda1
ext2로 하려면
mkfs.ext2 /dev/sda1


각 하드를 마운트하여 하드복사를 수행할 준비를 한다.

/mnt 아래 src와 dst를 생성한다.
원래 하드를 src에, 새 하드를 dst에 마운트한다.
그리고 복사.

#cp -dpR [srcDir] [dstDir]

꽤 걸린다.


다음은 grub설정
#grub

grub> find /boot/grub/stage1
(grub이 설치된 파티션 목록이 표시된다)

grub> root (hd x,y)
(x,y ==> 위에서 나온 목록중 grub을 설정할 파티션)

grub> setup (hd0)

grub> quit



우분투에서는 드라이브에 대한 접근을 uuid란 녀석으로 한다.
하드가 바뀌면? 당연히 uuid도 변경된다.

기존 uuid를 새 하드의 uuid로 변경해주어야 한다.

수정해야할 파일 목록
/etc/fstab
/boot/grub/menu.lst



일반 파티션의 uuid 알아내기
#vol_id -u /dev/xxx

스왑 파티션의 uuid알아내기
mkswap으로 스왑파티션을 만들 때 uuid가 출력된다.

이후 확인은 /dev/disk/by-uuid 아래에서 찾아볼 수 있다.


그리고 새로 옮긴 하드를 달고 부팅하면 끝.

And