[Coursera Google] GCC 운영체제와 나 : 파일 시스템(디스크 파티션, 파일 시스템 마운트, 스왑, etc...)

2024. 6. 30. 16:21GCC/IT 지원

728x90
반응형
728x90

 

 

 

 

 

 

 

 

 

파일 시스템

 

파일 시스템 유형

 

파일 시스템 검토

 

파일 시스템의 개념

  • 파일 시스템의 역할: 파일과 파일 저장 공간을 추적하여 운영체제가 파일을 정리할 수 있도록 함
  • 필요성: 새로운 디스크나 저장 기기를 사용할 때 파일 시스템이 필요

 

주요 파일 시스템

  • Windows: NTFS (New Technology File System)
  • Linux: ext4 (Fourth Extended Filesystem)
  • 호환성:
    • NTFS: Windows와 Linux(Ubuntu) 모두 읽기/쓰기 가능
    • ext4: 주로 Linux에서 사용되며, Windows에서는 타사 도구 필요

 

교차 운영체제 파일 공유

  • 상황: 중요한 파일을 여러 운영체제(Windows, Linux, Mac OS)에서 사용해야 할 때
  • 해결 방법: USB 드라이브를 다시 포맷하여 모든 운영체제에 호환되는 파일 시스템을 추가

 

FAT32 파일 시스템

  • 장점: Windows, Linux, Mac OS에서 모두 읽기/쓰기 가능.
  • 단점:
    • 4GB보다 큰 파일 지원 불가
    • 파일 시스템 크기 32GB 제한
  • 적용: 작은 용량의 USB 드라이브에 적합하지만, 더 큰 용량이나 큰 파일을 다룰 때는 부적합

 

대안 파일 시스템

  • 문제: 파일 시스템의 크기와 파일 크기 제한이 있는 경우
  • 해결 방법: 네트워크 파일 시스템(NFS) 등의 사용

 


디스크 구조

 

디스크의 구성 요소

  • 파티션: 관리할 수 있는 디스크의 일부. 여러 파티션을 생성하면 디스크가 여러 개의 별도 디스크처럼 보임
  • 용도: 서로 다른 용도로 사용하거나, 여러 운영체제를 설치할 때 사용

 

파티션과 파일 시스템

  • 파티션 생성: 파일 시스템을 추가하기 전에 파티션을 먼저 만들어야 함
  • 다중 파티션 사용: 하나의 디스크에 여러 파티션을 나누어 각 파티션에 서로 다른 파일 시스템을 추가할 수 있음
  • 파티션 포맷: 파티션을 포맷하면 볼륨이 됨. 파티션과 볼륨의 차이를 이해해야 함

 

파티션 테이블

  • 파티션 테이블의 역할: 디스크의 파티션 정보를 운영체제에 알려줌
  • 주요 파티션 테이블 스키마:
    • MBR (Master Boot Record):
      • 기존의 파티션 테이블, Windows OS에서 주로 사용.
      • 2TB 이하의 볼륨만 사용 가능.
      • 네 개의 기본 파티션만 생성 가능, 추가 파티션을 원하면 확장 파티션과 논리 파티션을 사용해야 함
    • GPT (GUID Partition Table):
      • 새로운 파티션 테이블, 디스크의 새로운 표준
      • 2TB 이상의 볼륨도 사용 가능
      • 파티션 종류가 한 가지이며 원하는 만큼 생성 가능
      • UEFI 부팅을 사용하려면 디스크에서 GPT를 사용해야 함

 

 


Windows: 디스크 파티션 나누기 및 파일 시스템 포맷

 

Windows에서 디스크 파티션을 나누고 포맷하는 방법

 

1. 디스크 관리 유틸리티 사용

  1. 디스크 관리로 이동
    • '이 PC'를 마우스 오른쪽 버튼으로 클릭하고 '관리(Manage)'를 선택합니다.
    • '스토리지(Storage)' 아래의 '디스크 관리(Disk Management)' 콘솔을 클릭합니다.
  2. USB 드라이브 포맷
    • USB 드라이브를 삽입하면 플러그 앤 플레이 서비스로 드라이버 설치 작업이 진행됩니다.
    • '디스크 관리'에 추가 디스크로 표시됩니다.
    • USB 드라이브의 파티션을 마우스 오른쪽 버튼으로 클릭하고 '포맷(Format)'을 선택합니다.
    • '볼륨 라벨(Volume label)'을 지정합니다 (예: 'USB DRIVE').
    • '파일 시스템(File system)'을 'NTFS'로 변경합니다.
    • '할당 단위 크기(Allocation unit size)'는 기본으로 둡니다.
    • '빠른 포맷(Perform a quick format)' 옵션을 선택합니다.
    • '파일 또는 폴더 압축 사용(Enable file or folder compression)' 옵션은 선택 해제합니다.
    • '확인(OK)'을 눌러 포맷을 진행합니다.

