본문 바로가기

리눅스/CentOs (Rocky 8 )

[리눅스] 파일 시스템 관리 및 복구 - fdisk 등등 (적는 중)

 

mkfs.xfs /dev/sdb1
→ xfs 로 /dev/sdb1 장치의 파일 시스템을 생성한다.

파일 시스템 생성 

1. 파일 시스템 추가 과정 ***




2. 관련 명령어 

  1. fdisk
  • 파티션 확인 
  • 파티션 추가/삭제
  • 설정 후에는 재부팅을 해야함. → 최신 버전에서는 별도의 재부팅 없이 가능. 

 

  • 옵션 
-l # fdisk -l  → 현재 장착된 장치 정보 출력 
# fdisk -l /dev/sdb   → /dev/sdb의 장치 출력 

지정한 장치의 파티션 테이블 정보 출력. 
장치 지정 안하면 /proc/partitions 기반 장착된 디스크의 파티션 테이블 정보 출력 
-s # fdisk -s /dev/sdb1

지정한 장치의 파티션 크기 출력. 512byte 섹터 수. 

 

  • 예제



  • fdisk 실행 시 옵션 

p 현재 파티션 정보 출력 
d 파티션 삭제 
n 새로운 파티션 추가 
t 파티션 타입 변경 .
t → L 하면 어떤 타입의 파티션들이 있는지 헥사 값으로 보여줌. 
w 저장 후 종료.
잘 저장되었는지 확인법 
→ cat /proc/partitions 했을 때 입력한 파티션이 잘 나와야 함. 
q 그냥 종료 

 

  • 파티션 생성 확인 : cat /proc/pasritions



  1. mkfs
  • 새로운 파일 시스템 생성 
  • root 사용자만 사용 가능 
  • 기본 설정은 ext2로 생성됨. 
  • 최근 버전 리눅스는 mkfs 실행시 사실상 mke2fs로 실행됨. 

 

  • 옵션 

 

-t 파일타입 파일 시스템의 유형을 지정하는 옵션. 미지정시 ext2로 생성됨. 

# mkfs -t ext2 /dev/sdb1
→ /dev/sdb1을 ext2으로 파일 시스템을 만든다. 
→ mke2fs /dev/sdb1과 같은 명령어


# mkfs -t ext4 /dev/sdb1
→ /dev/sdb1을 ext4으로 파일 시스템을 만든다. 

# mkfs -t xfs /dev/sdb1
→ /dev/sdb1를 xfs으로 파일 시스템을 만든다. 
→ mkfs.xfs /dev/sdb1과 같은 명령어 


 

2. mke2fs

  • 파일 시스템 생성 명령어
  • 시스템 형태 지정 안하면 ext2로 지정됨. 

 

  • 옵션 
-t 파일 타입  파일 시스템 유형 지정함. 
-j  저널링 시스템인 ext3로 만든다. 
-T  i-node의 크기를 지정. 



# 예제 

mke2fs -j /dev/sdb1
→ /dev/sdb1 장치의 파일 시스템을 ext3로 지정한다. 


mke2fs -j -T largefile /dev/hda7
→/dev/hda7을 ext3로 만들고 i-node의 크기를 1MB로 지정한다.



3. mkfs.xfs

  • xfs 파일 시스템을 만드는 명령
  • mkfs -t xfs와 같음

 

  • 옵션 
-b block_size 블록 사이즈를 지정하는 옵션. 
최소 512byte~ 
-f 지정한 디바이스에 파일 시스템이 존재하는 경우 강제로 수행

 

# 예제

mkfs.xfs

4. mount

  • 리눅스에서 보조기억장치나 파일 시스템이 다른 디스크를 ‘ / ‘ 의 하위 디렉터리로 연결하여 사용 가능하게 해주는 명령. 
  • mount만 사용시, 현재 마운트 되어있는 장치나 디스크 확인 가능. 
  • 하지만 마운트 실행하기 전에, unmount 먼저 해서 에러 메시지 같은 거 나오는지 확인하는 거 추천. ! 



  • 옵션 
-a  /etc/fstab 에 명시된 파일 시스템을 마운트할 때 쓰이는 옵션 
-o 항목 마운트 할 때 추가적인 설정을 지정함. 다수의 조건을 적용할 때는 ,로 구분 
ro, rw, remount, loop 등의 항목이 있음. 
   

 

# 예제

mount
→ 현재 마운트 되어있는 장치 보여줌.

→ 현재 마운트 되어있는 장치 보여줌. 

 

mount -t xfs 
→ xfs 형식으로 마운트 된거만 보여줌.
mount -t xfs /dev/sdb1 /home2

→ xfs 형식인 /dev/sdb1을 /home2 디렉터리로 마운트한다. 

 

mount -t ext4 -o ro /dev/sdb1 /mnt
→ 파일 시스템이 ext인 /dev/sdb1을 /mnt 디렉터리에 읽기 전용으로 마운트 한다.

 

6. unmount

  • 마운트 해제시. 
  • 특히 CD- ROM이나 DVD-ROM이 마운트된 상태에서 언마운트 해주지 않으면, 드라이브 안에 들어있는 디스크 꺼내기 불가능. 

 

  • 옵션
-a  /etc/mtab 에 명시된 파일 시스템을 마운트할 때 쓰이는 옵션 
-t 파일 타입 언마운트할 파일 시스템을 지정할 떄 사용. 




# 예제

unmount -a -t iso9660 
→ 파일 시스템이 iso9660으로 마운트된 것들을 모두 언마운트함.

 

 

7. eject

  • 이동식 보조장치(cd-rom, dvd) 의 미디어를 꺼낼때 사용. 사용하면 자동으로 unmount 작업 실행됨. 



