Swap에 더 많은 공간을 할당하고 Ram보다 더 큰 크기를 늘리는 방법은 무엇입니까?

Swap에 더 많은 공간을 할당하고 Ram보다 더 큰 크기를 늘리는 방법은 무엇입니까?

상황: HD 128GB가 /dev/sda3RAM(8GB)보다 큰 경우 스왑 크기( )를 늘리십시오 .
동기: 8GB RAM은 너무 적습니다. SSD에 30GB의 여유 공간이 있습니다. 20GB를 SSD 스왑으로 변환하고 싶습니다.

  • 불변/변경 불가능을 교환합니다. 왜 불변이어야 하는지에 대한 증거를 찾을 수 없으므로 /mnt/.swapfile스왑 파일의 파일 속성을 변경할 필요가 없습니다.

    sudo lsattr /mnt/.swapfile 
    -------------e-- /mnt/.swapfile
    
  • sudo fdisk -lu /dev/sda주어진 명령

    Disk /dev/sda: 113 GiB, 121332826112 bytes, 236978176 sectors 
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt
    Disk identifier: 082F85CA-EE3E-479C-8244-858B196FA5BA
    
    Device         Start       End   Sectors   Size Type
    /dev/sda1       2048      4095      2048     1M BIOS boot
    /dev/sda2       4096 220323839 220319744 105.1G Linux filesystem
    /dev/sda3  220323840 236976127  16652288     8G Linux swap
    
  • df -h주어진 명령

    Filesystem      Size  Used Avail Use% Mounted on
    udev            3.9G     0  3.9G   0% /dev
    tmpfs           793M  9.4M  784M   2% /run
    /dev/sda2       104G   74G   25G  75% /
    tmpfs           3.9G   54M  3.9G   2% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    tmpfs           793M   64K  793M   1% /run/user/1000
    
  • 스왑을 위해 더 많은 디스크 공간을 할당하십시오 /dev/sda3.

HD와 스왑이 동일한 파티션에 있으면 내 작업 흐름이 성공하지 못합니다./dev/sda3

masi@masi:~$ sudo -i

root@masi:~# swapoff /dev/sda3

root@masi:~# swapon
[blank]    

root@masi:~# dd if=/dev/zero of=/dev/sda3 bs=20480 count=1M
dd: error writing '/dev/sda3': No space left on device
416308+0 records in
416307+0 records out
8525971456 bytes (8.5 GB, 7.9 GiB) copied, 18.7633 s, 454 MB/s

root@masi:~# mkswap /dev/sda3
Setting up swapspace version 1, size = 8 GiB (8525967360 bytes)
no label, UUID=245cb42c-1d4e-4e21-b544-16b64af962d6

root@masi:~# swapon -p 99 /dev/sda3

root@masi:~# swapon
NAME       TYPE      SIZE USED PRIO
/dev/sda3  partition   8G   0B   99

root@masi:~# vi /etc/fstab 
...

동일한 파티션의 HD 및 스왑 - 현재 작업 흐름 [Ijaz, cas, FarazX]

병합. 0을 추가할 필요가 없으므로 fallocate처음에 사용됩니다.dd

masi@masi:~$ sudo fallocate -l 20G /mnt/.swapfile

masi@masi:~$ sudo mkswap /mnt/.swapfile 
Setting up swapspace version 1, size = 20 GiB (21474832384 bytes)
no label, UUID=45df9e48-1760-47e8-84d7-7a14f56bbd72

masi@masi:~$ sudo swapon /mnt/.swapfile
swapon: /mnt/.swapfile: insecure permissions 0644, 0600 suggested.

masi@masi:~$ sudo chmod 600 /mnt/.swapfile

masi@masi:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7925        1494         175         196        6255        5892
Swap:         28610           0       28610

/etc/fstab런레벨()에 추가하는 것보다 런레벨에 다음 줄을 추가하는 것이 더 낫습니다. 저는 Linux/Unix 철학을 유지하고 SSD로 교체하는 경우 시스템 백업 스크립트의 무결성을 유지하기 위해 /etc/rc.local여기에 스왑 파일을 넣습니다. 재부팅할 때마다 블록이 잘려지도록 하는 옵션/mnt/.swapfilediscardsw

# http://unix.stackexchange.com/a/298212/16920
# http://unix.stackexchange.com/a/298543/16920

# If swap is on SSD, trim blocks each time at startup.
/mnt/.swapfile  none    swap    defaults,discard      0        0

# If swap on External HDD, just use sw.
#/media/masi/SamiWeek/.swapfile  none    swap    sw      0        0

원천

  1. 스왑 공간을 늘리는 방법은 무엇입니까?https://askubuntu.com/a/178726/25388초보자를 위한 스왑 공간 추가에 대한 일반적인 토론입니다.
  2. HDD(SSD 아님)용 Linux 파티셔닝 가이드: 4. 파티션 요구 사항.http://www.tldp.org/HOWTO/Partition/requirements.html따라서 SSD의 외부 트랙에 스왑을 배치하는 대신 defaults,discard@cas가 제안한 옵션을 사용하여 블록을 정리합니다.