2. Diskpart를 사용한 명령줄 포맷

  1. 명령 프롬프트 열기
    • 'command.exe'를 열고 'diskpart'를 입력하여 Diskpart를 시작합니다.
  2. 디스크 목록 확인
    • 'list disk'를 입력하여 현재 시스템의 디스크 목록을 확인합니다.
    • 포맷하려는 USB 드라이브의 디스크 번호를 확인합니다 (예: 디스크 1).
  3. 디스크 선택 및 청소
    • 'select disk 1'을 입력하여 디스크를 선택합니다.
    • 'clean' 명령어를 입력하여 디스크를 지웁니다.
  4. 파티션 생성
    • 'create partition primary' 명령어를 입력하여 기본 파티션을 생성합니다.
    • 'select partition 1'을 입력하여 새로 만든 파티션을 선택합니다.
    • 'active'를 입력하여 파티션을 활성 상태로 설정합니다.
  5. 디스크 포맷
    • 'format FS=NTFS label=my-thumbdrive quick' 명령어를 입력하여 NTFS 파일 시스템으로 빠른 포맷을 진행합니다.

이 과정에서는 디스크 관리 유틸리티와 Diskpart를 사용하여 USB 드라이브를 NTFS 파일 시스템으로 포맷하는 방법을 배웠습니다. GUI와 명령줄을 모두 사용하여 작업을 수행할 수 있는 방법을 이해하면 상황에 따라 적합한 방법을 선택할 수 있습니다.

 


Windows: 파일 시스템 마운트 및 마운트 해제

 

Mounting(마운트)

컴퓨터에서 해당 시스템이나 드라이브에 액세스할 수 있게 한다는 뜻

 

USB 드라이브를 연결하면 드라이브 목록에 나타나게 되며 바로 시작할 수 있으며, 드라이브 사용을 완료하면 마우스 오른쪽 버튼으로 클릭하고 꺼내기를 선택하여 드라이브를 안전하게 꺼내거나 마운트를 해제해야 함

 


Linux: 디스크 파티션 나누기 및 파일 시스템 포맷

 

Linux에서 parted를 사용한 디스크 파티션 나누기 및 포맷

 

1. 디스크 확인 및 parted 시작

  1. 디스크 목록 확인
    • 명령어: sudo parted -l
    • 컴퓨터에 연결된 디스크 목록과 각 디스크의 파티션 정보를 확인합니다.
    • 예: /dev/sda는 128GB, /dev/sdb는 8GB의 디스크입니다.
  2. parted 대화형 모드 시작
    • 명령어: sudo parted /dev/sdb
    • /dev/sdb 디스크를 선택하고 parted 대화형 모드에 진입합니다.

2. 디스크 파티션 테이블 설정

  1. 파티션 테이블 라벨 설정
    • 명령어: mklabel gpt
    • 디스크에 GPT 파티션 테이블을 설정합니다.
    • 이후 print 명령어로 디스크 정보를 확인합니다.

3. 파티션 생성

  1. 파티션 나누기
    • 명령어: mkpart primary 1MiB 5GiB
    • 시작점은 1MiB, 끝점은 5GiB로 첫 번째 파티션을 만듭니다.
    • GPT 파티션 테이블을 사용하므로 기본 파티션을 설정합니다.

4. 파일 시스템 포맷

  1. 파일 시스템 생성
    • parted에서 나가기: quit
    • 명령어: sudo mkfs.ext4 /dev/sdb1
    • /dev/sdb1 파티션을 ext4 파일 시스템으로 포맷합니다.

