/etc/fstab
모든 가이드에서는 재부팅 시 스왑이 설치되는 것을 방지하기 위해 해당 줄을 주석 처리하여 스왑을 영구적으로 비활성화할 것을 제안합니다 . 그러나 이는 데비안 11에서는 작동하지 않습니다.
예:
sudo swapoff -a
완벽하게 작동하지만 재부팅 후에도 지속되지 않습니다.
주석 처리된 행이 있는 fstab 파일의 예:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=6b762cb8-b92b-489a-98cf-2bf200e3c4ae / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=4847-3887 /boot/efi vfat umask=0077 0 1
# swap was on /dev/sda3 during installation
# UUID=b9aeb506-ad7d-488d-b2b9-7c68dff21906 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
수동
스왑을 수동으로 종료한 후:
sudo swapoff -a
lsblk
스왑 파티션은 여전히 마운트되어 있지만 더 이상 스왑으로 나열되지 않습니다. 스왑이 비활성화되었습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 127G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 125.5G 0 part /
└─sda3 8:3 0 976M 0 part
sr0 11:0 1 1024M 0 rom
EditFstab
fstab 파일을 편집하고 sudo systemctl daemon-reload
시스템 재부팅을 실행 및 수행한 후에도 스왑이 여전히 존재합니다.
lsblk -o +PARTTYPE
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT PARTTYPE
sda 8:0 0 127G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi c12a7328-f81f-11d2-ba4b-00a0c93ec93b
├─sda2 8:2 0 125.5G 0 part / 0fc63daf-8483-4772-8e79-3d69d8477de4
└─sda3 8:3 0 976M 0 part [SWAP] 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f
sr0 11:0 1 1024M 0 rom
분명히 한 단계가 빠졌습니다.
답변1
systemd에 의해 활성화됩니다. man systemd-fstab-generator
및 을 참조하십시오 man systemd.swap
.
아치리눅스 위키:systemd에 의해 활성화됨
체계스왑 파티션은 두 가지 메커니즘을 기반으로 활성화됩니다. 둘 다 /usr/lib/systemd/system-generators에 있는 실행 파일입니다. 생성기는 부팅 시 실행되며 설치를 위한 기본 시스템 장치를 생성합니다. 첫 번째는 systemd-fstab-generator로, fstab을 읽어 스왑용 단위를 포함한 단위를 생성합니다. 두 번째 systemd-gpt-auto-generator는 루트 디스크를 확인하여 셀을 생성합니다. GPT 디스크에서만 실행되며 GUID 유형으로 스왑 파티션을 식별할 수 있습니다.systemd#GPT 파티션이 자동으로 마운트됨더 많은 정보를 알고 싶습니다.
특정 스왑 공간을 비활성화하려면 다음을 수행하십시오.
# swapoff /dev/sdxy
또는 -a 스위치를 사용하여 모든 스왑 공간을 비활성화합니다.
스왑은 systemd에 의해 관리되므로 다음에 시스템이 시작될 때 다시 활성화됩니다.. 감지된 스왑 공간의 자동 활성화를 영구적으로 비활성화하려면
systemctl --type swap
담당.swap
장치 찾기를 실행하십시오.그리고 덮어줘.
상태 확인:
systemctl status *swap
또는:
systemctl --type swap
그런 다음 서비스를 비활성화합니다.
sudo systemctl mask "dev-*.swap"
답변2
systemd는 기본적으로 자동 모드에 있으며 활성화하기 위해 fstab이 필요하지 않습니다.
systemd-gpt - 자동 생성기루트, /home/, /srv/, /var/, /var/tmp/, EFI 시스템 파티션, 확장 부트로더 파티션을 자동으로 검색할 수 있는 단위 생성기입니다.그리고 스왑 파티션
생성기는 별도의 관리 오버레이 디렉터리에 숨겨질 수 있습니다.
/etc/systemd/system-generators/systemd-gpt-auto-generator -> /dev/null
systemd.gpt_auto=no
시작 매개변수는 동일한 효과를 가져야 하기 때문입니다.
매뉴얼 페이지는 계속됩니다:
systemd-gpt-auto-generator는 파티션 테이블의 파일 시스템 구성을 중앙 집중화하는 데 유용하며 /etc/fstab또는 커널 명령줄에서불필요한.
fstab-generator
두 번째로/재정의될 수 있습니다. 하지만 당신이 스왑에 대해 언급한 이후로 gpt-auto가 스왑을 켜고 있는 것 같아요.
sda3
아니요무시하고 설치. 파티션 수준에서와 마찬가지로 lsblk
작동합니다 . 진입점은 마운트 지점과 같습니다.fdisk -l
[SWAP]
swapon --show
스왑 파일과 여러 스왑을 갖는 것도 가능하므로 시도해 보십시오 .
답변3
당신은 변화해야가상 머신 전환 가능성리눅스 커널 매개변수를 영구적으로 변경/etc/sysctl.conf문서. 그리고 시스템을 다시 시작하세요.
기본값은 다음과 같습니다.가상 머신 전환 가능성예60그리고스왑을 활성화하기 전의 여유 메모리 비율을 나타냅니다.. 값이 낮을수록 스왑이 덜 사용되고 실제 메모리에 더 많은 메모리 페이지가 유지됩니다.
Debian 시스템에서 스왑을 영구적으로 비활성화하려면:
- 편집하다/etc/sysctl.conf 파일파일을 삭제하고 파일이 없으면 파일 끝에 추가합니다.VM.swappiness = 0
- 시스템을 다시 시작하세요
# edit /etc/sysctl.conf file
~] vi /etc/sysctl.conf
# disable swap
# add to end of file if not present:
vm.swappiness = 0
# reboot for changes
~] systemctl reboot
이것은 가이드입니다Linux에서 스왑을 영구적으로 비활성화하는 방법.
답변4
누락된 단계는 initramfs 파일의 복사본도 최신 상태인지 확인하기 위해 sudo update-initramfs -u
변경 후에 실행될 수 있습니다 ./etc/fstab
fstab
그렇지 않으면 시스템이 initramfs에서 계속 실행되는 동안 부팅 프로세스 초기에 스와핑이 활성화될 수 있습니다. 이런 일이 발생하면 나중에 비활성화할 시작 프로세스 단계가 없습니다.