Linux 파일 시스템 마운트

LinuxBeginner
지금 연습하기

소개

Linux 파일 시스템 마운트는 시스템 관리자와 기술 사용자를 위한 기본적인 기술입니다. 이 프로세스를 통해 운영 체제는 디렉토리 구조의 특정 위치에 저장 장치와 해당 파일 시스템을 연결하여 액세스하고 상호 작용할 수 있습니다.

이 Lab 에서는 시뮬레이션된 저장 장치를 생성하고, 파일 시스템으로 포맷한 다음, 마운트하여 해당 내용을 액세스하는 방법을 배우게 됩니다. 또한 실행 권한을 제한하거나 읽기 전용으로 만드는 등 파일 시스템 사용 방식을 제어하는 다양한 마운트 옵션도 살펴볼 것입니다.

이 Lab 을 마치면 다음 사항을 이해하게 됩니다.

  • Linux 에서 저장 장치를 생성하고 포맷하는 방법
  • 파일 시스템을 마운트 및 언마운트하는 프로세스
  • 마운트 옵션을 사용하여 파일 시스템 액세스를 제어하는 방법
  • 마운트된 파일 시스템의 상태를 확인하는 방법

이러한 기술은 로컬 하드 드라이브에서 이동식 미디어 및 네트워크 저장소에 이르기까지 Linux 환경에서 저장 장치를 관리하는 데 필수적입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 89%입니다.학습자들로부터 91%의 긍정적인 리뷰율을 받았습니다.

저장 장치 생성 및 마운트

이 단계에서는 시뮬레이션된 저장 장치를 생성하고, 파일 시스템으로 포맷한 다음, Linux 디렉토리 구조 내에서 액세스할 수 있도록 마운트합니다.

프로젝트 디렉토리로 이동

먼저, 이 Lab 전체에서 작업할 프로젝트 디렉토리로 이동해 보겠습니다.

cd ~/project

시뮬레이션된 저장 장치 생성

이제 dd 명령을 사용하여 시뮬레이션된 저장 장치를 생성합니다. 이 명령은 저장 장치 역할을 할 특정 크기의 파일을 생성합니다.

dd if=/dev/zero of=storage_device.img bs=1M count=100

이 명령은 storage_device.img라는 100MB 파일을 생성합니다. 이 명령의 각 부분을 이해해 보겠습니다.

  • if=/dev/zero: 입력 파일은 /dev/zero이며, 이는 무한한 0 스트림을 생성하는 특수 파일입니다.
  • of=storage_device.img: 출력 파일의 이름은 storage_device.img입니다.
  • bs=1M: 블록 크기는 1 메가바이트로 설정됩니다.
  • count=100: 100 개의 블록을 복사하여 100MB 파일을 생성합니다.

다음과 유사한 출력을 볼 수 있습니다.

100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0331261 s, 3.2 GB/s

파일 시스템으로 저장 장치 포맷

저장 장치를 사용하기 전에 파일 시스템으로 포맷해야 합니다. mkfs.ext4 명령은 파일을 Linux 에서 일반적으로 사용되는 ext4 파일 시스템으로 포맷합니다.

mkfs.ext4 storage_device.img

명령이 파일 시스템을 생성하면서 다음과 유사한 여러 줄의 출력을 볼 수 있습니다.

mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 25600 4k blocks and 25600 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done

마운트 지점 생성

장치를 마운트하기 전에 마운트 지점 역할을 할 디렉토리를 생성합니다. 이것은 파일 시스템의 내용에 액세스할 수 있는 위치입니다.

mkdir -p ~/project/mount_point

저장 장치 마운트

이제 mount 명령을 사용하여 저장 장치를 마운트 지점에 마운트합니다.

sudo mount -t ext4 storage_device.img ~/project/mount_point

이 명령은 Linux 에 다음을 지시합니다.

  • 유형 (-t) ext4 의 장치를 마운트합니다.
  • 마운트할 장치는 storage_device.img입니다.
  • 마운트 위치는 ~/project/mount_point입니다.

마운트 확인