5. 파일 시스템 마운트

  1. 디렉토리 생성 및 마운트
    • 디렉토리 생성: sudo mkdir /mnt/myusb
    • 파일 시스템 마운트: sudo mount /dev/sdb1 /mnt/myusb
    • 이제 /mnt/myusb 디렉토리에서 USB 드라이브에 파일을 읽고 쓸 수 있습니다.

주의 사항

  • parted 도구를 사용할 때는 잘못된 디스크를 수정하지 않도록 주의해야 합니다.
  • parted는 강력한 도구이므로 실수로 중요한 데이터를 삭제하지 않도록 항상 정확한 디스크와 파티션을 선택해야 합니다.

이 과정을 통해 Linux에서 parted 도구를 사용하여 디스크를 파티션 나누고 포맷하는 방법을 이해하고, 생성한 파일 시스템을 디렉터리에 마운트하여 사용할 수 있게 됩니다.

 

 


Linux: 파일 시스템 마운트 및 마운트 해제

 

디스크와 상호작용하기 위해 디렉터리에 파일 시스템 마운트하기

 

1. 디스크 기기 확인

먼저, sudo parted -l 명령어를 사용하여 연결된 디스크와 파티션을 확인합니다.

// sh

sudo parted -l
 

출력 예시:

// mathematica

/dev/sdb: 8GB Partition Table: gpt Number Start End Size File system Name Flags

 

 

2. 디렉터리 생성

USB 드라이브를 마운트할 디렉터리를 생성합니다.

// sh

sudo mkdir /my_usb

 

 

3. 파일 시스템 마운트

USB 드라이브를 디렉터리에 마운트합니다.

// sh

sudo mount /dev/sdb1 /my_usb
 

이제 /my_usb 디렉터리에서 USB 드라이브에 있는 파일을 읽고 쓸 수 있습니다.

 

4. 파일 시스템 마운트 해제

마운트 해제를 할 때는 umount 명령어를 사용합니다.

 
// sh

sudo umount /my_usb

or

sudo umount /dev/sdb1
 
 

5. 부팅 시 자동 마운트 설정

디스크를 부팅 시 자동으로 마운트하려면 /etc/fstab 파일을 수정합니다.

 

UUID 확인

sudo blkid 명령어를 사용하여 디스크의 UUID를 확인합니다.

// bash

/dev/sdb1: UUID="xxxx-xxxx-xxxx-xxxx" TYPE="ext4"

 

출력 예시:

// sh

sudo blkid
 

/etc/fstab 파일 수정

fstab 파일에 새로운 항목을 추가합니다.

// bash

UUID=xxxx-xxxx-xxxx-xxxx /my_usb ext4 defaults 0 2

아래와 같이 추가합니다:

// sh

sudo nano /etc/fstab
 

6. 변경사항 적용 및 확인

/etc/fstab 파일을 저장하고 나옵니다. 시스템을 재부팅하거나, 다음 명령어를 사용하여 수동으로 마운트합니다.

// sh

sudo mount -a
 

 

  • 디스크 확인: sudo parted -l
  • 디렉터리 생성: sudo mkdir /my_usb
  • 파일 시스템 마운트: sudo mount /dev/sdb1 /my_usb
  • 파일 시스템 마운트 해제: sudo umount /my_usb 또는 sudo umount /dev/sdb1
  • 부팅 시 자동 마운트: /etc/fstab 파일 수정

이 과정에서 중요한 점은 마운트할 때마다 정확한 디스크와 파티션을 선택하여 데이터를 안전하게 관리하는 것입니다. fstab 파일을 수정하여 디스크를 부팅 시 자동으로 마운트하는 방법도 유용하므로 필요한 경우 이를 설정해두면 편리합니다.

 

 


Windows: 스왑

 

가상 메모리와 스왑 공간

 

가상 메모리 개념

가상 메모리는 운영체제가 물리적 메모리(RAM)를 더 효율적으로 사용하는 방식입니다. 운영체제는 프로그램이 필요로 하는 메모리 공간을 가상 주소로 제공하고, 이를 물리적 메모리에 매핑합니다. 가상 메모리는 물리적 메모리보다 많은 양의 메모리를 제공할 수 있어, 응용 프로그램이 더 큰 메모리 공간을 사용할 수 있게 합니다.

 

  • 페이지(Page): 가상 메모리의 데이터 블록 단위입니다.
  • 페이지 파일: RAM의 데이터 페이지를 보관하기 위해 디스크에 마련된 특수 파일입니다.

 

