Ubuntu 파티션 설정하기

설치 방법

설치를 할 때는 항상 ‘Something else’ 옵션으로 들어가서 내가 원하는 디스크 할당을 한다.

내가 사용하고 싶은 디스크 공간을 우선 확보한다. 약 1TB가 확보되었다고 해보자.

swap 메모리

가장 먼저 설정해야할 것은 swap 메모리이다. swap 메모리는 DRAM 크기의 2-3배를 잡는다. 내 DRAM이 32GB라면, swap 메모리는 64GB 정도를 잡으면 적당하다. swap 메모리를 생성할 때는 Primary 파티션으로 가장 앞단에 생성한다.

swap 메모리는 시스템이 연산중인 정보들이 DRAM 용량의 한계를 넘어설 때 SSD에 잠시 저장을 하는 기능이다. 의외로 C++ 프로그램 병렬빌드를 할 때 메모리에 올려야할 정보량이 DRAM의 크기를 넘어서는 경우가 많은데, 이 때 넘쳐나는 정보를 swap 메모리에 엄청나게 빠른 주기로 접근하며 읽고 쓰게 된다. DRAM에 읽고 쓰는 속도보다 SSD에 읽고 쓰는 속도가 훨씬 느리기 때문에, 최대한 SSD에서 정보를 빨리 읽고 쓰게 해줘야 전체적인 성능이 올라가게 된다. 이러한 이유로 swap 메모리는 모든 메모리의 최앞단에 있어야하는데, 이는 메모리가 뒷단에 위치할 수록 접근 시 속도가 느려지기 때문이다.

EFI 파티션

다음은 EFI 파티션을 설정한다. 500MB 정도를 주고 설정한다. 부팅할 때 필요한 것이다.

root 파티션

나머지 메모리는 전부 root 파티션에 할당한다. 이게 진짜 내가 쓸 수 있는 메모리이다.

 


root 파티션과 home 파티션은 나누는거라고 들었는데?

안 나눠도 된다.

두개를 나눠놓았을 때의 장점은 ‘또 다시 밀 때 OS/시스템만 밀 수 있다’ 이다. 예를 들어, Ubuntu 20.04를 사용하다가 Ubuntu 22.04로 업그레이드 하고 싶다면, root 파티션만 지우고 home 파티션을 그대로 놔둘 수 있다. 그러면 home 파티션에 있는 사용자의 파일은 그대로 보존되고, OS가 있는 root만 업그레이드 된다.

근데 우리는 C++을 다룬다. OS가 바뀌게 되면, 아랫단에 있는 라이브러리의 위치 및 버전이 전부 바뀌게 된다. 잘 도는 경우도 있고, 안도는 경우도 있다. 근데 문제는 뭐가 돌고 뭐가 안돌지 모른다. 결국 다시 다 빌드 해봐야하는거다.

root 파티션만 지정했을 때 장점은 다음과 같다. 1. ‘root / home 파티션에 뭐를 어디에 설치할지 고민할 필요 없이 그냥 다 편하게 깔고, 바로 작업을 시작할 수 있다’, 2. ‘한번에 다 밀고 새로 깔기 편하다’.

두개를 나눠놓았을 때의 단점은 다음과 같다. 1. ‘OS 업그레이드를 할 때 USB를 꽂고 파티션을 직접 지정해서 재-마운트 시킬 수 있을 정도의 리눅스 고수여야한다’, 2. ‘root는 몇GB, 홈은 몇GB를 줘야할지 적당한 기준이 없다’, 3. ‘뭐 하나 꼬이면 결국 다 밀고 다 새로 깔아야한다’.

어차피 OS를 민다는건 태초마을에서 새 출발 하는게 아닌가? 그냥 새 환경 빌드 스크립트 같은거 만들어놓고, 돌리는 동안 그날 일을 뭐할지 플래닝하거나 논문 읽고 있는게 편할 수도 있겠다.

용량을 잘 관리하고 싶다면 root/home을 나누는것도 효율적인 방법이다. 실제로 서버 관리를 하는 사람이거나 임베디드 플릿 관리를 하는 사람이라면 이렇게 해야할 것이다. 하지만 단순히 데스크탑 워크스테이션에서 실험돌리다가 우분투 뻑나면 밀고 새로 깔면 되는 사람이라면, 이런걸 고민할 필요가 없다. ‘SSD 용량이 작아서 어쩔 수 없이 나눠야한다’ 같은 상황이라면, 조금 막말처럼 보일 수 있겠지만 이런 문제를 고민하기보다는 빠르게 10만원 더 들여서 1TB 더 큰 용량의 SSD를 구입하고 더 중요한 문제를 푸는게 이득일 것 같다.