시스템: Linux Ubuntu 16.04 64비트
Linux 커널: 4.6
Linux 모듈: wl
하드웨어: Macbook Air 2013-mid
Ram: 8GB
SSD: 128GB

답변1

시스템의 스왑 크기를 늘리기 위해서만 시스템 공간을 사용하려고 합니다 sda2. 당신의sda2

/dev/sda2       104G   74G   25G  75%  / 

/을 활용하는 스왑 파일을 생성하여 시스템에 추가 스왑 공간을 추가할 수 있습니다 sda2.

dd if=/dev/zero of=/swapfile bs=20480 count=1M

그런 다음 다음을 수행하십시오.

sudo mkswap /swapfile  
sudo swapon /swapfile 

확인하면 스왑 공간이 해당 금액만큼 증가합니다.free -m

예, 부팅 시 활성화하려면 다음 항목을 추가하세요./etc/fstab

 /swapfile     none     swap     sw     0     0

답변2

  1. 메모리 관리

    • 장치의 교환 사용량 요약을 표시하려면:

      $ swapon -s
      
    • 사용 가능하고 사용된 물리적 메모리와 스왑 메모리의 양을 표시합니다.

      $ free -h
      
    • /swapfile에 공간을 미리 할당하려면 다음 줄을 사용할 수 있습니다.

      $ fallocate -l 20G /swapfile
      % OR
      $ dd if=/dev/zero of=/swapfile bs=20480 count=1M
      
  2. 권한 변경 및 교환 생성/활성화

    $ chmod 600 /swapfile
    
    $ mkswap /swapfile
    
    $ swapon /swapfile
    

    파일을 변경하여 파일 보안을 향상시킬 수도 있습니다.속성사용 chattr. 맨 페이지를 읽거나 읽어 보시기 바랍니다.Howto 웹사이트에 있는 이 가이드.

  3. cat /proc/swaps명령의 출력을 보고 free활성화되었는지 확인하거나 명령을 사용하거나 명령을 사용하십시오.

    $ swapon -s
    
  4. 활성화시작 시, 다음 필드 를 포함하도록 편집(파일 시스템에 대한 정적 정보)합니다. /etc/fstab여기서 필드는 fs_spec, fs_file, 및 이며 읽을 수 있습니다. fs_vfstypefs_mntopsfs_freqfs_passnoman 5 fstab

    $ vi /etc/fstab
    
    /swapfile     none     swap     defaults,discard     0     0
    
    • 네 번째 매개변수에서fs_mntopssw, SSD로 교체할 때만 사용 하지 말고 defaults,discard부팅할 때마다 메모리 블록을 정리하세요. 답변을 참조하세요.여기~에 대한오류/경고가 발생한 경우 오류 트래핑 및 교체를 어떻게 수행합니까?discard옵션은 확실히 파티션에서 작동합니다.

답변3

물어,"Swap에 더 많은 공간을 할당하고 Ram보다 더 큰 크기를 늘리는 방법은 무엇입니까?” 시스템 설정 방식을 변경하는 것에 대해서는 언급하지 않았습니다.

fdisk 및 유휴 출력은 다음을 알려줍니다.

  • 스왑 전용 파티션(/dev/sda3)이 있습니다. 해당 파티션의 크기만 조정하면 추가 공간을 사용하기 위해 시스템에서 아무것도 변경할 필요가 없습니다. (/etc/fstab).
  • 운영 체제가 포함된 파티션(/dev/sda2)이 있습니다. 이 파티션에는 26G의 여유 공간이 있습니다. 이 파티션을 20G로 줄이면 운영 체제에서 확장하고 사용할 수 있는 5G가 남습니다.

스왑 파티션은 확장 파티션이 아니므로 크기를 좀 더 쉽게 늘릴 수 있습니다.

필요한 도구:

  • gparted를 사용하여 부팅 가능한 운영 체제

최신 무료 버전을 찾을 수 있는 곳은 여기입니다.이별의 마법

gparted를 사용하여 파티션 크기를 조정하는 방법

  1. gparted 도구를 사용하여 다른 운영 체제로 부팅
  2. gparted에서 운영 체제 파티션(/dev/sda2)의 크기를 조정합니다. 교환공간 기부 금액을 줄여보세요. 해제된 공간의 모든 데이터를 gparted를 통해 이동해야 하기 때문에 시간이 오래 걸릴 수 있습니다.
  3. gparted에서 스왑 파티션(/dev/sda3)의 크기를 조정합니다. 사용 가능한 모든 공간을 포함하도록 이동하고 확장합니다.
  4. sda2 운영 체제로 재부팅합니다.
  5. 스왑 파티션(/dev/sda3)이 사용 중인지 확인하십시오.

디스크와 파티션에 낮은 수준의 변경을 수행하고 있으며 오류나 충돌로 인해 데이터가 손상될 수 있다는 점을 기억하세요.

먼저 데이터를 백업하세요.

관련 정보