Linux에서 mkfs 명령을 사용하는 방법

Linux 컴퓨터에 연결된 데이터 저장 장치를 사용하려면 먼저 파일 시스템을 만들어야 합니다. 모든 종류의 파일 시스템에 대해 mkfs 및 기타 유틸리티를 사용하는 방법을 배우십시오. 우리는 방법을 보여줍니다.

mkfs는 파일 시스템을 만듭니다

mkfs 명령 파일 시스템을 만든다. 다른 운영 체제에서 파일 시스템을 만드는 것을 서식. 이름에 관계없이 데이터를 저장할 수 있도록 파티션을 준비하는 프로세스입니다. 파티션에는 파일을 저장할 방법이 필요합니다. 예. 그러나 파일 생성 타임스탬프, 파일 수정 타임스탬프, 파일 크기 등과 같은 메타데이터와 함께 해당 파일의 이름과 위치를 저장하는 메커니즘도 필요합니다. mkfs가 파일 메타데이터를 처리하고 저장하는 데 필요한 프레임워크를 구축했으면 파티션에 파일을 추가할 수 있습니다.

구문은 매우 간단합니다. 파일 시스템을 생성할 장치 파티션과 원하는 파일 시스템 유형을 mkfs에 알려주십시오. 그것은 그것의 얼굴에 있습니다. 무대 뒤에서는 조금 다릅니다. 한동안 대부분의 Linux 배포판에서 mkfs는 싸개 mke2fs용. mkfs 명령은 mke2fs 명령을 호출하고 지정한 옵션을 전달합니다. 불쌍한 오래된 mke2fs 모든 작업을 수행합니다 그러나 영광을 얻지 못합니다.

mkfs의 구문이 업데이트되었으며 이전 형식은 더 이상 사용되지 않습니다. 두 형식 모두 작동하지만 이 기사에서는 현대적인 스타일을 사용합니다.

파일 시스템 선택

mkfs를 사용하는 현대적인 방법은 “mkfs”를 입력하는 것입니다. 생성하려는 파일 시스템의 이름을 입력합니다.

mkfs가 생성할 수 있는 파일 시스템을 보려면 “mkfs”를 입력한 다음 Tab 키를 두 번 누르십시오. “mkfs” 뒤에 공백이 없습니다. Tab 키를 두 번 누르십시오.

사용 가능한 파일 시스템 목록이 터미널 창에 표시됩니다. 스크린샷은 Ubuntu 18.04 LTS에서 가져온 것입니다. 다른 배포판은 더 많거나 더 적은 옵션을 제공할 수 있습니다. 우리는 이것들을 살펴보고 각각에 대해 간략하게 설명할 것입니다. 저널링에 대한 짧은 한마디 후.

저널링은 파일 시스템에서 중요한 개념입니다. 파일 시스템은 보류 중인 파일 쓰기를 저널에 기록합니다. 각 파일이 기록될 때 저널이 업데이트되고 보류 중인 쓰기 레코드가 업데이트됩니다. 이를 통해 파일 시스템은 정전과 같은 치명적인 이벤트로 인해 발생한 손상되고 부분적으로 작성된 파일을 복구할 수 있습니다. 일부 이전 파일 시스템은 저널링을 지원하지 않습니다. 그렇지 않은 경우 저널을 업데이트할 필요가 없기 때문에 디스크에 쓰는 빈도를 줄입니다. 더 빠르게 수행할 수 있지만 중단된 파일 쓰기로 인해 손상되기 쉽습니다.