Windows에서의 가상 메모리 관리

Windows 운영체제에서는 메모리 관리자가 가상 메모리를 처리하며, 페이지 파일(pagefile.sys)에 비활성 데이터를 저장합니다.

 

Windows에서 페이지 파일 관리 방법

  1. 시스템 속성 애플릿 열기
    • 제어판(Control Panel) -> 시스템 및 보안(System and Security) -> 시스템(System)
  2. 고급 시스템 설정 열기
    • 왼쪽 메뉴에서 '고급 시스템 설정(Advanced system settings)' 클릭
  3. 성능 설정 열기
    • '고급(Advanced)' 탭 선택 -> '성능(Performance)' 섹션에서 '설정(Settings)' 버튼 클릭
  4. 가상 메모리 설정 변경
    • '가상 메모리(Virtual memory)' 섹션에서 '변경(Change)' 버튼 클릭
    • 기본값을 재정의하여 페이지 파일의 크기와 위치를 설정할 수 있음

페이지 파일 크기 설정

  • 최소 페이지 파일 크기는 시스템 RAM 크기의 1배
  • 특별한 이유가 없다면 Windows에서 자동으로 관리하도록 설정하는 것이 좋음

 

Linux에서의 스왑 공간

 

스왑 공간 개념

스왑 공간은 Linux에서 가상 메모리를 구현하는 방식입니다. 운영체제는 RAM이 부족할 때, 비활성 데이터를 스왑 공간으로 이동시킵니다.

 

스왑 공간 설정 및 관리

 

스왑 파티션 생성

fdisk 또는 parted를 사용하여 새로운 파티션 생성

파티션 유형을 82 (Linux swap)로 설정

 

스왑 파일 생성

스왑 파일을 생성하고 이를 스왑 공간으로 설정할 수도 있습니다.

// sh

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 # 4GB 스왑 파일 생성 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
 

스왑 공간 활성화

// sh

sudo swapon /dev/sdXn # 스왑 파티션 활성화 sudo swapon /swapfile # 스왑 파일 활성화
 

스왑 공간 확인

// sh

sudo swapon --show
 

/etc/fstab 파일에 스왑 공간 추가

  • 시스템 부팅 시 스왑 공간이 자동으로 활성화되도록 설정
// sh

UUID=your-swap-partition-uuid none swap sw 0 0 # 파티션 /swapfile none swap sw 0 0 # 스왑 파일

 

  • 가상 메모리: 물리적 메모리보다 더 큰 메모리 공간을 제공
  • 페이지 파일(Windows): 비활성 데이터를 저장하는 특수 파일
  • 스왑 공간(Linux): RAM이 부족할 때 데이터를 저장하는 파티션 또는 파일
  • Windows 관리 방법: 시스템 속성에서 설정
  • Linux 관리 방법: 파티션 생성, 스왑 파일 생성, /etc/fstab 설정

이 과정을 통해 Windows와 Linux에서 가상 메모리와 스왑 공간을 설정하고 관리하는 방법을 이해할 수 있습니다.

 

 


Linux: 스왑

 

스왑 공간을 만드는 과정과 스왑을 활성화하는 과정을 다시 정리하면 다음과 같습니다. 여기서는 USB 드라이브를 사용하여 스왑 파티션을 만드는 과정을 설명합니다. 실제 실무에서는 주 저장 기기인 하드 드라이브나 SSD에 스왑 파티션을 만들게 됩니다.

 

스왑 공간 생성 및 활성화 절차

 

1. USB 드라이브에 스왑 파티션 생성

 

USB 드라이브 선택:

// sh

sudo parted /dev/sdb
 

스왑 파티션 생성:

5GiB부터 끝까지 스왑 파티션으로 나눕니다.

// sh

(parted) mkpart primary linux-swap 5GiB 100%
 

parted 종료:

// sh

(parted) quit
 
 

2. 스왑 파티션을 포맷

스왑 파티션 포맷:

// sh

sudo mkswap /dev/sdb2
 

스왑 파티션 활성화:

// sh

sudo swapon /dev/sdb2
 
 

3. 부팅 시 자동으로 스왑 활성화 설정

UUID 확인:

blkid 명령어를 사용하여 스왑 파티션의 UUID를 확인합니다.

// sh

