우분투 리눅스용 구글 크롬(Google Chrome)이 윈도우(Windows)용 크롬보다 가볍지만 저사양 PC에서는 여전히 무겁게 느껴질 수 있는 프로그램이라고 생각합니다. 윈도우10에서도 심볼릭링크(Symbolic Link)로 크롬 캐시 폴더를 램디스크(Ramdisk)에 옮겨서 사용하는 것처럼, 우분투 리눅스(Ubuntu Linux)에서도 램디스크(Ramdisk)를 생성하고 구글 크롬(Google Chrome) 캐시 디렉토리를 램디스크에 옮기는 것이 가능합니다. 윈도우에서는 Primo Ramdisk, SoftPerfect Ramdisk 등의 램디스크 생성 프로그램들을 별도로 설치했어야 했는데, 리눅스는 자체적으로 램디스크 생성 기능이 내장되어 있더군요. 다만 GUI가 아닌 점이 불편할 뿐... (무료로 쓰는 것만 해도 감지덕지죠. ^^)



이번 글의 목표는

  ①램디스크 생성

  ②재부팅 시에도 램디스크가 유지되게끔 세팅

  ③Ramdisk 공간에 ChromeCache, Download, TEMP 디렉토리 생성

  ④우분투 파일관리자 프로그램(Nautilus)에 램디스크 책갈피(바로가기)를 추가

  ⑤구글 크롬(Google Chrome) 캐시 저장공간을 램디스크로 전환(심볼릭링크(Symbolic Link) 기능으로)

여기까지 처리하는 것입니다.



설명에 사용할 우분투 버전은 18.04 LTS인데, 우분투 버전이 올라가더라도 큰 틀은 변하지 않을 것입니다. 만자로(Manjaro) KDE 리눅스에서도 거의 비슷한 방식으로 적용 가능하더군요.


① 우분투 리눅스 램디스크 생성(연습)


램디스크로 사용할 디렉토리를 만들고, 원하는 용량만큼 램 공간을 덜어서, 해당 디렉토리에 연결(마운트)하는 식으로 과정을 진행합니다.

연습이라고 적은 이유는... 리눅스는 파일시스템(파티션)을 연결(마운트)하면 PC가 켜진 동안만 유지되기 때문입니다. PC를 끄거나 재부팅하면 마운트가 해제되는데, 부팅할 때마다 마운트 작업을 수동으로 하면 아주 불편하겠죠? 그래서 수동 마운트는 램디스크에는 적합하지 않은 방식입니다. 하지만 파일시스템, 마운트, 언마운트의 개념을 익히는 과정은 꼭 필요하다고 생각하므로 "연습"하도록 하겠습니다.


▲ 실사용 중인 PC의 파티션 마운트 상태(계정명 : jimnong)


리눅스는 "이런 역할을 하는 파일들은 특정 경로에 몰아두자"고 사용자들끼리 약속해 두었습니다. 저같은 초보자들은 이 규칙을 모르니까 본인에게 편한 경로에 이것저것 막 쑤셔넣는데, 그러면 전문가한테 유지/보수 맡겼을 때 그 분들이 혼란스러우시겠죠.ㅋ

우분투 리눅스에서는 다른 파티션들을 /media/계정명/ 경로에 마운트하기로 약속했다는 것을 알아둡시다(위 스크린샷 참고. 만자로 리눅스는 /run/media/계정명/ 경로에 마운트.).


free -h 명령어를 입력하여 여유 램공간을 파악합니다. 저는 2.5G의 여유 공간이 있네요.

(램디스크 생성 테스트할 가상 PC : 계정명 aaa )


램디스크로 사용할 디렉토리를 만들 차례입니다. "원칙적으로는" "/media/aaa/램디스크디렉토리" 경로에 디렉토리를 생성해야 하겠지요?

그런데 디렉토리 생성 후에 수동으로 경로를 입력하면서 작업할 때 "/media/aaa/램디스크" 경로를 매 번 기억하고 입력하기는 번거롭습니다. 그래서 원칙을 무시하고 "/ramdisk" 라는 경로로 디렉토리를 만들겠습니다.



