본문 바로가기

IT/Linux

리눅스 파티션 조정하기 (GParted)

리눅스의 파티션은 최초 설정한 내용 이후로는 변경이 어려웠던 단점이 있었습니다. 그래서 커널 버전 2.4 파티션 조절관련 기능들이 추가되기 시작했고 지금부터 그 기능들 몇가지를 소개하도록 하겠습니다


1. Gparted( or parted) 

앞에 G가 붙은것은 예상하듯 GUI모드에서 사용하는 parted라는 의미이다. GUI로 보는 것이 파티션 조정이 더욱 용이하기 때문에 Gparted를 추천하는 바이며, 아래의 주소에서 다운로드 받을 수 있습니다

 http://downloads.sourceforge.net/gparted/gparted-live-0.20.0-2-i486.iso 

http://gparted.sourceforge.net/download.php에서 버전 확인 및 다운로드 할 수 있습니다


2. 다운로드 후 cd로 굽는다


3. os를 종료하기 전에 리사이징할 파티션을 반드시 백업 받는다

dd, dump 등의 백업 유틸리티를 이용하는 방법 추천


4. os 리붓 후 BIOS환경에서 부팅 우선순위 변경(CentOS6.5 = F2)


5. 저장 후 종료(F10)한 뒤 나오는 하면에서 enter를 총 4번 쳐주면 된다

(참조할만한 사이트: http://gparted.org/display-doc.php?name=gparted-live-manual)

Shows GParted Live boot screen.

Default Setting으로 복사

Shows screen with keymap question prompt.

키맵을 변경할 건 없으니 그냥 엔터(기본이 저 화면이다)

Shows screen with language question prompt.

여기도 영어를 사용하니 그냥 enter

Shows screen with video mode prompt.

여기도 startx 즉, GUI를 쓰겠다는 소리니 그냥 enter하면 잠시 후 GUI환경에서 Gparted가 실행된 화면을 보게 된다

(결국 enter 4번)


Gparted 화면에서 / 디렉토리의 용량을 줄여서 swap 파티션을 할당하도록 하겠다


맨 위의 Resize/Move를 선택한 화면에서 2번째 칸 New size를 선택 후 아래와 같이 변경


2번째 칸을 변경하고 3번째 칸을 마우스로 누르면 자동으로 값이 지정된다 이후 Resize/Move 버튼 클릭


unallocated 할당되지 않은 공간으로 나오는 모습 


할당되어 있지 않은 공간이 선택된 상태로 New를 선택하고 File system 부분을 마우스로 한번 클릭한 모습

(linux-swap이 우리가 아는 swap 파티션이다)


Add 버튼을 클릭하고 난 후 모습 이후 위에 있는 Apply 버튼을 클릭한다


Apply 중인 모습


완료 상태 Close를 선택


Gparted > Quit로 나간다 


바탕화면의 Exit를 선택해 시스템을 종료한다


스왑 파티션의 경우는 메모리의 소실을 대비한 예비공간으로 부팅에 문제가 없으나 다른 파티션을 수정했다면 부팅시 오류가 발생한다. 다음은 그 오류에 대한 설명이다.


위와 같이 /home의 1G를 쪼개서 /var로 할당한 후 리붓!

(리눅스는 주 파티션이 4개뿐이 안되므로 확장 파티션을 먼저 생성해야 한다 / 2개 일때, 3개일때는 안됨)


부팅이 잘 되다가 다음 처럼 오류가 발생한다

이 내용은 저 UUID에 맞는 디스크를 찾지 못했다는 소리로 우리가 새로 생성한 파티션은 당연히 UUID가 새로 지정되었을 테니 기존의 파티션을 찾느라 오류가 발생한 것이다. root 비밀번호를 입력하면 쉘이 떨어진다


이후 쉘에서 다음의 명령어를 입력해 준다

 # mount -o remount rw / 

/ 를 읽기/쓰기 형태로 다시 마운트 해준다는 의미


 # vi /etc/fstab 

/etc/fstab을 열어서 오류가 발생한 항목의 맨 뒷부분을 0 0으로 설정해주고(기본 1 2) 리붓!


리붓하면 오류 없이 부팅이 가능하고 부팅 후 터미널에서 df나 mount를 치면 새로 생성한 /home과 /var가 없을 것이다

UUID 정보를 얻지 못해 부팅시 마운트를 못한것이고 우리는 그것을 체크하지 않겠다고만 설정했으니 당연한 결과이다

이제 새로생성한 파티션의 UUID를 얻어서 /etc/fstab에 추가해주고 다시 마운트해주면 된다.


새로 설정한 /home과 /var가 보이지 않는다.


blkid 명령어를 입력하면 우리가 가지고 있는 파티션 정보를 확인할 수 있고, 우리가 만든 파티션의 UUID를 복사해서 /etc/fatab에 넣어주면 된다


/etc/fstab에 추가한 모습


mount -a 명령어로 전부 마운트한 뒤 마운트 된 모습


물론 파티션을 저렇게 할당하게되면 부팅이 안될수도 있습니다. 

왜냐하면 부팅시 os는 /var 밑에 있는 여러가지 것들을 탐색해서 실행되는데 새로 추가한 /var는 이름만 /var지 실제 들어있는게 아무것도 없기 때문에 엉뚱한데서 데이터를 찾다가 컴터가 멈춰버릴 수도 있고, 살기는 살았으나 부팅이 엄~청 오래 걸릴 수 있습니다. 이러기 전에 백업받은 내용을 각 디렉토리에 리스토어해야겠죠? 아니면 링크 걸든지 머 맘대로~


파티션 리사이징은 이래서 좀 힘들고 생각할게 많은 작업이라 굉장히 주의해야합니다. /var 같은거 함부로 건들면 큰일납니다

(/home 괜찮음 머 없음 /tmp도 ㅎㅎ)


위에서도 언급했지만 GParted 역시 만능은 아닙니다. GParted의 예는 아니지만 partition magic 프로그램의 경우 일정용량 이하까지 줄여버리면 그 파티션이 깨져버린다던지 하는 문제가 있고 늘릴때 역시도 데이터가 날아갈 위험은 언제나 존재합니다.

위험을 초래하고 싶지 않다면 링크를 거는 것도 한가지 방법이 될 수도 있습니다. 


/home 파티션 용량이 부족하다면 /home을 다른 위치로 링크 거는겁니다

예를 들자면 ln -s /usr/local/data /home2 /home2에 데이터를 쓰면 자동으로 /usr/local/data에 쌓이도록 말이죠