시스템 튜토리얼 리눅스 Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

Dec 31, 2023 pm 10:18 PM
linux 파일 시스템

외부

전체 이름은 Linux 확장 파일 시스템인 extfs입니다. Ext2는 2세대 파일 확장 시스템인 Ext3/Ext4 등을 의미하지만 모두 Ext2의 업그레이드 버전이지만 로그 기능이 추가되어 있습니다. 상호 이익이 되므로 Ext2를 인덱스 파일 시스템이라고 하고 Ext3/Ext4를 저널 파일 시스템이라고 합니다.

참고: Linux는 NFS(네트워크 파일 시스템) 및 Windows의 Fat 파일 시스템을 포함한 다양한 파일 시스템을 지원합니다.

Linux에서 지원하는 파일 시스템 확인: ls -l /lib/modules/$(uname -r)/kernel/fs

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

Linux에서 지원하는 파일 시스템 보기(메모리에 로드됨): cat /proc/filesystems

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

핵심 디자인

데이터 영역

이러한 요소는 비교적 안정적이며 디스크를 포맷한 후에 수정됩니다.

1. 아이노드(인덱스 노드)
파일 권한, 속성 및 데이터가 있는 블록 번호를 기록합니다. 각 파일에는 단 하나의 inode가 있습니다. 각 inode는 자체 번호를 갖습니다.

2. 블록(데이터 블록)
저장된 파일 내용은 데이터 블록이라고도 합니다. 각 블록에는 고유한 번호가 있습니다. Ext2에서 지원하는 단위 블록 용량은 1k, 2k, 4k뿐입니다.

참고: inode 기록을 용이하게 하기 위해 디스크 포맷 후 블록 크기가 고정되었습니다. 각 블록은 하나의 파일 데이터만 저장할 수 있으며, 파일이 너무 크면 여러 블록을 차지하게 되고, 파일이 너무 작으면 블록의 나머지 공간을 사용할 수 없어 디스크 공간이 낭비됩니다. 따라서 디스크를 파티션한 후 파일 시스템을 포맷하기 전에 파일 시스템의 예상 용도에 대해 신중하게 생각해 보십시오.

메타데이터

이러한 요소는 파일 시스템 상태를 유지하도록 설계되었으며 주로 파일 시스템의 동적 구성 정보를 나타내며 설명 정보입니다.

1. 슈퍼블록

파일 시스템의 전체 용량, 사용량, 남은 용량, 아이노드/블록 크기, 파일 시스템의 형식 및 관련 정보 등 파일 시스템(파일 시스템)의 전반적인 정보를 기록합니다.

주의 사항: 전체 파일 시스템의 모든 기본 정보는 슈퍼 블록에 기록됩니다. 크기는 일반적으로 1024Bytes이므로 복구하는 데 많은 시간이 걸립니다. ! !

2. 블록 그룹

디스크 용량이 수백 G에 도달하면 포맷할 때 inode와 블록이 매우 커질 것입니다. Ext 파일 시스템은 포맷할 때 블록 그룹 개념을 도입합니다. 독립적인 inode/블록/수퍼블록을 유지하고 고정된 수의 블록을 가지며 기본 하위 파일 시스템 그룹으로 나뉩니다.

주의 사항: 슈퍼 블록은 파일 시스템에 너무 중요하지만 파일 시스템에는 슈퍼 블록이 하나만 있으므로 슈퍼 블록을 포함하는 첫 번째 블록 그룹 외에도 후속 블록 그룹에 백업 슈퍼 블록이 포함될 수 있습니다. 슈퍼블록의 실패 지점.

3. 블록 비트맵(블록 비교 테이블)

블록은 하나의 파일에서만 사용할 수 있습니다. 새 파일을 추가할 때 파일 데이터를 기록하려면 반드시 새 블록을 사용해야 합니다. 그렇다면 어떤 블록이 새로운 블록인지 빠르게 확인하는 방법은 무엇입니까? 이미 사용된 블록은 무엇입니까? 블록 비트맵은 사용된 블록 번호와 사용되지 않은 블록 번호를 모두 기록하도록 설계되었습니다. 마찬가지로, 파일을 삭제할 때 먼저 블록 비트맵에서 해당 블록 번호를 찾은 다음 플래그를 사용되지 않음으로 업데이트하고 마지막으로 블록을 해제합니다.