sudo blkid /dev/sdb2
 

 

/etc/fstab 파일에 항목 추가:

/etc/fstab 파일을 편집하여 부팅 시 스왑 파티션이 자동으로 활성화되도록 설정합니다.

// sh

sudo nano /etc/fstab
 
 

다음 내용을 추가합니다:

// sh

UUID=<스왑 파티션의 UUID> none swap sw 0 0
 

예를 들어, blkid 명령어의 출력이 다음과 같다면:

// sh

UUID=e4b8a1d8-9e2f-4c90-8a7f-57b09d88d7f1 none swap sw 0 0

 

fstab 파일에 다음 내용을 추가합니다:

// sh

/dev/sdb2: UUID="e4b8a1d8-9e2f-4c90-8a7f-57b09d88d7f1" TYPE="swap"

 

이 과정을 통해 USB 드라이브의 나머지 공간을 스왑 파티션으로 나누고, 이를 활성화하며, 부팅 시 자동으로 스왑이 활성화되도록 설정했습니다. 이 절차를 통해 시스템의 가상 메모리를 효과적으로 관리할 수 있습니다.

 

 


Windows: 파일

 

파일 시스템의 기본 개념

 

파일 시스템은 운영체제(OS)가 파일을 저장, 관리, 조직하는 방식을 정의합니다. 주요 요소는 파일 데이터와 파일 메타데이터입니다.

  • 파일 데이터: 파일의 실제 내용입니다.
  • 파일 메타데이터: 파일 소유자, 권한, 크기, 위치 등 파일에 대한 정보입니다.

 

Windows NTFS 파일 시스템

Windows에서 NTFS 파일 시스템은 MFT(마스터 파일 테이블)라는 구조를 사용하여 파일을 관리합니다. 모든 파일, 심지어 MFT 자체도 MFT 항목으로 관리됩니다.

  • MFT 항목: 각 파일에 대해 최소 하나의 MFT 항목이 존재합니다. 속성에 대한 정보를 포함합니다.
  • 파일 레코드 번호: MFT에서 파일 항목의 인덱스입니다.

 

바로가기, 심볼릭 링크, 하드 링크

 

바로가기 (Shortcut)

  • 바로가기는 특정 파일이나 디렉터리를 참조하는 파일입니다.
  • 마우스 오른쪽 버튼을 클릭하고 'Create Shortcut'을 선택하여 만들 수 있습니다.

 

심볼릭 링크 (Symbolic Link)

심볼릭 링크는 파일 시스템 수준에서 다른 파일이나 디렉터리의 경로를 가리키는 파일입니다.

심볼릭 링크를 통해 참조된 파일처럼 동작합니다.

 

명령어:

// sh

mklink file_1_symlink file_1
 
 

하드 링크 (Hard Link)

  • 하드 링크는 파일의 레코드 번호를 참조합니다. 따라서 파일 이름이 변경되어도 여전히 원본 파일을 가리킵니다.

명령어:

// sh

mklink /H file_1_hardlink file_1
 
 
 

실습: 심볼릭 링크와 하드 링크

 

심볼릭 링크 생성 및 테스트

파일 생성:

 

// sh

echo "Hello!" > file_1.txt
 

심볼릭 링크 생성:

// sh

mklink file_1_symlink.txt file_1.txt
 

심볼릭 링크 테스트:

링크를 통해 원본 파일 열기:

// sh

notepad file_1_symlink.txt

 

하드 링크 생성 및 테스트

하드 링크 생성:

// sh

mklink /H file_1_hardlink.txt file_1.txt

 

하드 링크 테스트:

링크를 통해 원본 파일 열기:

 
// sh

notepad file_1_hardlink.txt

 


Linux: 파일

 

Linux 파일 시스템의 inode

Linux 파일 시스템에서는 메타데이터와 파일을 inode라는 구조로 관리합니다. inode는 파일 시스템의 inode 테이블에 저장되며, 파일과 관련된 모든 정보(파일 소유자, 권한, 파일 크기, 파일 데이터의 위치 등)를 포함하지만 파일 이름이나 파일 날짜 정보는 포함하지 않습니다. inode는 Windows NTFS의 MFT 레코드와 유사한 개념입니다.

 

링크의 종류