Ext2: Linux를 위한 최초의 파일 시스템은 MINIX 파일 시스템이었습니다. 나중에 Linux용으로 특별히 작성된 최초의 파일 시스템으로 대체되었습니다. 내선. 이전 Ext2 Ext의 후계자. Ext2는 저널링 파일 시스템이 아닙니다.
Ext3: 이것은 Ext2의 후계자, 충돌 및 갑작스러운 정전으로 인한 데이터 손상으로부터 파일 시스템을 보호하는 저널링이 있는 Ext2로 생각할 수 있습니다.
Ext4: Ext4는 5월 Linux 배포판의 표준 파일 시스템입니다. 견고하고 검증된 신뢰할 수 있는 파일 시스템입니다. 하는 기능이 있습니다 파일 조각화 줄이기 Ext3보다 큰 드라이브, 파티션 및 파일과 함께 사용할 수 있습니다.
BFS: 이것은 부팅 파일 시스템, 하나의 작업만을 위해 설계되었습니다. 부팅 파티션의 파일을 처리합니다. 부트 파일 시스템을 직접 만드는 경우는 드뭅니다. Linux 설치 프로세스가 이 작업을 수행합니다.
지방: 파일 할당 테이블 파일 시스템은 컴퓨터 산업의 거물들의 컨소시엄에 의해 플로피 디스크용으로 설계되었습니다. 1977년에 소개되었습니다. 이 비저널링 파일 시스템을 사용하는 유일한 이유는 비 Linux 운영 체제와의 호환성 때문입니다.
NTFS: 신기술 파일 시스템 Windows NT에 도입된 Microsoft 저널링 파일 시스템입니다. FAT의 후계자였습니다. 이 파일 시스템을 사용하는 유일한 이유는 Linux가 아닌 운영 체제와의 호환성 때문입니다.
MINIX: 원래 만든 사람 앤드류 S. 타넨바움 교육 지원으로, 미닉스 “미니 유닉스” 운영 체제입니다. 요즘에는 자가 치유 및 내결함성 운영 체제를 제공하는 것을 목표로 합니다. MINIX 파일 시스템은 다음과 같이 설계되었습니다. Unix 파일 시스템의 단순화된 버전. Linux 컴퓨터에서 교차 개발 중이고 MINIX 플랫폼을 대상으로 하는 경우 이 파일 시스템을 사용할 수 있습니다. 또는 다른 이유로 MINIX 컴퓨터와의 호환성이 필요할 수도 있습니다. Linux 컴퓨터에서 이 파일 시스템에 대한 사용 사례는 나에게 뛰어오르지 않지만 사용 가능합니다.
V지방: 가상 파일 할당 테이블, Windows 95에서 도입되었으며 파일 이름에 대한 8자 제한이 제거되었습니다. 최대 255자의 파일 이름이 가능해졌습니다. 이 파일 시스템을 사용하는 유일한 이유는 Linux가 아닌 운영 체제와의 호환성 때문입니다.
CRAMFS: 압축된 ROM 파일 시스템 임베디드 시스템 및 Linux 컴퓨터의 부팅 프로세스와 같은 전문 읽기 전용 사용을 위해 설계된 읽기 전용 파일 시스템입니다. 부트스트랩 프로세스가 시작되어 “실제” 부트 시스템이 마운트될 준비를 할 수 있도록 작은 임시 파일 시스템을 먼저 로드하는 것이 일반적입니다.
MSDOS: 파일 시스템 마이크로소프트 디스크 운영 체제. 1981년에 출시된 이 파일은 가장 기본적인 기본 파일 시스템입니다. 첫 번째 버전에는 디렉토리도 없었습니다. 컴퓨팅 역사에서 중요한 위치를 차지하고 있지만 레거시 시스템과의 호환성을 제외하고는 오늘날 사용할 이유가 거의 없습니다.

파일 시스템을 실험하는 안전한 방법

파티션에 파일 시스템을 만들면 해당 파티션에 이미 있을 수 있는 모든 데이터가 손상됩니다. 예비 하드 드라이브 또는 예비 컴퓨터를 사용하는 것은 다양한 파일 시스템을 만들고 사용하는 실험을 하는 완벽한 방법입니다. 그러나 물론 많은 사람들은 실험을 기다리는 예비 하드웨어가 없습니다.

그러나 이미지 파일을 만들고 그 안에 파일 시스템을 만들 수 있습니다. 마운트하면 일반 파티션처럼 사용할 수 있습니다. 예비 하드웨어 없이도 파일 시스템을 탐색하고 실험할 수 있습니다. dd 명령을 사용하여 우리의 이미지 파일을 생성.

이미지 파일은 소스 데이터를 가져와 이미지에 넣어 생성됩니다. 소스 데이터를 가져올 위치를 dd에 알려야 합니다. if(입력 파일) 옵션을 사용하여 dd에게 다음을 사용하도록 지시합니다. /dev/zero 입력 데이터 소스로. 이것은 0의 스트림이 될 것입니다.

of (출력 파일) 옵션을 사용하면 이미지 파일의 이름을 제공할 수 있습니다. “wdzwdz.img”라고 부를 것입니다.

이미지 파일의 크기는 추가하는 블록의 크기와 수에 따라 결정됩니다. bs(블록 크기) 옵션을 사용하여 1MB의 블록 크기를 요청하고 count 옵션을 사용하여 250개 블록을 요청합니다. 이것은 250MB의 파일 시스템을 제공할 것입니다. 이 명령을 실행할 때 필요에 맞게 블록 수와 Linux 컴퓨터에 있는 여유 용량을 조정하십시오.

dd if=/dev/zero of=~/wdzwdz.img bs=1M count=250