inode 비트맵(inode 비교표)

사용된 inode 번호와 사용되지 않은 inode 번호를 기록한다는 점을 제외하면 블록 비트맵과 동일한 설계 개념이므로 여기서는 설명하지 않습니다.

그룹 설명자

각 섹션(블록 그룹)의 시작과 끝 부분에 블록 번호를 설명하고, 각 섹션(inodemap, 블록맵, inode 테이블) 사이의 블록 번호를 설명하세요.

현재 시스템에서 포맷된 모든 장치 목록: blkid

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

포맷된 장치를 선택하고 파일 시스템 세부 정보를 확인하세요. dumpe2fs /dev/vda1

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

참고: 위의 Magic 서명은 0xEF53이며, 이는 디스크 파티션이 ext2 및 ext3 파일 시스템임을 나타냅니다. 파일 시작 부분의 매직과 유사하게 파일 형식을 결정할 수 있습니다.

요약

Ext 제품군은 Linux에서 가장 널리 지원되는 완전한 파일 시스템입니다. 디스크를 포맷한 후 모든 inode/블록/메타데이터 및 기타 데이터가 추가 수정 없이 시스템을 직접 사용할 수 있도록 계획되었습니다. 구성은 최고의 기능이기도 하지만 가장 중요한 단점이기도 합니다. 디스크 용량이 클수록 포맷 속도가 느려집니다. xfs를 기본 파일 시스템으로 선택했습니다.

위 내용은 Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Apr 01, 2025 pm 03:06 PM

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? 램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? Apr 01, 2025 pm 02:48 PM

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

APSCHEDULER 타이밍 작업을 MACOS의 서비스로 구성하는 방법은 무엇입니까? APSCHEDULER 타이밍 작업을 MACOS의 서비스로 구성하는 방법은 무엇입니까? Apr 01, 2025 pm 06:09 PM

Apscheduler 타이밍 작업을 MacOS 플랫폼의 서비스로 구성하십시오. Ngin과 유사한 APSCHEDULER 타이밍 작업을 서비스로 구성하려면 ...

Windows 및 Linux 파일을 동기화 할 때 비교할 수없는 비교가 사례 감도에 실패하면 어떻게해야합니까? Windows 및 Linux 파일을 동기화 할 때 비교할 수없는 비교가 사례 감도에 실패하면 어떻게해야합니까? Apr 01, 2025 am 08:06 AM

비교 및 동기화의 문제점을 넘어서는 파일을 비교하고 동기화하는 문제 : Beyond를 사용할 때의 경우 민감도 실패 ...

Linux 시스템에서 Python 통역사를 삭제할 수 있습니까? Linux 시스템에서 Python 통역사를 삭제할 수 있습니까? Apr 02, 2025 am 07:00 AM

Linux 시스템과 함께 제공되는 Python 통역사를 제거하는 문제와 관련하여 많은 Linux 배포판이 설치 될 때 Python 통역사를 사전 설치하고 패키지 관리자를 사용하지 않습니다 ...

C 언어로 멀티 스레딩을 구현하는 4 가지 방법 C 언어로 멀티 스레딩을 구현하는 4 가지 방법 Apr 03, 2025 pm 03:00 PM

언어의 멀티 스레딩은 프로그램 효율성을 크게 향상시킬 수 있습니다. C 언어에서 멀티 스레딩을 구현하는 4 가지 주요 방법이 있습니다. 독립 프로세스 생성 : 여러 독립적으로 실행되는 프로세스 생성, 각 프로세스에는 자체 메모리 공간이 있습니다. 의사-다일리트 레딩 : 동일한 메모리 공간을 공유하고 교대로 실행하는 프로세스에서 여러 실행 스트림을 만듭니다. 멀티 스레드 라이브러리 : PTHREADS와 같은 멀티 스레드 라이브러리를 사용하여 스레드를 만들고 관리하여 풍부한 스레드 작동 기능을 제공합니다. COROUTINE : 작업을 작은 하위 작업으로 나누고 차례로 실행하는 가벼운 다중 스레드 구현.

See all articles