Linux에서는 파일 링크에는 두 가지 주요 유형이 있습니다: 소프트 링크(심볼릭 링크)와 하드 링크입니다.

 

소프트 링크(심볼릭 링크)

소프트 링크는 파일 이름을 가리키는 특별한 파일입니다. Windows의 바로가기 또는 심볼릭 링크와 비슷하게 작동합니다.

 

명령어:

// sh

ln -s [원본 파일] [소프트 링크 이름]
 

예를 들어, important_file이라는 파일에 대한 소프트 링크를 만들려면:

// sh

ln -s important_file important_file_softlink

 

하드 링크

하드 링크는 파일 시스템의 inode 테이블에 저장된 inode로 직접 연결됩니다. 이는 파일 데이터의 실제 위치를 가리킵니다. 파일을 삭제하더라도 다른 하드 링크는 계속 작동합니다. 하드 링크는 파일 시스템의 다른 모든 하드 링크가 삭제될 때까지 파일 데이터를 유지합니다.

 

명령어:

// sh

ln [원본 파일] [하드 링크 이름]
 

 

예를 들어, important_file이라는 파일에 대한 하드 링크를 만들려면:

// sh

ln important_file important_file_hardlink
 
 

실습: 소프트 링크와 하드 링크 생성 및 사용

 

소프트 링크 생성 및 확인

소프트 링크 생성:

// sh

ln -s important_file important_file_softlink
 

소프트 링크 확인:

// sh

ls -l important_file_softlink
 

 

하드 링크 생성 및 확인

하드 링크 생성:

// sh

ln important_file important_file_hardlink
 

하드 링크 확인:ls -l 명령어의 세부 정보 중 세 번째 필드는 해당 파일의 하드 링크 수를 나타냅니다. important_file에 하드 링크가 생성되면 하드 링크 수가 증가합니다.

// sh

ls -l important_file ls -l important_file_hardlink

 

 

하드 링크와 소프트 링크의 활용

  • 하드 링크: 동일한 파일을 여러 위치에서 참조해야 하지만 추가 저장 공간을 사용하고 싶지 않은 경우 유용합니다. 모든 하드 링크는 동일한 inode를 참조하므로 동일한 파일 내용을 공유합니다.
  • 소프트 링크: 다른 파일 시스템이나 디렉터리에 걸쳐 파일을 참조해야 하는 경우에 유용합니다. 원본 파일이 이동되거나 삭제되면 소프트 링크는 끊어집니다.

예제

파일 생성:

// sh

echo "Hello, Linux!" > important_file
 

소프트 링크 생성:

// sh

ln -s important_file important_file_softlink
 

하드 링크 생성:

// sh

ln important_file important_file_hardlink
 

링크 확인:

// sh

ls -l important_file important_file_softlink important_file_hardlink
 

이 명령어들을 통해 원본 파일과 각각의 링크가 어떻게 동작하는지 확인할 수 있습니다. 이 과정에서 소프트 링크와 하드 링크의 차이점과 각각의 용도를 이해할 수 있습니다.

 

이번 시간에는 Linux에서 파일 시스템의 inode와 링크의 종류(소프트 링크와 하드 링크)에 대해 배웠습니다. 각 링크의 생성 방법과 활용 사례를 통해 링크의 작동 원리를 이해했습니다. 앞으로도 계속해서 파일 시스템과 관련된 개념을 탐구해 나가겠습니다.

 

 


Windows: 디스크 사용량

 

Windows에서 파일의 개수와 크기를 모니터링하고 디스크 관리를 효율적으로 수행하는 방법을 다양한 도구와 함께 알아보겠습니다.

 

디스크 사용량 확인 방법

 

1. Disk Management 콘솔

  • Disk Management 콘솔을 통해 디스크의 파티션과 사용량을 시각적으로 확인할 수 있습니다.
    1. 'Computer Management' 유틸리티를 엽니다.
    2. 'Disk Management' 콘솔로 이동합니다.
    3. 대상 파티션을 마우스 오른쪽 버튼으로 클릭하고 'Properties'를 선택합니다.
    4. 'General' 탭에서 드라이브의 사용 중인 공간과 사용 가능한 공간을 확인할 수 있습니다.

2. Disk Usage (DU) 유틸리티

  • DU 유틸리티는 Sysinternals 도구 모음에 포함된 명령줄 유틸리티로, 디스크의 사용량을 텍스트 기반으로 출력합니다.