# 예제

eject /media 
→ /media에 저장된 장치 언마운트하고 디스크 트레이 연다.




3. 관련 파일 

  • /etc/fstab
    • 파일 시스템에 대한 다양한 정보가 있는 파일
    • 부팅 시 마운트할 파티션 정보가 기록되어 있음. 
    • 이 파일에 등록해야만 부팅시 자동 마운트 

 

#  구조 설명

1 2 3 4 5 6
장치명 
볼륨 라벨
UUID
호스트명:디렉터리( 네트워크 연결) 
마운트 포인트 파일 시스템 유형 마운트 될 때의 옵션.

man mount로 자세한 거 확인 가능. 
dump명령을 이용한 백업시 레벨 덤프 주기.

0이면 검사X,
1이면 매일.
2면 2일에 한번
부팅시 파일 시스템을 점검하는 fsck 명령 순서를 정함. 


0이면 검사 X
1이면 가장 먼저 검사. 
/dev/sdb1,
LABEL=/
같은거
/
/home
xfs
ext4
swap
defaults,
uqota,
gquota,
acl
   



  • 4번째 필드 옵션
    • uquota : 사용자의 용량을 제한하는 disk quota 사용시 ‘
    • gquota : 그룹별로 사용자 쿼터를 시정할할때
    • noquota : 쿼터를 사용하지 않을 때.



+) uuid : blkid로 알 수 있다. 범용 고유 식별자. 



  • /etc/mtab
    • 현재 마운트된 파일 시스템 정보를 담고 있는 심볼릭 파일.
    • 실제는 /proc/self/mounts



+) 

  • blkid
    • 블록 장치의 속성 정보를 출력하는 명령
    • uuid, label 등을 알 수 있다.
  • lsblk
    • 블록 장치 목록 
  • findfs
    • 라벨이나 uuid 명으로 파일 시스템 찾음
  • findmnt
    • 파일 시스템 정보를 출력.
    • 마운트된 파일 시스템을 트리 구조로 출력




파일 시스템 점검 및 관리

 

  • fsck
    • ext계열 파일 시스템을 검사하고 수리 
    • xfs 파일 시스템 사용x

 

# fsck    옵션    장치명 



  • e2fsck
    • ext계열 파일 시스템 검사와 수리. 
    • 현재 리눅스에서 fsck 실행시 실제 사용되는 명령어. 
    • xfs 파일 시스템 사용x



  • xfs_repair
    • xfs 파일 시스템을 점검하고 복구할 때. 



  • du (disk usage)
    • 파일이나 디렉터리들이 디스크에서 차지하고 있는 크기 출력
    • 파티션 얘기와 나오면 du

 

# 옵션과 예

-h 크기 단위를 표시.(KB, MB, GB)

-b 바이트 단위 표시
-k 킬로 바이트 단위 보여줌. (기본값)
-m 메가 바이트 단위로 보여줌
-a 디렉터리에 존재하는 모든 파일에 대해 각각의 크기 보여줌. 
-s 파일들의 전체 크기를 합한 값만 보여줌. 
–inodes 블록 사용량 대신에 아이노드 사용량 출력 



# du -h




# du -sh *

→ 각 디렉터리나 파일별로 전체 용량을 출력함. 



# du -sh 

→ 현재 디렉터리의 전체 사용량만 단위를 붙여서 출력 



# du -sh /home

→ 홈 디렉터리의 전체 사용량 출력 



# du /home 

→ /home 디렉터리의 파일들이 차지하고 있는 크기 보여줌. 




# du –inodes 

→ 블록 사용량 대신 아이노드 사용량을 출력. 



# du -sh ~사용자명 

→ 해당 사용자의 전체 사용량을 출력함. 

 

  • df (disk free) ****
    • ‘용량’을 출력함. 
    • 현재 마운트된 저장 장치의 크기, 사용량, 남아있는 용량량



# 옵션과 예

-h 크기 단위를 표시.(KB, MB, GB)
1 kb = 1024byte 로 계산 
-H 크기 단위 표시. 
1kb = 1000byte
-k 킬로 바이트 단위로 보여줌. 
-m 메가 바이트 단위로 보여줌. 
-T 파일 시스템 타입을 보여줌. 
-i 아이노드 사용량을 보여줌. 

 

 




Q. du vs df 

     



  • dd
    • 디스크를 이미지 형태로 백업
    • 파일의 포맷
    •  텍스트 파일의 대소문자 변환.
    • 부팅 디스크 생성 시
    • swap 파일 만들 때
    • 디바이스 초기화 시킬 때 → raid 나 lvm구성 시 오류 발생한 경우.

 

# 예

dd if=a.txt conv =ucase of=b.txt 
→ ‘if=파일명’ : 변경할 파일 // ‘of=파일명’ : 바꾼 후 파일
→ 대문자(ucase)로 변경한다. 소문자는 lcase

 

dd if=/dev/zero of=/swap_file
→ dd if=/dev/zero  :  밀어버린다. 
→ of=/swap_file :   이름은 본인 마음대로




  • partprobe
    • 파티션 변경시, 변경한 정보를 반영할 때 적용.
    • fdisk로 설정 바꾸고 난 후, partprobe 쓰면 재부팅 필요없음. 
    • 반영 여부는 /proc/partitions에서 확인. → 반영 x라면 재부팅 해야함.

 

  • stat
    • 파일이나 파일 시스템의 관련 정보를 출력함.

 

# 옵션과 예

-f 파일 대신 파일이 속한 파일 시스템 관련 정보 출력.
-L 심볼릭 링크 파일인 경우에는 원본 파일의 정보 출력 

 



stat -f a.txt

→ a.txt가 속한 파일 시스템 관련 정보를 출력한다.