장치가 올바르게 마운트되었는지 확인하려면 파일 시스템 유형과 사람이 읽을 수 있는 크기를 표시하는 옵션과 함께 df 명령 (디스크 여유 공간) 을 사용합니다.

df -hT | grep mount_point

다음과 유사한 출력을 볼 수 있습니다.

/dev/loop0     ext4      90M   24K   83M   1% /home/labex/project/mount_point

마운트된 파일 시스템 테스트

파일 시스템이 제대로 작동하는지 테스트하려면 마운트된 디렉토리에 테스트 파일을 생성합니다.

echo "This is a test file" | sudo tee ~/project/mount_point/test.txt > /dev/null

파일을 읽어 성공적으로 생성되었는지 확인합니다.

cat ~/project/mount_point/test.txt

"This is a test file" 텍스트가 표시되면 파일 시스템이 제대로 마운트되어 작동하고 있음을 확인하는 것입니다.

무슨 일이 일어났는지 이해하기

다음과 같은 작업을 성공적으로 수행했습니다.

  1. 저장 장치를 시뮬레이션하는 파일을 생성했습니다.
  2. ext4 파일 시스템으로 포맷했습니다.
  3. 마운트 지점 디렉토리를 생성했습니다.
  4. 해당 디렉토리에 파일 시스템을 마운트했습니다.
  5. 마운트가 성공했음을 확인했습니다.
  6. 마운트된 파일 시스템에서 파일을 생성하고 읽었습니다.

이 프로세스는 외부 하드 드라이브 또는 USB 스틱을 연결하고 사용하는 것과 유사하지만 파일을 사용하여 실제 장치를 시뮬레이션합니다.

보안 및 접근 제어를 위한 마운트 옵션

이 단계에서는 파일 시스템에 액세스하는 방식을 제어하기 위해 마운트 옵션을 사용하는 방법을 배우게 됩니다. 마운트 옵션은 실행 권한을 제한하거나 파일 시스템을 읽기 전용으로 만드는 등 파일 시스템 동작에 대한 추가적인 제어를 제공합니다.

현재 파일 시스템 언마운트

새로운 마운트 옵션을 적용하기 전에 현재 파일 시스템을 언마운트해야 합니다.

sudo umount ~/project/mount_point

장치가 사용 중이라는 오류 메시지가 표시되면 현재 마운트 지점 디렉토리에 있지 않은지 확인하십시오.

cd ~/project

그런 다음 다시 언마운트를 시도하십시오.

noexec 옵션으로 마운트

noexec 마운트 옵션은 마운트된 파일 시스템에서 바이너리 실행을 방지합니다. 이는 악성 스크립트 또는 프로그램의 실행을 방지할 수 있는 보안 기능입니다.

noexec 옵션으로 파일 시스템을 마운트합니다.

sudo mount -t ext4 -o noexec storage_device.img ~/project/mount_point

-o noexec 부분은 mount 에 noexec 옵션을 사용하도록 지시합니다.

noexec 옵션 테스트

마운트된 파일 시스템에서 간단한 셸 스크립트를 생성하고 실행해 보겠습니다.

echo '#!/bin/bash' | sudo tee ~/project/mount_point/test_script.sh > /dev/null
echo 'echo "This script is running"' | sudo tee -a ~/project/mount_point/test_script.sh > /dev/null

스크립트를 실행 가능하게 만듭니다.

chmod +x ~/project/mount_point/test_script.sh

이제 스크립트를 실행해 봅니다.

~/project/mount_point/test_script.sh

다음과 같은 오류 메시지가 표시됩니다.

bash: /home/labex/project/mount_point/test_script.sh: Permission denied

이는 noexec 옵션이 스크립트 실행을 방지하고 있음을 확인합니다.

읽기 전용 옵션으로 언마운트 및 재마운트

이제 파일 시스템을 읽기 전용으로 마운트해 보겠습니다. 먼저 언마운트합니다.

sudo umount ~/project/mount_point

그런 다음 읽기 전용 옵션으로 마운트합니다.

sudo mount -t ext4 -o ro storage_device.img ~/project/mount_point

-o ro 부분은 mount 에 읽기 전용 옵션을 사용하도록 지시합니다.

읽기 전용 옵션 테스트