Sysinternals 사이트에서 DU 유틸리티를 다운로드합니다.

명령 프롬프트에서 DU 유틸리티를 실행하여 특정 디렉터리의 디스크 사용량을 확인합니다.

// sh

du -c [디렉터리 경로]
 
 
 

디스크 정리 및 최적화

 

1. Disk Cleanup

  • Disk Cleanup 유틸리티는 임시 파일 삭제, 오래되거나 사용하지 않는 파일 압축, 로그 정리, 휴지통 비우기 등을 수행하여 디스크 공간을 확보합니다.
    1. Disk Management 콘솔에서 'Properties'를 열고 'General' 탭으로 이동합니다.
    2. 'Disk Cleanup' 버튼을 클릭합니다.
    3. 'CleanManager.exe'가 실행되어 디스크 정리 작업을 수행합니다.

2. Disk Defragmenter

  • Disk Defragmenter 도구는 하드 드라이브 디스크의 파일을 인접한 위치로 재정렬하여 읽기 및 쓰기 작업의 효율성을 높입니다.
    1. 시작 메뉴에서 'disk defragmenter'를 입력하여 디스크 조각 모음 도구를 실행합니다.
    2. 디스크 목록에서 조각 모음을 수행할 디스크를 선택합니다.
    3. 'Analyze disk' 버튼을 클릭하여 조각 모음 실행 시 확보 가능한 용량을 분석합니다.
    4. 'Defragment disk' 버튼을 클릭하여 조각 모음을 실행합니다.

3. SSD 최적화: 트리밍

  • SSD 최적화를 위해 Windows는 트리밍 프로세스를 사용하여 SSD의 사용되지 않은 부분을 회수합니다. 트리밍 작업은 일반적으로 자동으로 수행됩니다.

트리밍 상태를 확인하려면 명령 프롬프트를 관리자 권한으로 실행합니다.

다음 명령어를 입력하여 트리밍 상태를 확인합니다:

// sh

fsutil behavior query DisableDeleteNotify
 

결과가 DisableDeleteNotify = 0이면 트리밍이 활성화된 상태입니다.

 

 

추가 참고 자료

이러한 도구와 절차를 통해 Windows 시스템에서 디스크 사용량을 모니터링하고 디스크 공간을 효율적으로 관리할 수 있습니다.

 


Linux: 디스크 사용량

 

Linux에서 디스크 사용량을 모니터링하고 관리하는 몇 가지 주요 명령어를 알아보았습니다. 각 명령어는 특정 작업에 최적화되어 있어서 필요에 따라 적절하게 사용할 수 있습니다.

 

디스크 사용량 확인 명령어

 

1. du 명령어

du: 디스크 사용량을 보여주는 명령어입니다.

  • 기본적으로 현재 디렉터리의 사용량을 출력합니다.
  • -h 옵션을 사용하여 사람이 읽기 쉬운 형태로 데이터 크기를 표시합니다.
  • 특정 디렉터리의 사용량을 확인하려면 디렉터리 경로를 추가로 지정합니다.
// sh

du -h [디렉터리 경로]
 

2. df 명령어

// sh

df -h

 

df: 디스크의 전체 사용 가능한 공간을 보여주는 명령어입니다.

  • 파일 시스템 별로 사용 중인 공간과 사용 가능한 공간을 출력합니다.
  • -h 옵션을 사용하여 사람이 읽기 쉬운 형태로 데이터 크기를 표시합니다.
 

 

디스크 관리 팁

  1. 파일 시스템 조각 모음: Linux는 일반적으로 파일 조각화를 잘 방지하여 디스크의 성능을 최적화합니다. 따라서 일반적으로 사용자가 수동으로 파일 시스템을 조각 모음할 필요는 없습니다.
  2. 디스크 공간 부족 시 해결 방법: 디스크 공간이 부족할 때는 du 명령어를 사용하여 어떤 파일이 많은 공간을 차지하고 있는지 확인하고, 필요하지 않은 파일을 안전하게 삭제할 수 있습니다. 파일을 삭제할 때는 신중하게 접근해야 하며, 중요한 파일이나 시스템 파일을 삭제하지 않도록 주의해야 합니다.

 

추가 자료