파일은 우리를 위해 생성되고 dd는 요청에 따라 우리를 위해 생성된 250개의 블록이 있다고 보고합니다.

ls를 사용하여 이미지 파일을 볼 수 있습니다.

ls -hl

예상대로 250MB로 고무적입니다.

파일 시스템 생성

사용할 파일 시스템을 선택합시다. 우리는 시간을 거슬러 올라가 이 mkfs 구현이 생성할 수 있는 가장 초기 버전의 Ext인 Ext2를 사용할 것입니다. 이것은 비 저널링 파일 시스템이므로 다른 곳에 백업하지 않고 소중한 것을 저장하지 마십시오. mkfs 명령의 mkfs.ext2 변형을 사용하고 이미지 파일을 대상으로 사용하도록 지시합니다.

mkfs.ext2 ~/wdzwdz.img

파일 시스템이 생성되고 파일 시스템의 일부 세부 정보가 표시됩니다.

강조 표시된 텍스트에서 볼 수 있듯이 mke2fs가 나타납니다.

이제 이 시나리오에서 하드 드라이브를 나타내는 파일 시스템용 컨테이너(이미지 파일)가 있습니다. 그 컨테이너 안에 파일 시스템을 만들었습니다. 이제 사용할 수 있도록 파일 시스템을 마운트해야 합니다.

이것은 임시 설정이므로 마운트 포인트 /mnt 내에서 “geek”이라고 합니다. 완료되면 제거하겠습니다.

sudo mkdir /mnt/geek

이제 이미지 파일을 마운트할 수 있습니다.

sudo mount ~/wdzwdz.img /mnt/geek

우리는 변화가 필요하다 파일 소유권 마운트 지점에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.

sudo chown dave:users /mnt/geek/

이제 새 파일 시스템을 사용할 수 있어야 합니다. 파일 시스템으로 변경하고 일부 파일을 복사해 보겠습니다.

cd /mnt/geek
cp ~/Documents/Code/*.? .

이렇게 하면 ~/Documents/Code 디렉토리에서 단일 문자 확장자를 가진 모든 파일이 새 파일 시스템으로 복사됩니다. 복사되었는지 확인합시다.

ls

파일이 복사되었으므로 파일 시스템이 생성, 탑재 및 사용되었습니다. 또는 그렇게 생각합니다. 다시 확인합시다. 홈 디렉토리에서 파일 시스템을 마운트 해제합니다. 참고로 “n”은 하나뿐입니다. 마운트 해제.

sudo umount /mnt/geek

이제 /mnt/geek으로 돌아가서 파일을 확인하면 이미지 파일 내부에 있고 마운트 해제되어 있기 때문에 찾을 수 없습니다.

cd /mnt/geek
ls

추가 탐색

이제 프로세스가 해결되었으므로 다른 파일 시스템을 쉽게 시도할 수 있습니다. 이번에는 MINIX 파일 시스템을 사용하겠습니다. 홈 디렉토리에서 기존 이미지 파일 내부에 새 파일 시스템을 만들 수 있습니다.

조심하세요! 이미지 파일 내부의 파일 시스템에 중요한 파일이 있으면 이미지 파일을 마운트하고 새 파일 시스템을 만들기 전에 검색하십시오.

mkfs.minix ~/wdzwdz.image

“확실한지 여부”를 묻는 힌트 없이 새 파일 시스템이 이전 파일 시스템 위에 생성됩니다. 이전과 똑같은 명령으로 이미지 파일을 마운트할 수 있습니다.

sudo mount ~/wdzwdz.img /mnt/geek

/mnt/geek에서 새 파일 시스템으로 변경하고 파일을 생성할 수 있는지 봅시다.

touch geek.txt

ls -ahl geek.txt

그리고 그만큼 간단하고 빠르게 새 파일 시스템을 만들고 마운트하면 사용할 수 있습니다.

마운트 포인트 제거

모든 작업이 완료되면 “괴짜” 마운트 지점을 제거할 수 있습니다. 그렇게하기 위해 우리는 사용할 것입니다 rmdir:

cd /mnt
sudo rmdir geek

불로 저글링

대부분의 작업과 마찬가지로 Linux를 사용하면 수행함으로써 배웁니다. 일부 명령의 문제는 잠재적으로 파괴적이라는 것입니다. 딜레마는 시스템이나 데이터를 위험에 빠뜨리지 않고 사용하는 방법을 연습하는 것입니다.

이제 컴퓨터를 그대로 두는 mkfs로 파일 시스템을 만들고 시험해 볼 수 있는 간단한 방법이 생겼습니다.