스왑을 비활성화하려면 어떻게합니까?


83

나는 디스크에 있지 않는 것을 선호하는 민감한 데이터를 램에 가지고 있습니다. 스왑을 비활성화하려면 어떻게합니까? 충분한 양의 램이 있습니다. 램이 너무 높아지면 프로세스가 종료되는 데 아무런 문제가 없습니다. 스왑을 비활성화하려면 어떻게합니까?

참고 : 스왑 파티션이 없으며 VM (VMWare)에서 실행 중입니다.

swap 

2
많은 RAM이 있더라도 스왑없이 완전히 작동하는 것이 가장 좋은 방법은 아닙니다 (예 : alexonlinux.com/swap-vs-no-swap 참조 ). 요구 사항에 따라 스왑 파티션을 dm-crypt 보안 장치에 배치하여 작성된 모든 내용이 암호화되도록 고려할 수 있습니다. 이러한 경우 암호화 된 볼륨을 사용할 수있게 된 후 스왑이 활성화되고 장치 매핑이 비활성화되기 전에 비활성화됩니다 (우분투에서는 기본값이지만 확실하지는 않습니다). 웹에서 "암호화 된 스왑"을 검색하여 수많은 안내서를 찾으십시오.
soulsource

1
제안 : askubuntu.com/questions/248158/… 필요할 때까지 스왑이 필요하지 않습니다. 그리고 정말로 필요합니다.

cryptswap은 어떻습니까? / dev / mapper / cryptswap1

답변:


121

사용

sudo swapoff -a  

스위치 swapon -a를 다시 켜는 데 사용되는 명령으로 스왑을 끄는 일반적인 방법 입니다. man swapoff 명시 적 장치의 스왑을 끄는 방법에 대한 자세한 내용을 참조하십시오 .


7
재부팅 후에도 지속되지 않는 것 같습니까?
ebyrob

19
스왑에 대한 영구적 인 변경은 보통 / etc / fstab에서 이루어집니다.
ubfan1

이것을
Max

6
대신, / etc / fstab에서 스왑 라인을 주석 처리하십시오.
Torsten Bronger

다른 답변에서 주석 처리 방법을 읽을 수 있습니다.
Carolus

25