디스크 사용량 모니터링과 관리는 시스템 관리자나 일반 사용자 모두에게 중요한 작업입니다. 이러한 명령어와 팁을 활용하여 시스템의 디스크 공간을 효율적으로 관리할 수 있습니다.

 

 


Windows: 파일 시스템 복구

 

  1. 데이터 버퍼와 파일 시스템의 일관성 유지:
    • 파일을 USB 드라이브에 복사할 때, 데이터는 먼저 컴퓨터의 RAM에 캐시되어 버퍼링됩니다.
    • 이 데이터는 아직 하드 드라이브에 기록되기 전에 버퍼에 일시적으로 저장됩니다.
    • 마운트 해제를 하지 않고 USB 드라이브를 단순히 연결 해제하면, 아직 버퍼에 남아 있는 데이터가 완전히 기록되지 않은 상태에서 드라이브가 떨어질 수 있습니다. 이로 인해 데이터 손상의 위험이 있습니다.
  2. 시스템 오류와 데이터 무결성:
    • 컴퓨터가 갑작스럽게 종료되거나 시스템이 다운될 경우, 파일 시스템이 손상될 수 있습니다.
    • NTFS 파일 시스템에서는 이러한 상황을 대비해 저널링과 자동 복구 메커니즘이 있어 파일 시스템의 일관성을 유지하고 데이터 손상을 최소화합니다.
    • 하지만 드라이브를 안전하게 제거하지 않으면 이러한 기능도 제대로 작동하지 않을 수 있습니다.
  3. 데이터 손실과 손상 방지:
    • USB 드라이브를 안전하게 제거하면, 데이터의 손실과 손상을 예방할 수 있습니다.
    • 정상적인 절차를 따라 마운트를 해제하면, 시스템은 버퍼에 남아 있는 데이터를 완전히 기록하고 나서 드라이브를 안전하게 연결 해제할 수 있습니다.

따라서, USB 드라이브를 연결 해제할 때는 반드시 운영체제에서 제공하는 안전한 제거 방법을 사용하여 데이터의 무결성을 보장해야 합니다. 이는 데이터 손상과 손실을 방지하고 시스템의 안정성을 유지하는 데 중요합니다.

 

 


Linux: 파일 시스템 복구

 

Linux에서 파일 시스템을 수동으로 확인하고 복구하기 위해 사용하는 명령어는 'fsck'입니다. 이 명령어는 파일 시스템을 검사하고 손상된 부분을 찾아 복구하는 도구로, 시스템이 부팅할 때 자동으로 실행되기도 합니다.

 

주요 포인트:

  1. 파일 시스템 검사 도구인 fsck:
    • fsck: 파일 시스템을 검사하고 손상된 부분을 복구합니다. 일반적으로 관리자 권한이 필요하며, 마운트된 파티션에 대해서는 실행하지 않는 것이 좋습니다. 이는 파일 시스템이 활성화되어 있으면 정확한 결과를 보장하기 어렵기 때문입니다.
  2. 부팅 시 자동 실행:
    • 일부 Linux 배포판에서는 부팅 시 파일 시스템이 손상되었는지 확인하고, 필요한 경우 fsck를 실행하여 자동 복구를 시도합니다. 이는 시스템의 안정성을 유지하는 데 중요한 역할을 합니다.
  3. 손상된 파일 시스템 복구:
    • fsck를 통해 손상된 파일 시스템을 복구할 수 있지만, 항상 모든 문제를 해결할 수 있는 것은 아닙니다. 하드웨어의 물리적인 문제나 심각한 손상의 경우 복구가 어려울 수 있습니다.
  4. IT 지원 역할의 중요성:
    • IT 지원 업무에서는 디스크와 파일 시스템 관리가 매우 중요합니다. 사용자의 중요한 데이터를 보호하고, 시스템의 안정성을 유지하기 위해 필수적인 작업입니다.

 

Linux에서 파일 시스템을 관리하고 복구하는 작업은 데이터 보호와 시스템 안정성을 위해 필수적입니다. fsck와 같은 도구를 통해 정기적으로 파일 시스템을 점검하고, 문제가 발생했을 때 신속하게 대응할 수 있는 능력이 중요합니다. 이는 IT 지원 업무에서 반드시 알아야 할 필수적인 기술입니다.

 

 

 

 

 

 

반응형

 

728x90
반응형