이 기능이 20년 전으로 거슬러 올라간다는 것을 알고 있지만 여전히 알고 싶습니다.
ext2/3/4 파일 시스템에서 예약된 블록의 목적은 무엇입니까?
답변1
매뉴얼 페이지에 tune2fs
설명이 나와 있습니다.
권한이 있는 프로세스에서 사용하기 위해 특정 수의 파일 시스템 블록을 예약하는 것은 파일 시스템 조각화를 방지하고 권한이 없는 프로세스가 파일 시스템에 쓰는 것을 차단한 후 시스템 데몬(예: syslogd(8))이 정상적으로 계속 작동하도록 허용하는 것입니다.
또한 어떤 이유로 일반 사용자와 해당 프로그램이 디스크를 100% 채우면 파일을 삭제하기 전에 로그인 및/또는 동기화하지 못할 수도 있습니다. 일부 블록을 예약함으로써 root
시스템은 귀하가 항상 상황을 수정할 수 있도록 보장합니다.
실제로 5%는 이전 기본값이었으며 하드 드라이브가 충분히 큰 경우 너무 높을 수 있습니다. 이전에 언급한 도구를 사용하여 이 값을 변경할 수 있지만 tune2fs
먼저 매뉴얼 페이지를 읽어보십시오!
답변2
루트만을 위해 소수의 블록을 예약하는 목적은 루트에게 로그인할 수 있는 기회를 주고 디스크가 완전히 가득 차면 공간을 마련할 수 있는 약간의 호흡 공간을 제공하는 것입니다. 그렇지 않으면 파일을 쓰는 동안 예상치 못한 오류(예: utmp
and wtmp
, file in 등)가 발생 /dev/pts
하면 로그인 프로세스가 실패하므로 루트가 로그인하지 못할 수 있습니다 . 로그인 프로세스가 강력하고 디스크가 가득 찬 경우에도 작동할 것으로 기대할 수 있지만 로그인 프로세스 중 디스크 가득 참 오류는 테스트가 덜 된 코드 경로인 경우가 많습니다.
물론 요즘에는 작은 덩어리라도 이 목적에 필요한 것보다 더 많은 공간을 나타냅니다!
답변3
Reserve %의 목적 중 하나는 조각화를 방지하기 위해 파일 사이에 "빈 포켓"을 허용하는 것입니다. 나중에 파일을 수정한다고 해서 반드시 파일이 조각화되는 것은 아닙니다. 원래 작성되었을 때 파일 끝에 일부 내용이 붙어 있기 때문입니다.
응급 복구 측면도 있습니다. 루트는 로그인하여 무언가 잘못되어 드라이브를 가득 채웠기 때문에(사용자이든 잘못 구성된 프로그램이든) 로그인하고 정리할 수 있어야 합니다.
적절한 보존 비율은 파티션의 사용 사례에 따라 크게 달라집니다. 파티션이 운영 체제 디스크인 경우 루트에 5-10%를 예약하는 것은 매우 큰 파티션의 경우에도 완벽하게 합리적으로 보입니다. 사용자 데이터 파티션의 경우 조각화를 방지하는 데 도움이 되는 경우를 제외하고 일반적으로 보존이 필요하지 않습니다.