![/tmp(및 기타 임시 디렉터리)를 마운트하는 시기](https://linux55.com/image/22572/%2Ftmp(%EB%B0%8F%20%EA%B8%B0%ED%83%80%20%EC%9E%84%EC%8B%9C%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC)%EB%A5%BC%20%EB%A7%88%EC%9A%B4%ED%8A%B8%ED%95%98%EB%8A%94%20%EC%8B%9C%EA%B8%B0.png)
(Debian에서) 마운트하기에 적절한 시기는 언제입니까 /tmp
? 왜냐하면 /home
그렇게 하지 않을 것이기 때문입니다 . 그러나 그것을 적용하면 어떤 프로그램에서도 사용되지 않을 echo "/dev/foo /home type defaults 0 0" >>/etc/fstab
것이라고 확신할 수 있습니까 ?/tmp
fstab
나는 사용하고있다우분투 또는 일반 데비안 또는 데비안/게미르- 별 차이 없을 것 같아요.
내가 지금까지 읽은 내용은 다음과 같습니다.
인터넷에는 추가에 대한 제안이 가득
tmpfs /tmp tmpfs <optionns> 0 0
하지만 확실하지는 않습니다.나는 이것을 찾았다답변재부팅하지 않고 완전히 로드했을 때 수행할 작업에 대해
/tmp
(간단히 말하면 공동 설치를 제외하고는 어쨌든 재부팅하는 것이 좋습니다).[금지 정책]에는 마운트를 추가할 위치나
/tmp
첫 번째 액세스가 발생할 수 있는 시기가 설명되어 있지 않습니다. 훨씬 더 도움이 되는 것은/etc/init.d/README
내/etc/rcS/README
Ubuntu(온라인으로 읽다).
배경:나는 내 넷북에서 데비안 버전을 사용할 예정입니다(HD 없음, 8GB SSD, 1GB RAM - 필요한 경우 RAM을 두 배로 늘림).내 기억력은 나쁘지 않아요.일부 작업은 너무 느리지만(중간 크기의 C 프로그램을 구축하거나 TeX에서 PDF를 컴파일하는 데 모두 5초 이상 소요) tmpfs에서는 시간이 전혀 걸리지 않습니다. 속도를 높이기 위해 /tmp에 tmpfs를 설치하고 싶습니다.
답변1
데비안 정책은 이를 명시 적 으로 지정하지 않는 것 같지만 데비안은 /tmp
별도의 파일 시스템( 및 ) 생성을 지원합니다 . 이는 전통적으로 UNIX 시스템에서 지원됩니다. tmpfs 파일 시스템을 만들고 자동으로 마운트하면 데비안에서 작동한다는 것을 확인할 수 있습니다 ./home
/var
/usr
/tmp
/etc/fstab
/tmp
파일이 이미 존재 /tmp
하고 복사할 수 없기 때문에 라이브 시스템에서 tmpfs로 전환하는 데 몇 가지 어려움이 있습니다 . 그러나 /tmp
다시 시작한 후에는 파일이 저장되지 않을 것으로 예상됩니다. /tmp
파티션을 마운트할 때 다른 파일 시스템을 마운트하는 것이 안전합니다 /etc/fstab
.
답변2
일반적으로 telinit 1
현재 /tmp 디렉토리를 마운트하기 전에 먼저 마운트해야 합니다. 단일 사용자 모드에서는 /tmp에 시스템 작동에 필요한 파일이 없어야 하므로 해당 디렉터리를 정리하고 마운트 해제한 다음(별도의 파티션인 경우) 해당 마운트 백에 다른 것을 마운트할 수 있어야 합니다. 다중 사용자 모드 이전.
/tmp가 사용 중이 아닌지 확인하세요.
- /tmp가 마운트된 파일 시스템인 경우
fuser -m /tmp
수정 전에 현재 마운트 지점을 사용하는 프로세스가 없는지 확인됩니다. - /tmp가 별도의 파일 시스템이 아닌 경우에도
find /tmp -print0 | xargs -0 fuser
비슷한 결과가 나타납니다 .
별도의 tmpfs 파일 시스템을 마운트하고 이를 사용하기 위해 TMPDIR(또는 컴파일러의 유사한 환경 변수)을 내보내는 것을 고려할 수도 있습니다. 이렇게 하면 시스템 전체를 변경하지 않고도 tmpfs 스크래치 공간의 이점을 얻을 수 있습니다.
답변3
tmp영구 데이터에는 사용하면 안 됩니다.
LSB(Linux Standard Base)는 다음에 정의되어 있습니다.FHS(파일 시스템 계층 표준) 2.3
"프로그램은 /tmp의 파일이나 디렉터리가 프로그램 호출 사이에 보존된다고 가정해서는 안 됩니다."
~처럼자일스는 지적했다., 여기에는 다음이 포함될 수 있습니다.소켓프로그램을 실행하는데 사용됩니다. 이러한 프로그램의 대부분은 아마도 네트워크 서비스이며 실행 수준 2 또는 3에 있습니다.
시스템 세부 정보를 얻으려면:
cd /etc/init.d ; grep tmp *
시작하는 동안 tmp 사용법이 표시되어야 합니다.
grep mktemp *
tmp의 더 높은 수준의 사용을 찾으려면 추가 작업을 수행하십시오 .
모든 프로그램은 짧은 시간 동안만 tmp를 사용해야 합니다.
fuser /tmp/* ; fuser /tmp/*/*
실행 중인 프로세스가 tmp를 차단하고 있는지 확인하려면 실행 중인 시스템에서 이와 같은 작업을 수행하세요 .
게다가 /etc/fstab은 파일 시스템 마운트를 위한 표준 위치여야 합니다. 왜 "1 2"로 추가하면 안 됩니까?
답변4
/etc/fstab
런타임에만 사용됩니다 mount
.
내가 생각할 수 있는 세 가지:
- 시스템 시작 중(Debian 시스템에서는 부팅 프로세스 초기에 전달됩니다
/etc/rcS.d/S10mountall.sh
.) - 슈퍼유저로 실행할 때
mount -a
- 슈퍼유저로 실행할 때
mount <mount point mentioned in /etc/fstab>
실행되려고 하는데 재부팅하지 않고 새로운 tmpfs를 생성하라고 하면 /tmp
이미 실행 중인 프로그램이 깨지지 않도록 다른 곳에 마운트해야 할 것 같습니다.
왜 안되지?
mkdir /tmpnew
mount -t tmpfs tmpfs /tmpnew
TMPDIR=/tmpnew make...