/etc/fstab파일 에서 스왑 항목을 주석 처리하여 (행 앞에 # 추가) 재부팅 후 스왑을 비활성화 할 수 있습니다 . 재부팅 후 스왑 파티션이 자동으로 마운트되지 않습니다. 단일 명령으로이를 수행하려면 다음을 수행하십시오.

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

또는 간단히 :

sudo sed -i '/ swap / s/^/#/' /etc/fstab

이제 스왑 항목 /etc/fstab은 다음과 유사합니다.

#UUID=xxxxxxxx-xxxx-xxxxx-xxx-xxxxxxxxxxx none            swap    sw              0       0

"x"문자 대신 고유 한 숫자와 소문자를 사용하십시오.


2
인용 된 UUID에 왜 구체적인 숫자가 있습니까? 모든 UUID에 대해 동일해야합니까? 내 파티션의 UUID는 지정한 숫자와 일치하지 않습니다.
Ruslan

필드가 공백이 아닌 탭으로 구분 된 경우 sed 명령이 작동하지 않습니다. sed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS로 작성하는 것이 좋습니다 #?. 행이 이미 비활성화되어있을 때 / etc / fstab에 대한 추가 변경을 방지하기 위해 추가했습니다.
Alek_A

4

스왑의 내용에 대해 걱정하는 경우 일반적인 방법으로 지정된대로 항상 스왑을 끈 sudo swapoff -a다음 dd를 사용하여 스왑 장치에 0 또는 임의의 데이터를 채울 수 있습니다.

먼저 fstab의 내용을 사용하여 스왑 파일 또는 장치를 찾습니다 ( less /etc/fstab)

그것을 찾아 두 번 및 세 번 확인하면 sda5 또는 /swapfile (스왑 파티션은 기본적으로 17.04 이상의 스왑 파일로 대체되었습니다) 위치를 확인했습니다 .

스왑 파티션 또는 드라이브의 경우 : (/ dev로 시작) "disk destroyer"명령을 실행하십시오 (약간 사용하지 마십시오)

sudo dd if=/dev/zero of=swap단어 교체 스왑을 스왑 장치를하거나 위치 정보 파일/etc/fstab

0으로 가득 채우거나

sudo dd if=/dev/random of=swap단어 교체 를 다시 찾은 교체 장치 또는 파일로 교체/etc/fstab

임의의 데이터로 가득합니다.

(단 경로로 시작) 스왑의 경우 : 당신은 단순히으로 파일을 삭제할 수 있습니다rm /path/to/swapfile

다음에 스왑을 켤 때

swapon -a

시스템이 행복하게 다시 사용합니다. RAM이 많으면 스왑이 전혀 필요하지 않을 수 있습니다. 명령을 실행하십시오

free 시스템에 과부하가 걸리고이 결정을 내리는 데 사용중인 양을 확인하십시오.

영구적으로 스왑이 필요하지 않다고 판단되면 (최대 절전 모드 등) 여기 제안 된대로 fstab에서 해당 행을 주석 처리하면 됩니다.

비어 있는


3

절름발이 해결책 일지 모르지만 자주 사용했습니다. 간단히 입력 할 수 있습니다

sudo -s
crontab -e

그리고 추가

@reboot sudo swapoff -a  

따라서 부팅시 자동으로 비활성화됩니다.


4
나는 이것이 매우 가난한 방법이라는 것은 말할 것도없이 희망합니다. 처음에 켜지지 않도록 편집 할 수있는 다른 파일이있을 때 다른 옵션 을 끄는 부팅 시간 작업을 만드는 이유
underscore_d

아마도 미적으로 기쁘게 생각하지는 않지만 그것에 대해 가난한 것은 없습니다. 이미 crontab을 사용하는 데 익숙하다면이 솔루션은 손가락을 약간 더 쉽게 굴리고 SE의 다른 사용자가 / etc / fstab에 지시 한 것을 맹목적으로 복사하는 것보다 더 합리적입니다. 그리고 Google을 다시 실행하지 않고도 새 컴퓨터에서 작업을 수행하는 방법을 여전히 기억합니다. 나는 crontab이 무엇인지 거의 알지 못하고 어쨌든 디스크 파티션에 훨씬 익숙하지만 논리는 여전히 존재합니다.
니콜라스 피피 톤

실제로 이것은 더 나은 솔루션 일 수 있습니다. / etc / fstab 제안은 스왑 파티션에서만 작동하기 때문입니다. 이 솔루션은 파티션 또는 스왑 파일 사용 여부에 관계없이 Linux 설정에 적용됩니다.
니콜라스 피피 톤

2
sudo swapoff -a

위의 명령 은 현재 세션에 대해서만 스왑을 비활성화 합니다. / etc / fstab 파일 에서 스왑 파티션을 주석 처리해야 합니다. 이렇게하려면 스왑 줄의 시작 부분에 "#"(설명 줄)을 추가하면됩니다. 단계는 다음과 같습니다.

  1. fstab 파일을 열고 sudo gedit /etc/fstab터미널을 입력하십시오 .

파일 내용은 다음과 같습니다.

proc            /proc           proc    nodev,noexec,nosuid 0       0
/host/ubuntu/disks/root.disk /               ext4    loop,errors=remount-ro 0       1
/host/ubuntu/disks/swap.disk none            swap    loop,sw         0       0
#/dev/sda10 /media/ASD  vfat    defaults    0   0
#/dev/sda1  /media/98   vfat    defaults    0   0
  1. 스왑 파티션 행의 시작 부분에 해시 (#)를 추가하면 다음과 같이됩니다.

#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0

  1. PC를 재부팅

0

터미널로 이동하여 다음 명령을 실행하십시오 gnome-disks.. 모든 배포판에 설치되어 있지는 않습니다. 그렇다면 인쇄 된 지시 사항에 따라 설치 한 후 다시 시도하십시오. 왼쪽 창에서 '스왑'이라는 단어가있는 장치를 찾으십시오. 일반적으로 실제 메모리와 크기가 같습니다. 비활성화하려면 사각형 버튼을 클릭하십시오. 루트 비밀번호로이 변경을 인증하십시오.

스크린 샷 : http://imgur.com/Og6igqb

시스템 모니터 응용 프로그램 (gnome-system-monitor)에서 스왑 영역을 '사용할 수 없음'으로보고합니다. 스왑 영역이 비활성화되었지만 삭제되지 않았습니다. 나중에 쉽게 다시 활성화 할 수 있습니다. 스왑 공간을 삭제해도 시스템에 아무런 해가 발생하지 않지만 나중에 다시 최대 절전 모드로 설정하려는 경우 더 많은 작업을 수행하게됩니다.

편집 : 시작시 마운트를 방지하려면 gnome-disks의 "Edit Mount Options ..."로 가서 "Mount at startup"을 체크 해제하십시오.


1
이것이 스왑 파티션에 민감한 데이터를 갖는 것에 대한 사용자의 우려에 대한 답변이라고 생각하십니까? 이유를 말씀해 주시겠습니까?
Geek

1
사용자의 요점은 스왑을 비활성화하는 방법을 묻는 것입니다. 민감한 데이터가있는 경우 부팅 전 암호화를 이상적으로 사용해야합니다.
user170544

1
나는 정중하게 동의하지 않습니다. 질문을 읽을 때 가장 먼저 접하게되는 문장은 "디스크에있는 것을 선호하지 않는 램에 민감한 데이터가 있습니다."입니다. 나는 이것이 그의 주요 관심사라고 생각하며, 이것이 그가 시작한 이유입니다. 어쨌든, 나는 그의 질문에 대한 모든 측면을 내 대답으로 다루었다고 생각합니다. 유용한 예라고 생각하십시오.
Geek

0

를 교체 defaults하여 sw,noauto파일의 스왑 항목으로 구성되어 줄 /etc/fstab:

/dev/mapper/centos-swap swap  swap    sw,noauto        0 0

(경로 /dev/mapper/centos-swap는 아마도 당신에게 다를 수 있습니다).

이제 재부팅 후 출력을 확인하십시오. 스왑은 마운트되지 않습니다.

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         100        3408           8         282        3483
**Swap:             0           0           0**
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.