sudo mkdir /ramdisk

라고 입력하면 디렉토리가 만들어집니다. sudo 명령어를 앞에 붙였기 때문에, 로컬계정인 aaa 로는 이 디렉토리에 읽기/쓰기/실행 작업을 할 수 없습니다.

sudo chmod 777 /ramdisk

라고 입력해서 모든 계정이 /ramdisk 디렉토리에 읽기/쓰기/실행 작업을 할 수 있게끔 조치합니다.

ll / | grep ramdisk

라고 입력해보면 r(읽기), w(쓰기), x(실행) 권한이 소유자/그룹/기타에게 모두 부여된 것을 확인할 수 있습니다(붉은 밑줄로 표시한 곳). ll 대신 ls -al 을 써도 됩니다.


[기본] 리눅스의 퍼미션(권한)을 조정하기 (chmod, chown)

▲ 만약 리눅스에서의 권한(퍼미션. rwx에 대한 사항)에 대한 개념 정립이 필요하다면 위의 글을 읽어보세요.


연습으로 100MB 정도의 여유 램 공간을 /ramdisk 경로에 마운트해 보겠습니다.


sudo mount -t tmpfs -o rw,size=100M tmpfs /ramdisk

라고 입력하면 마운트가 되는 것입니다. 잘 처리되었는지 아래의 명령어를 입력하여 확인합니다.

df -h | grep ramdisk

100MB 공간의 /ramdisk 공간이 보이면 잘 처리된 것입니다.

파일관리자(nautilus) 프로그램으로 /ramdisk 경로에 파일들을 복사해보면 잘 될 겁니다.



참고로 말씀드리면 tmpfs는 유닉스 계열 운영 체제의 임시 파일 스토리지 기능을 일컫는 이름으로, 휘발성인 램을 이용한다고 하네요. tmpfs와 비슷한 기능을 하는 ramfs 라는 것도 있는데, 둘의 차이점이 궁금하면 아래의 글들을 읽어보세요.

RAMDISK, ramfs, 그리고 tmpfs사이에 생기는 혼동!

The Difference Between a tmpfs and ramfs RAM Disk


수동 마운트를 연습해봤으니, 수동 언마운트도 연습해봅시다.


sudo umount /ramdisk

라고 치면 램디스크가 언마운트될 것입니다. 잘 처리됐는지 df -h 명령어에 파이프라인 붙여서 확인해봤는데 문제 없는 것 같네요. df -h 명령어는 파이프라인(|) 이하의 내용을 안 적고 쓰면 마운트된 모든 현황을 보여주기 때문에 쓸모가 많다고 생각합니다.


② 부팅시 램디스크를 자동으로 마운트하게끔 세팅


마운트한 램디스크 공간은 재부팅하면 마운트가 풀린다고 언급했었지요? 그래서 부팅시 자동으로 마운트되게끔 처리할 겁니다.


부팅시 자동으로 마운트하는 설정이 저장된 파일은 /etc/fstab 입니다. 터미널 창에서 아래의 명령어를 입력하여 에디터로 /etc 디렉토리의 fstab 파일을 엽니다.


sudo gedit /etc/fstab

(gedit 대신 nano, vim, vi 등 본인에게 편한 에디터를 이용해도 됩니다.)


tmpfs /ramdisk tmpfa defaults,size=2G,mode=1777 0 0

붉게 밑줄친 것처럼 추가하고, size를 잉여 램 용량 내에서 자유롭게 적고 저장+빠져나옵니다. 위 스크린 샷에서는 2GB를 할당했습니다.


재부팅램디스크가 자동으로 마운트되어 있는지 확인합니다.


df -h(또는 df -h | grep ramdisk) 명령어로 확인해도 되고, ls -al / 명령어로 환인해도 되고, 파일관리자 프로그램(nautilus 등)으로 램디스크 경로에 들어가봐도 됩니다. 위 스크린 샷처럼 나오면 성공입니다.


