실제로 메모리를 유지하는 RAM 디스크를 만드는 방법은 무엇입니까?

실제로 메모리를 유지하는 RAM 디스크를 만드는 방법은 무엇입니까?

Linux Debian Jessie에서 다음 명령을 사용하여 "RAM 디스크"를 빠르게 만들었습니다.

mount -o size=1G -t tmpfs none /mnt/tmpfs

하지만 기억이 유지되지 않는다고 들었는데 모르겠어요.

나는 메모리를 보존하는 솔루션을 원합니다.

답변1

다음 항목에 추가하세요 /etc/fstab.

none    /mnt/tmpfs  tmpfs   defaults,size=1g,mode=1777  0 0

다음과 같이 initramfs를 다시 빌드해야 할 수도 있습니다.

sudo update-initramfs -u -k $(uname -r)

또는 모든 코어에 대해 initramfs를 다시 빌드하십시오.

sudo update-initramfs -u -k all

그런데 tmpfs는 메모리를 예약하지 않습니다. tmpfs 파일 시스템은 포함된 파일(및 파일/디렉토리 오버헤드)에 필요한 메모리만 사용합니다.

답변2

실제로는 메모리를 예약하지 않습니다. 이 문제는 부팅 시 실행되었지만 오래 전에 제거된 램디스크를 사용할 때 발생했습니다.

현재는 커널과 해당 모듈만 특정 RAM 영역을 할당하거나 실제 RAM 영역을 예약할 수 있습니다. 다른 방법은 디스크로 교체할 수 있는 메모리를 할당합니다.

이전 답변에서는 tmpfs 마운트 지점에 파일을 할당한 다음 루프백 장치로 마운트하는 것을 제안했습니다. "램디스크" 목적으로 메모리를 사전 할당하는 데 사용되지만 해당 내용은 스왑되며 스왑이 활성화된 경우 이 솔루션은 작동하지 않습니다.

그건 그렇고, tmpfs는 포함된 파일을 저장하는 데 필요할 때만 메모리를 할당하기 때문에 이것은 메모리 할당과 함께 작동합니다.디스크파일이 생성되었습니다.

-----비작동 솔루션------------------------------- --- -------------

당신이 할 수 있는 한 가지는 원하는 크기의 tmpfs 내에 루프백 파일을 만드는 것입니다.

다음과 같이 보일 것입니다:

mount -o size=1G -t tmpfs none /mnt/tmpfs
dd if=/dev/zero of=/mnt/tmpfs/disk
losetup /dev/loop0 /mnt/tmpfs/disk
mkfs.ext2 /dev/loop0
mount /dev/loop0 /mnt/static_ramdisk

관련 정보