Linux에서 ext-filesystem이 더 적은 공간을 사용하도록하는 방법이 있습니까? Linux에서 LUKS 암호화 NTFS 파티션을 크기

Linux 시스템에서 사용하는 외부 및 내부 HDD가 많이 있습니다. 저는 Linux 시스템 만 가지고 있으므로 Linux 파일 시스템을 사용하는 것이 의미가 있습니다. 그러나 현재 NTFS를 사용하고 있습니다. HDD에서 가장 유용한 공간을 제공하기 때문입니다.

그래도 Linux 파일 시스템으로 전환하고 싶습니다. 주로 권한과 호환성 때문에 (예를 들어 Linux에서 LUKS 암호화 NTFS 파티션을 크기 조정하여 Windows에서 chkdsk로 계속 알려줍니다).

그러나 그 HDD를 포맷 할 때 여러 파일 시스템과 모든 Linux 파일 시스템, 심지어 저널링이없는 ext2조차도 많은 공간을 사용했습니다. 정확한 값을 기억하지는 않지만 NTFS가 2TB HDD에서 더 많은 것을 얻었던 것은 100GB가 넘었습니다.

그래서 내 질문은 : ext-filesystems가 자신을 위해 더 적은 공간을 사용하게하는 방법이 있습니까? 아니면 완벽한 Linux 지원과 훌륭한 사용 가능한 공간을 가진 또 다른 파일 시스템이 있습니까?

파일 시스템 (특히 저널링이없는 ext2)이 NTFS보다 훨씬 더 많은 공간을 사용하는 방법과 이유에 대해 듣고 싶습니다. 다른 곳을 물어볼 필요가 없습니다. 나는 저널링없이 ext4를 사용하는 방법과 가능한 경우이 공간을 많이 사용하는 다른 방법을 선호합니다.



답변

기본적으로 ext2 및 후속 버전은 루트 사용자가 사용할 파일 시스템의 5 %를 예약합니다. 이렇게하면 조각화가 줄어들고 관리자 나 루트 소유 데몬이 작업 할 공간이 없어 질 가능성이 줄어 듭니다.

이 예약 된 블록은 루트로 실행되지 않는 프로그램이 디스크를 채우지 못하게합니다. 이러한 고려 사항이 용량 손실을 정당화하는지 여부는 파일 시스템의 용도에 따라 다릅니다.

5 %의 양은 디스크가 훨씬 더 작았지만 그대로 남겨진 1980 년대에 설정되었습니다. 현재 1 %는 시스템 안정성에 충분할 것입니다.

명령 -m옵션을 사용하여 예약을 변경할 수 있습니다 tune2fs.

tune2fs -m 0 /dev/sda1

예약 된 블록 백분율을 0 % (0 블록)로 설정합니다.

현재 값을 얻으려면 다음 명령을 사용하십시오.

tune2fs -l <device>


답변

저장하려는 데이터가 압축 가능한 경우 compress=zstd(또는 compress-force=zstd)로 마운트 된 btrfs 는 ext *보다 훨씬 적은 디스크 공간을 사용합니다.

  • 이렇게하면 btrfs가 디스크에 쓰기 전에 데이터를 투명하게 압축하고 다시 읽을 때 압축을 해제합니다. 또한 ext4는 파일 시스템 생성시 모든 inode를 미리 할당하고 btrfs는 필요에 따라 생성합니다. 공간을 절약 할 수 있다고 생각합니다.

답변

아직 이야기하지 않은 또 다른 요점은 파일 시스템에 예약 한 inode 수입니다.

기본적으로 mkfs는 파일 시스템에 아주 작은 파일을 많이 넣을 수 있도록 많은 inode를 만듭니다. 파일이 매우 크다는 것을 알고 FS에 적은 수의 파일 만 넣을 경우 inode 수를 줄일 수 있습니다.

조심해! 이 수 (공간과 inode 수 사이의 비율)는 파일 시스템 작성시에만 설정할 수 있습니다. FS를 확장하더라도 비율은 동일하게 유지됩니다.


답변