실행 중인 커널이 지원할 수 있는 파일 시스템을 나열할 수 있습니까?

실행 중인 커널이 지원할 수 있는 파일 시스템을 나열할 수 있습니까?

커널이 지원할 수 있는 파일 시스템을 검색하려고 합니다. 이름을 나열하는 것이 더 좋지만 당신이 가진 모든 것을 가져갈 것입니다.

제 말은 그런 뜻이 아니니 참고해주세요현재 사용 중인 파일 시스템, 현재 커널이 이론적으로 직접 지원할 수 있는 것(분명히 회로 차단기)할 수 있다무제한 지원).

답변1

실행 중인 커널이 지원할 수 있는 파일 시스템을 나열할 수 있습니까?

훌륭한,답변 /proc/filesystems분명히 잘못된 것입니다. 이미 사용 중인 FS만 반영하지만 커널은 일반적으로 더 많은 것을 지원할 수 있습니다.

ls /lib/modules/$(uname -r)/kernel/fs

/proc/config.gz배포판에 다른 소스가 없을 수도 있지만(만약에 대비해 항상 "왜?!"가 궁금합니다.) 커널을 빌드하는 데 사용된 구성 스냅샷은 일반적으로 커널 및 initrd 이미지와 함께 부팅 디렉터리에서 찾을 수 있습니다.

답변2

/proc/filesystems예를 들어, 실행 중인 커널에서 지원하는 모든 파일 시스템 유형을 파일 시스템 속성과 함께 나열하여 nodev해당 파일 시스템이 블록 장치에서 지원되지 않음을 나타냅니다.

man 5 filesystems좀 더 심층적인 정보가 제공됩니다.

답변3

나는 이것이 당신이 원하는 것을 줄 것이라고 믿습니다:

(cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d'; ls -1 /lib/modules/$(uname -r)/kernel/fs) | sort -u

설명하다

내가 이해한 바에 따르면:

  • cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d'커널에서 기본적으로 지원하는 모든 파일 시스템(예: sysfs)과 현재 커널 모듈이 로드된 파일 시스템을 제공합니다.
  • ls -1 /lib/modules/$(uname -r)/kernel/fs커널에 사용 가능한 파일 시스템 모듈 목록을 제공합니다.
  • sort -u처음 두 명령의 결합된 결과를 정렬하고 중복 항목을 제거합니다(고유한 결과만 표시 -u).

/lib/modules/$(uname -r)/kernel/fs나는 아직 Linux를 배우고 있으며 이것은 Arch Linux에서 작동하지만 적어도 우분투의 경우 배포판에 적합한 다른 디렉토리로 경로를 변경해야 할 수도 있다고 생각합니다 .

답변4

너무 길어요.

cat /proc/filesystems실행 중인 커널이 지원할 수 있는 파일 시스템이 표시됩니다.지금.

ls /lib/modules/$(uname -r)/kernel/fs적절한 모듈을 로드하면 해당 모듈이 지원할 수 있는 추가 파일 시스템에 대한 단서를 얻을 수 있습니다.

설명하다

질문가지다답변을 받았지만 다른 모든 답변은 어떤 면에서 불완전하거나 오해의 소지가 있거나 사실이 아니거나 적어도 더 이상 사실이 아닙니다.

man 8 mount(강조 내) 에서 :

-t, --types fs유형

-t 뒤의 매개변수는 파일 시스템 유형을 나타내는 데 사용됩니다. 현재 지원되는 파일 시스템 유형은 실행 중인 커널에 따라 다릅니다.파일 시스템의 전체 목록은 /proc/filesystems 및 /lib/modules/$(uname -r)/kernel/fs를 참조하세요.가장 일반적인 것은 ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs 및 cifs입니다.

그러니 이런 방법을 제안하는 사람을 비난할 수는 없습니다. 그러나 다른 사람들이 지적했듯이 이 /lib/modules/$(uname -r)/kernel/fs디렉토리에는 파일 시스템 관련이 포함되어 있습니다.커널 모듈, 이는 현재 지원되는 파일 시스템과 다릅니다.

  • 모듈이 로드되지 않으면 현재 파일 시스템이 지원되지 않는 것입니다.
  • 지원이 커널에 내장되어 있으면 파일 시스템이 지원되지만 모듈 목록에는 표시되지 않습니다.
  • 모듈 이름이 지원하는 파일 시스템에 1:1로 매핑된다는 보장은 없습니다.

따라서 목록에는 추가, 삭제 및/또는 대체가 포함될 수 있습니다. 이것은 별로 신뢰할 수 없습니다. 이미 모든 것이 내장되어 있는 소위 "모놀리식 커널"이 있을 수 있습니다. 이 경우(분명히 특이한 경우) 모듈 목록은 완전히 비어 있지만 커널은 다양한 기능을 포함하여 여전히 많은 것을 지원합니다. 파일 시스템.

반면에 이것은 내 /proc/filesystems파일의 내용입니다.

nodev   sysfs
nodev   tmpfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cgroup2
nodev   cpuset
nodev   devtmpfs
nodev   binfmt_misc
nodev   configfs
nodev   debugfs
nodev   tracefs
nodev   securityfs
nodev   sockfs
nodev   bpf
nodev   pipefs
nodev   ramfs
nodev   hugetlbfs
nodev   rpc_pipefs
nodev   devpts
        ext3
        ext4
        ext2
        cramfs
        squashfs
        vfat
        msdos
        exfat
        iso9660
nodev   nfs
nodev   nfs4
nodev   nfsd
nodev   cifs
nodev   smb3
        ntfs3
nodev   autofs
        fuseblk
nodev   fuse
nodev   fusectl
        udf
        f2fs
nodev   efivarfs
nodev   mqueue
nodev   resctrl
        btrfs
nodev   pstore

이 목록에는 현재 설치된 것은 물론이고 내 시스템에 본 적도 없는 일부 파일 시스템이 있습니다.

적어도 내 시스템에서는 이것이 답입니다. 이유를 알 수 없어요현재 승인된 답변반대 결론에 도달하면 아마도 이것은 새로운 발전일 것입니다…

관련 정보