안전하게 스왑을 안전하게 끄고 공간을 되 찾는 방법은 무엇입니까? (데비안 제시)


48

SSD 드라이브에 기본 파티션으로 데비안 Jessie를 설치했습니다. 현재 디스크 분할은 다음과 같습니다 :

현재 디스크 분할은 다음과 같습니다

16GB의 RAM이 있으므로 스왑이 필요하지 않다고 가정합니다 . 그러나 다른 디스크 드라이브가 있으므로 대신 다른 드라이브 중 하나에 스왑 파일만들있습니다 .

디스크 공간을 차지하지 않기 위해 스왑 파티션을 정확하고 영구적으로 제거하기 위해 수행해야하는 단계는 무엇 입니까? 현재 128GB SSD 만 있으므로 스왑 파티션을 삭제하고 싶습니다.

다음은 매번 시도하고 재부팅 한 것입니다. 각 단계가되는 영구적이지 , 또는 아무 짓도 안 했어요 :

  1. swapoff유틸리티 사용하기 :

    swapoff --all
    
  2. 은 Using GParted와의 유틸리티를 :

    스왑 파티션을 마우스 오른쪽 버튼으로 클릭하고 스왑 오프를 클릭하십시오.

  3. 다음 파일에서 스왑 파티션의 UUID 를 주석 처리 하십시오.

    /etc/fstab
    
  4. 다음 파일에서 스왑 파티션의 UUID 를 주석 처리 하십시오.

    /etc/initramfs-tools/conf.d/resume
    
  5. 이러한 명령을 마지막에 실행 (이 순서와 반대 순서 모두) :

    update-grub
    
    update-initramfs -u
    

1
스왑 오프는 현재 실행중인 시스템에 대한 스왑 만 비활성화하므로이를 영구 삭제하려면에서 관련 항목을 제거해야합니다 /etc/fstab. 완료되면 스왑을 비활성화하고 다음 부팅시 다시 나타나지 않아야합니다. 사용하지 않은 공간을 재 확보하려면 파티션 테이블을 수정하고 기본 파일 시스템을 확장해야합니다. 자세한 지침은 내 답변을 참조하십시오.
André Borie

@ burian.vlastimil 당신은 당신의 전체를 게시 할 수 /etc/fstab있습니까?
André Borie

@ burian.vlastimil 의견은 줄 바꿈을 유지하지 않으므로 질문에서 편집하십시오. 재부팅 후에도 fstab의 변경 사항이 유지됩니까? 아니면 스왑 줄의 주석 처리가 제거됩니까?
André Borie

1
이 질문에 답할 수 없다면 스왑의 목적은 사용하지 않는 페이지를 제거하고 시스템의 메모리 부족을 방지하는 것입니다. 따라서 SnakeDoc이 제안한 것처럼 512MB의 스왑이 항상 좋습니다. 개인적으로, 나는 스왑 파티션이없고 내 / 디렉토리에 스왑 파일이있는 SSD를 가지고 있습니다. 그렇게하려면 이 학습서 를 사용하여 파일을 작성하십시오. 스왑 파티션의 경우 라이브 USB를 부팅하고 gparted를 사용하여 해당 파티션을 제거 할 수 있습니다. 그래 브를 반드시 업데이트하십시오.
Sergiy Kolodyazhnyy

4
@SnakeDoc-일반적으로 커널 패닉이 발생하지 않습니다. OOM 핸들러는 메모리를 확보하기 위해 프로세스를 시작하고 종료합니다 (일반적으로 어느 쪽을 죽일 것인지 결정하는 것이 좋습니다) 더 크고 새로운 프로세스를 죽이는 것). 서버가 일반적으로 메모리가 부족하지 않도록 구성되어 있기 때문에 프로세스를 강제 종료하는 대신 OOM에서 패닉으로 설정된 스왑이없는 많은 수의 서버를 유지 관리합니다. 속도를 늦추십시오 (또는 OOM 핸들러가 어떤 프로세스를 종료시킬 것인지 결정)
Johnny

답변:


45

루트로 실행하십시오.

# swapoff -a

변경 사항을 영구적으로 적용하려면 /etc/fstab스왑 항목을 편집 및 제거하거나 주석 처리하십시오.