마운트된 파일 시스템에서 새 파일을 생성해 봅니다.

touch ~/project/mount_point/new_file.txt

다음과 같은 오류 메시지가 표시됩니다.

touch: cannot touch '/home/labex/project/mount_point/new_file.txt': Read-only file system

이는 파일 시스템이 읽기 전용으로 마운트되었음을 확인합니다.

마운트 옵션 확인

mount 명령을 사용하여 현재 마운트 옵션을 확인할 수 있습니다.

mount | grep mount_point

읽기 전용 옵션이 활성화되었음을 나타내는 ro를 포함한 출력을 볼 수 있습니다.

/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,relatime)

마운트 옵션 결합

쉼표로 구분하여 여러 마운트 옵션을 결합할 수 있습니다. 파일 시스템을 언마운트하고 noexec 및 ro 옵션으로 다시 마운트해 보겠습니다.

sudo umount ~/project/mount_point
sudo mount -t ext4 -o ro,noexec storage_device.img ~/project/mount_point

마운트 옵션을 확인합니다.

mount | grep mount_point

출력에 두 옵션이 모두 표시됩니다.

/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,noexec,relatime)

마운트 옵션 이해

탐색한 마운트 옵션은 보안 및 액세스 제어에 중요합니다.

  • noexec는 바이너리 파일 실행을 방지하여 악성 코드로부터 보호할 수 있습니다.
  • ro(읽기 전용) 는 파일 시스템에 대한 변경을 방지하여 데이터 무결성을 보호할 수 있습니다.

이러한 옵션은 최소 권한 원칙을 구현하기 위해 프로덕션 환경에서 일반적으로 사용되며, 시스템 및 사용자에게 필요한 액세스 권한만 부여합니다.

/etc/fstab 을 사용한 자동 마운트 설정

이 단계에서는 /etc/fstab 파일을 구성하여 시스템 재부팅 시에도 파일 시스템 마운트가 유지되도록 하는 방법을 배우게 됩니다. 이는 시스템이 시작될 때 저장 장치를 자동으로 마운트하는 데 필수적입니다.

/etc/fstab 이해

/etc/fstab (파일 시스템 테이블) 파일에는 시스템이 부팅될 때 자동으로 마운트되어야 하는 파일 시스템에 대한 정보가 포함되어 있습니다. 파일의 각 줄은 별도의 파일 시스템을 나타내며 장치, 마운트 지점, 파일 시스템 유형 및 마운트 옵션과 같은 필드를 포함합니다.

먼저 파일의 현재 내용을 살펴보겠습니다.

cat /etc/fstab

이미 구성된 시스템 마운트가 있는 여러 줄을 볼 수 있습니다.

현재 파일 시스템 언마운트

영구 마운트를 구성하기 전에 현재 파일 시스템을 언마운트합니다.

sudo umount ~/project/mount_point

/etc/fstab 백업 생성

시스템 구성 파일을 수정하기 전에 항상 백업을 생성하는 것이 좋습니다.

sudo cp /etc/fstab /etc/fstab.backup

/etc/fstab에 항목 추가

이제 저장 장치에 대한 항목을 /etc/fstab에 추가합니다. 장치 파일의 절대 경로를 사용해야 합니다.

echo "$(readlink -f ~/project/storage_device.img) $(readlink -f ~/project/mount_point) ext4 defaults 0 0" | sudo tee -a /etc/fstab

이 명령은 다음을 수행합니다.

  • readlink -f를 사용하여 파일의 절대 경로를 가져옵니다.
  • tee -a를 사용하여 형식화된 줄을 /etc/fstab으로 리디렉션합니다 (sudo 권한 사용).

fstab 항목의 필드를 자세히 살펴보겠습니다.

  1. 장치 - 저장 장치 파일의 전체 경로
  2. 마운트 지점 - 마운트 디렉토리의 전체 경로
  3. 파일 시스템 유형 - ext4
  4. 마운트 옵션 - defaults (rw,suid,dev,exec,auto,nouser,async 와 동일)
  5. 덤프 - 0 (dump 로 백업하지 않음)
  6. 패스 - 0 (부팅 시 파일 시스템을 확인하지 않음)

