/tmp(및 기타 임시 디렉터리)를 마운트하는 시기

/tmp(및 기타 임시 디렉터리)를 마운트하는 시기

(Debian에서) 마운트하기에 적절한 시기는 언제입니까 /tmp? 왜냐하면 /home그렇게 하지 않을 것이기 때문입니다 . 그러나 그것을 적용하면 어떤 프로그램에서도 사용되지 않을 echo "/dev/foo /home type defaults 0 0" >>/etc/fstab것이라고 확신할 수 있습니까 ?/tmpfstab


나는 사용하고있다우분투 또는 일반 데비안 또는 데비안/게미르- 별 차이 없을 것 같아요.

내가 지금까지 읽은 내용은 다음과 같습니다.

  • 인터넷에는 추가에 대한 제안이 가득 tmpfs /tmp tmpfs <optionns> 0 0하지만 확실하지는 않습니다.

  • 나는 이것을 찾았다답변재부팅하지 않고 완전히 로드했을 때 수행할 작업에 대해 /tmp(간단히 말하면 공동 설치를 제외하고는 어쨌든 재부팅하는 것이 좋습니다).

  • [금지 정책]에는 마운트를 추가할 위치나 /tmp첫 번째 액세스가 발생할 수 있는 시기가 설명되어 있지 않습니다. 훨씬 더 도움이 되는 것은 /etc/init.d/README/etc/rcS/READMEUbuntu(온라인으로 읽다).

배경:나는 내 넷북에서 데비안 버전을 사용할 예정입니다(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가 사용 중이 아닌지 확인하세요.

  1. /tmp가 마운트된 파일 시스템인 경우 fuser -m /tmp수정 전에 현재 마운트 지점을 사용하는 프로세스가 없는지 확인됩니다.
  2. /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...

관련 정보