@ burian.vlastimil, 잠긴 상태 란 무엇입니까? 상단의 첫 번째 줄을 통해 스왑 장치가 사용 중이 아님을 확인할 수 있습니다. 'KiB 스왑 : 총 0'이보고되어야합니다. 당신은 또한 할 수있는 cat /proc/swaps단지 헤더 행을보고해야한다 -. 이런 경우라면 가능하다면 스왑 파티션을 안전하게 제거하고 다른 파티션을 확대하여 원하는 공간을 확보 할 수 있습니다.
maxschlepzig

@ burian.vlastimil, 스왑은 initramfs에 의해 활성화 될 수 있습니다. 스왑 resume의 UUID를 참조하는 커널 옵션 을 제거해야합니다 . 즉, grub을 업데이트하고 initramfs를 재생성하십시오 (기본적으로 SwapFaq ).
maxschlepzig

@ burian.vlastimil, /boot그 uuid에 대한 grub 설정 ( )을 grep하고 initramsfs의 압축을 풀고 그 내용을 grep하여 근본 원인을 얻을 수 있습니다. 대소 문자를 구분하지 않는 grep을 수행해야합니다.
maxschlepzig

2
단지 넣어 swapoff -a에서 /etc/rc.local. 스왑 필요 당신은 부팅 몇 밀리 초 동안 아무런 문제가 없다. 16GB RAM을 사용하면 오랫동안 아무것도 기록되지 않습니다. 단지 거기에 스왑 공간을두고 (디스크 공간이 저렴) 및 변경하지 마십시오 /etc/fstab .
Skaperen

a를 일시적으로 당신이 떨어져 스왑을 설정하면 스왑 파일을, 당신은 파일을 삭제하여 공간을 복구 할 수 있습니다
Skaperen

40
  1. GParted가 열려 있으면 닫습니다. 스왑 오프 기능은 영구적이지 않습니다.

  2. 터미널을 열고 root( su)가됩니다. sudo활성화 한 경우 예를 들어 sudo -i; man sudo모든 옵션 참조 ) :

    sudo -i
    
  3. 특정 끄고 스왑 파티션 및 / 또는 모든 스왑 들 :

    swapoff --all
    
  4. 특정 스왑 파티션 파티션이 꺼져 있는지 100 % 확인하십시오 .

    cat /proc/swaps
    
  5. 이 파일에 익숙한 텍스트 편집기를여십시오 (예 nano: 확실하지 않은 경우).

    nano /etc/fstab
    
  6. 스왑 파티션의 UUID를 주석 처리 / 제거하십시오 . 예 :

    # UUID=1d3c29bb-d730-4ad0-a659-45b25f60c37d    none    swap    sw    0    0
    
  7. 이 파일에 익숙한 텍스트 편집기를여십시오 (예 nano: 확실하지 않은 경우).

    nano /etc/initramfs-tools/conf.d/resume
    
  8. 이전에 식별 된 스왑 파티션의 UUID를 주석 처리 / 제거하십시오 . 예 :

    # RESUME=UUID=1d3c29bb-d730-4ad0-a659-45b25f60c37d
    
  9. 나중에 필요할 것이므로 터미널을 닫지 마십시오.

참고 : 당신이 의지 여부를 다음 단계에 따라 다를 CLI 또는 GUI .


GUI :

  1. 메뉴에서 또는 열린 터미널에서 더 편리하게 GParted를 엽니 다 .

    gparted
    
  2. 설치되어 있지 않은 경우 설치할 수 있습니다. 그런 다음 이전 명령을 다시 실행하십시오.

    apt-get install gparted
    
  3. 오른쪽 상단 메뉴에서 드라이브를 선택하십시오.

  4. 는 AS GParted와는 다시 활성화 스왑 출시에 따라 파티션을, 당신이해야 할 특정 마우스 오른쪽 단추로 클릭 스왑 파티션 및 후 swapoff을 클릭 ->이 즉시 적용됩니다.

  5. 삭제 스왑 마우스 오른쪽 버튼으로 클릭으로 파티션 -> 삭제합니다. 지금 변경 사항을 적용해야합니다.

  6. 마우스 오른쪽 버튼으로 클릭-> 크기 조정 / 이동으로 기본 / 다른 파티션 크기를 조정하십시오. 지금 변경 사항을 적용해야합니다.

  7. 터미널로 돌아가서 부팅 이미지를 다시 만들어 봅시다 :

    update-initramfs -u -k all
    
  8. GRUB 업데이트 :

    update-grub
    
  9. 머신이 부팅되는지 테스트하려면 지금 재부팅하십시오.