fstab 항목 테스트

/etc/fstab에 나열된 모든 파일 시스템을 이미 마운트되지 않은 경우 마운트하는 mount -a 명령을 사용하여 항목이 올바르게 작동하는지 테스트합니다.

sudo mount -a

오류 메시지가 없으면 항목이 올바른 것입니다.

마운트 확인

파일 시스템이 예상대로 마운트되었는지 확인합니다.

df -hT | grep mount_point

ext4 유형으로 파일 시스템이 마운트된 것을 볼 수 있습니다.

더 많은 옵션으로 fstab 항목 수정

이제 이전 단계에서 배운 마운트 옵션을 사용하도록 항목을 수정해 보겠습니다. nano 텍스트 편집기로 /etc/fstab 파일을 편집합니다.

sudo nano /etc/fstab

다음과 유사하게 표시되는 추가한 줄을 찾습니다.

/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 defaults 0 0

마운트 옵션 (네 번째 필드) 을 defaults에서 ro,noexec로 변경합니다.

/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 ro,noexec 0 0

Ctrl+O를 눌러 변경 사항을 쓰고, Enter를 눌러 확인하고, Ctrl+X를 눌러 nano 를 종료합니다.

새 옵션으로 재마운트

파일 시스템을 언마운트하고 /etc/fstab의 모든 항목을 다시 마운트합니다.

sudo umount ~/project/mount_point
sudo mount -a

새 마운트 옵션 확인

파일 시스템이 새 옵션으로 마운트되었는지 확인합니다.

mount | grep mount_point

출력에서 ronoexec 옵션을 볼 수 있습니다.

영구 마운트 이해

/etc/fstab 파일은 다음을 수행하는 방법을 제공합니다.

  • 부팅 시 파일 시스템을 자동으로 마운트합니다.
  • 마운트 옵션을 영구적으로 구성합니다.
  • 부팅 중 파일 시스템 검사 순서를 제어합니다.

프로덕션 환경에서 /etc/fstab을 적절하게 구성하면 수동 개입 없이 시스템이 시작될 때 필요한 모든 파일 시스템을 사용할 수 있습니다.

요약

Linux 파일 시스템 마운트 랩을 완료하신 것을 축하드립니다. 모든 Linux 시스템 관리자 또는 기술 사용자에게 필수적인 귀중한 기술을 습득했습니다.

이 랩에서는 다음을 배웠습니다.

  1. 저장 장치 생성 및 포맷

    • dd 명령을 사용하여 시뮬레이션된 저장 장치를 만드는 방법
    • mkfs.ext4를 사용하여 장치를 ext4 파일 시스템으로 포맷하는 방법
  2. 기본 마운트 작업

    • 마운트 지점 디렉토리를 만드는 방법
    • mount 명령을 사용하여 파일 시스템을 마운트하는 방법
    • df 및 기타 명령을 사용하여 마운트를 확인하는 방법
  3. 보안 및 제어를 위한 마운트 옵션

    • noexec 옵션을 사용하여 바이너리 실행을 방지하는 방법
    • ro 옵션을 사용하여 읽기 전용 파일 시스템을 만드는 방법
    • 향상된 보안을 위해 여러 마운트 옵션을 결합하는 방법
  4. /etc/fstab을 사용한 영구 마운트

    • 부팅 시 파일 시스템의 자동 마운트를 구성하는 방법
    • 영구 마운트 옵션을 설정하는 방법
    • fstab 항목을 테스트하고 확인하는 방법

이러한 기술을 통해 다음을 수행할 수 있습니다.

  • Linux 에서 다양한 유형의 저장 장치를 관리합니다.
  • 마운트 옵션을 통해 보안 제어를 구현합니다.
  • 시스템 시작 시 자동 마운트를 구성합니다.
  • 파일 시스템 마운트 문제를 해결합니다.

Linux 여정을 계속 진행하면서 실제 저장 장치, 네트워크 공유 및 가상 파일 시스템으로 작업할 때 이러한 기술이 유용하다는 것을 알게 될 것입니다. 배운 원칙은 다양한 Linux 배포판 및 저장 기술에 적용됩니다.