③ Ramdisk 안에 용도별 디렉토리 생성 & 재부팅 시에도 유지되도록 처리


램디스크 공간에도 서브디렉토리를 만들어서 용도별로 쓰면 좋겠죠? 저는 윈도우10에서 아래 스크린 샷처럼 디렉토리를 구성해서 쓰고 있는데요,


▲ Cache, Media Cache는 구글 크롬 캐시용으로, Download는 컴퓨터 껏을 때 지워지면 좋은 자잘한 파일 다운로드 공간으로, TEMP는 만약을 대비한 임시 공간으로 구성했지요.



②번 단계가 처리되었더라도 PC가 꺼질 때마다 램디스크가 사라지는 점은 변함이 없기 때문에, 우분투에서 수동으로 mkdir 명령어를 이용하여 램디스크에 서브디렉토리를 만들더라도 PC가 꺼지는 순간 해당 서브디렉토리들은 사라질 것입니다. 그래서 ②번 단계 직후에 mkdir 명령어들이 발동하도록 스크립트 파일을 만들어서 시작프로그램으로 등록할 필요가 있습니다.


저는

/ramdisk/ChromeCache

/ramdisk/ChromeCache/Cache

/ramdisk/ChromeCache/Media Cache

/ramdisk/Download

/ramdisk/TEMP

이렇게 서브디렉토리를 구성할 것입니다. 본인만의 서브디렉토리를 머릿속에 구상하고, 터미널 창에 아래처럼 입력해서 스크립트 파일을 작성합니다.


gedit 경로명/스크립트파일명.sh

스크린 샷에서 ~/ 는 "/home/계정명/"을 줄여서 적은 것입니다. 터미널 창을 실행했을 때 나오는 기본 경로이기 때문에 접근성이 좋아요.


▲ 그리고 내용을 위의 형태처럼 채우고 저장+빠져나옵니다(본인이 구성한 서브디렉토리들을 적을 것.). Media Cache처럼 중간에 공백이 들어간 형태는 'Media Cache' 이렇게 작은따옴표로 묶어서 적어야 합니다.


chmod +x 경로명/파일명.sh 형태로 입력해서, 스크립트 파일에 실행 권한을 줍니다.

ll 명령어(또는 ls -al 명령어)로 확인해보면 x표시(실행 권한)이 붙은 것을 볼 수 있을 것입니다.


아래 스크린 샷처럼 "sh 스크립트파일명.sh" 형태로 입력해서 램디스크에 디렉토리가 생성되는지 테스트해 봅니다.


▲ 스크립트 실행 전/후에 ll 명령어로 램디스크 마운트한 디렉토리를 살피면 스크립트가 잘 돌아가는지 알 수 있겠지요?


이제 이 서브디렉토리들이 재부팅 시에도 유지되도록 처리할 겁니다. 정확하게 표현하면 부팅시 램디스크 마운트 후에 서브디렉토리를 생성하는 것이겠네요.


▲ Dock에서 "프로그램 표시" 버튼을 누릅니다.


▲ "시작"이라고 검색하면 "시작 프로그램"이라는 항목이 나올 겁니다. 클릭합니다.


▲ "추가" 버튼을 누릅니다.


▲ "명령(M)" 항목에 스크립트 파일 경로를 적어줍니다. "찾아보기"버튼을 이용하면 쉽습니다. 이름(N), 설명(E) 란은 적당히 채워줍니다. 다 됐으면 "추가(A)" 버튼을 눌러 확정짓습니다.


▲ 시작 프로그램 리스트에 추가된 것을 확인하고, 오른쪽 하단 "닫기(C)" 버튼을 눌러 빠져나옵니다.


재부팅 해봅니다. 그리고 아래 스샷처럼 명령어를 이용해서 램디스크 디렉토리에 서브디렉토리들이 생성되었는지 확인합니다.


▲ 터미널 창이 익숙치 않으면 파일관리자(nautilus) 같은 GUI 기반 툴을 이용해도 됩니다.


④ 우분투 파일관리자 프로그램(Nautilus)에 램디스크 책갈피(바로가기)를 추가