CLI :

내 솔루션이 작동하는지 VM 에서 확인한 다음 공유합니다. 그 동안 이 답변을 참조하십시오 .


1
가장 완전하고 잘 설명되어 있습니다.
벤츠 지

다음과 같은 메시지와 함께 부팅이 느리게 진행되는 경우 gave up waiting for suspend/resume device: file /etc/initramfs-tools/conf.d/resume에서 줄을 비활성화하지 말고로 바꾸십시오 RESUME=none. ( 출처 )
tanius

17

/etc/fstab다음 부팅시 항목 이 다시 활성화되지 않도록 관련 항목을 주석 처리 / 제거한 다음 재부팅하거나 실행 swapoff -a하여 현재 실행중인 시스템의 스왑 파티션 사용을 비활성화하십시오.

이제 스왑 파티션을 삭제하고 사용되지 않은 공간으로 시스템 파티션을 확장 한 다음 실제 파일 시스템을 확장하십시오. 그래픽 파티션 관리자가 모든 작업을 수행 할 수 있는지 여부는 알 수 없지만 여기에 사용할 수없는 경우에는 fdiskand를 사용하여이 작업을 수행 할 수 있습니다 resize2fs.

# fdisk /dev/sdX

# Display current partition table, copy/paste this output somewhere to be able to go back in case you screw up

Command (m for help): p
Device       Boot  Start    End Sectors Size Id Type
/dev/sda1        2048  22527   20480  10M ef EFI (FAT-12/16/32)
/dev/sda2       22528 186367  163840  80M 83 Linux
/dev/sda3      186368 204799   18432   9M 82 Linux swap / Solaris

# Delete the swap partition

Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 has been deleted.

# Delete the system partition

Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.

# Create a new system partition starting the same as the old one but ending a bit farther, at the end of the (now deleted) swap partition

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (2-4, default 2): 
# Enter the same start sector as the old part.
First sector (22528-204799, default 22528): 22528
# Enter the end sector of the old swap partition
Last sector, +sectors or +size{K,M,G,T,P} (22528-204799, default 204799): 204799

Created a new partition 2 of type 'Linux' and of size 89 MiB.

# Save the changes
Command (m for help): w
The partition table has been altered.

마지막으로 현재 파일 시스템을 확장하여 새로운 여유 공간을 사용합니다 (현재 실제 파일 시스템은 기본 파티션에 공간을 더 추가 한 것을 알지 못했습니다). 기본적 resize2fs으로 고정 크기를 지정하지 않으면 전체 파티션을 사용하므로 파티션 블록 장치 이외의 다른 것을 지정할 필요가 없습니다. 축소 된 파일 시스템과 달리 파일 시스템 확장은 마운트 된 파티션을 사용하여 온라인으로 수행 할 수 있습니다.

# resize2fs /dev/sda2

이제 재부팅하지 않아도 스왑을 성공적으로 비활성화하고 사용하지 않은 공간을 회수했습니다.

데비안 절차는 약간 다르며 더 많은 파일을 편집해야합니다. 자세한 내용은 이 답변 을 확인하십시오 .


이것은 나를 위해 작동하지 않습니다. 나는 3 개의 파티션을 가지고있었습니다. 하나는 / boot, 하나는 / 및 swap입니다. 새 파티션을 만들려고 할 때
16GB

최소한 데비안 9 기반 배포판의 경우 추가 : 명령 partprobe전에 실행 해야합니다 resize2fs. 그렇지 않으면 커널은 새 파티션 테이블에 대해 알지 못하며 크기는 조정되지 않습니다.
tanius

2

GParted에서 스왑 파티션을 마우스 오른쪽 버튼으로 클릭하고 스왑 오프를 클릭하십시오. 그런 다음, 스왑 파티션을 삭제에서 제거 /etc/fstab하고 다시 생성 initramfs하고 grub(어쩌면 불필요).

스왑 파티션은 추가하지 않아야 initramfs에 의해 initramfs스왑 파티션이 존재하지 않는 경우 업데이트 스크립트.

에 따르면 이 게시물 , 다음 재생하는 올바른 방법입니다 initramfsgrub:

update-initramfs -c -k <kernel>

update-grub

-2

당신이 바로 gparted를 스왑 파티션을 클릭하고 선택할 수 있습니다 후 swapoff 옵션을 선택합니다. 그것은 당신이 요구했던 것과 같은 것을 성취하는 빠른 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.