재부팅 후 파일 시스템을 변경하지 않는 Linux에서 RAM 디스크 만들기

재부팅 후 파일 시스템을 변경하지 않는 Linux에서 RAM 디스크 만들기

다음 명령을 사용하여 Ubuntu 16.10(VM 내에서 실행)에서 RAM 디스크를 만듭니다.

sudo mkdir -p /media/RAMDisk
sudo 마운트 -t tmpfs -o 크기=2048M tmpfs /media/RAMDisk

그런 다음 RAMDisk로 가서 다음을 수행하면

df.

나는 다음을 얻습니다

tmpfs 2097152 0 2097152 0% /미디어/RAMDisk

여태까지는 그런대로 잘됐다.

그런 다음 Ubuntu를 재부팅합니다(Workstation Pro를 통해 실행 중인 VM이 재부팅됨).

/media/RAMDisk재부팅 후 폴더가 전혀 존재하지 않거나 폴더로 존재할 것으로 예상됩니다 .tmpfs내용이 없는 파일 시스템입니다.

폴더 /media/RAMDisk는 내용 없이 존재하지만 놀랍게도 /dev/sda1파일 시스템으로 존재합니다. df .으로 작업하면 /media/RAMDisk다음이 표시됩니다.

    /dev/sda1 17413904 9577448 6928836 59% /

이제는 쉽게 명령을 내 안에 넣어 .bashrc실행하고 매번 올바른 작업을 수행할 수 있지만 무슨 일이 일어나고 있는지 알아야 합니다.

또한 내 가상 머신 관리자인 Workstation Pro가 뭔가를 하고 있을까요?

답변1

무슨 일이야?

특이한 것은 없습니다.

df /media/RAMDisk, 를 참조하면 /dev/sda1현재 디렉토리가 에 /dev/sda1마운트된 파일 시스템에 속해 있음을 알려줍니다 /.

이는 명령의 효과가 mount영구적이지 않고 재부팅 후에도 지속되지 않기 때문입니다. 반면에 mkdir명령은 파일 시스템 내부에 디렉토리를 생성했으며 /dev/sda1이 파일 시스템은 재부팅할 때마다 마운트되므로 디렉토리 자체는 유지되지만 파일 시스템의 일부로 유지됩니다 /dev/sda1.

RAMDisk어떻게든 부팅할 때마다(또는 부팅할 때) 마운트해야 합니다 .


마운트하는 방법?

mount내부로부터 도망치는 것은 .bashrc좋은 생각이 아닙니다. 왜냐하면이 파일은 여러 번 소스로 제공될 수 있습니다.단일 세션 동안. 어차피 필요하기 때문에 OS가 시작될 때 한 번 실행되는 것을 sudo사용하는 것이 더 나을 것입니다 ./etc/rc.local

그러나 더 좋은 방법은 다음 줄을 추가하는 것입니다 /etc/fstab.

tmpfs /media/RAMDisk tmpfs defaults,nosuid,nodev,size=2048M 0 0

조사 usernoauto옵션( 참조 )을 사용하고 필요할 때만 man 5 fstab호출하고 싶을 수도 있습니다 .mount /media/RAMDisk


systemd?

이 장소systemd특정 사용자가 처음으로 로그인할 때 단위를 실행하고 사용자의 마지막 세션이 닫히자마자 종료할 수 있다고 믿게 만듭니다 . 나는 에 익숙하지 않기 systemd때문에 단위를 사용하여 어떻게 할 수 있는지 말할 수 없습니다 .mount.

하지만 사용한다면 이미 개인용 마운트가 에 systemd탑재되어 있어야 합니다 . 시스템 전체는 켜져 있어야 합니다 .tmpfs/run/user/<UID>/dev/shm


에 대한/media/

또한 /media/Ubuntu에서는 외부 USB 드라이브용 마운트 지점을 생성하는 데 사용됩니다( udisks2책임이 있다고 생각합니다). 그들은 /media/<username>/<label>마치 /media/RAMDisk아무것도 충돌하지 않을 것 같아요. 일반적으로 나는 이 위치를 사용하지 않을 것입니다. 내 시스템(Debian, Kubuntu, Raspbian, OpenWRT)을 사용하고 /mnt/<something>있는데 전혀 문제가 없었습니다.

관련 정보