편의 사항인데, 한 번 해두면 접근성이 좋아지기 때문에 추천합니다.


▲ 파일관리자 프로그램(Nautilus, 노틸러스)을 실행하고 루트(/)로 이동합니다. 어렵게 생각할 것 없이 / 누르고 엔터 치면 됩니다.


▲ 램디스크 디렉토리를 드래그해서 왼쪽 회색 Bar 영역까지 가면 "새 책갈피"라는 문구가 뜰 겁니다. 새 책갈피 위에서 마우스 버튼을 놓으면...


▲ 램디스크 경로가 책갈피(바로가기)에 추가됩니다.

마우스 우클릭 해서 이름 바꾸기를 선택 후 보기 좋은 이름으로 바꾸면 끝!


⑤ 구글 크롬(Google Chrome) 캐시 저장 위치를 램디스크로 전환


구글 크롬 캐쉬 저장소를 램디스크로 바꾸는 과정은 크롬을 종료한 상태에서 진행해야 합니다. 아래의 과정 설명을 보면서 텍스트 에디터에 정리한 다음, 크롬 종료 후 텍스트 에디터의 내용을 보면서 처리하는 것을 권장합니다.


크롬 캐시는 /home/계정명/.cache/google-chrome/Default 경로에 있을 겁니다.

(참고로 크로미움 프로그램의 캐시 경로는 /home/계정명/.cache/chromium/Default 입니다.)


▲ ll ~/.cache/google-chrome/Default

위의 명령어로 확인해보면 Cache, Code Cache, Storage 디렉토리가 있는 것을 볼 수 있는데, 크롬 캐시 디렉토리 목록은 크롬 버전에 따라서 조금씩 바뀝니다. Cache, Code Cache, GPUCache, Media Cache, Storage 등등... 많아요. Media Cache 디렉토리같은 경우는 설치 초기에는 안 보이다가 뜬금없이 나타나서 대용량 데이터가 쌓이기도 하고... 그렇습니다. 어떤 캐시 디렉토리를 램디스크에 연결할 것인지는 정답이 없으니까, 캐시파일 쌓이는 상황을 봐가면서 눈치껏 선정하시길 바랍니다.



저는 안전빵으로 Cache, Media Cache 디렉토리를 램디스크에 연결해 보겠습니다. 크롬을 종료한 상태에서 위의 스크린 샷에 보이는 디렉토리들 중 램디스크에 연결할 디렉토리들을 먼저 삭제해야 합니다.


cd ~/.cache/google-chrome/Default

cd 명령어로 크롬 캐시 디렉토리가 모인 곳에 접근한 다음...

rm -rf Cache

rm -rf 'Media Cache'

처럼 rm -rf 명령어로 램디스크에 연결할 디렉토리들을 삭제합니다.


▲ (스크립트로 작성해서) 존재하는 램디스크 서브디렉토리를

ln -s /램디스크 서브디렉토리 경로 /삭제했던 크롬 캐시 디렉토리 경로

형태로 입력해서 다시 생성해줍니다. ln -s는 심볼릭링크 생성 명령어예요.

ll ~/.cache/google-chrome/Default

이라고 쳐서 크롬 캐시디렉토리 목록을 보면 심볼릭링크가 어디로 향하고 있는지 보일 겁니다.


끝!


https://www.linuxbabe.com/command-line/create-ramdisk-linux

위 글에서는 VirtualBox 리눅스 가상 머신(가상 PC) 프로그램을 쓰면서 Machine folder(가상 PC 이미지 파일 저장소)를 램디스크로 지정하는 사례를 보여주는데, 램이 64GB쯤 되면 이 방법을 써봄질할 것 같습니다. 생각해보면 가상머신 환경에서 크롬 캐시를 램디스크에 할당하면 웹브라우징 속도 향상에 도움이 많이 될 것 같습니다. Hyper V, VMware, VirtualBox 등등 프로그램 종류에 관계없이 쓸 수 있는 꿀팁 같네요.

반응형