$ df, $ fsck, $ e2fsck, $ badblocks, $ dumpe2fs, ext4 FS 구조, 슈퍼블록, i-node, 하드링크
27678 단어 filesystemfilesystem
$ df
- 파일 시스템의 '블록'에 관한 정보를 보여줌
- Used + Available ≠ 1K-blocks 일 것이다.
- 예비 블록으로 따로 사용중인 것이 있기 때문이다.
$ df -h
- '
-h
' 옵션은 human readable 하게 보여준다.
fsck
: 파일 시스템 체크
$ sudo fsck [option] <device file>
- 리눅스의 파일 시스템을 검사한다. inode 및 블록, 디렉토리, 파일 링크 등을 검사하고 필요시 복구 작업도 수행
- 예비 블록으로 따로 사용중인 것이 있기 때문이다.
$ df -h
-h
' 옵션은 human readable 하게 보여준다.fsck
: 파일 시스템 체크
$ sudo fsck [option] <device file>
- 리눅스의 파일 시스템을 검사한다. inode 및 블록, 디렉토리, 파일 링크 등을 검사하고 필요시 복구 작업도 수행
option | description |
---|---|
-f | 강제로 검사한다. |
-b <super block num> | 슈퍼블록으로 지정한 백업 슈퍼블록을 사용한다. |
-y | 모든 질문에 yes로 대답한다. |
-a | 파일 시스템 검사에서 문제가 발생했을 때 자동으로 복구한다. |
-n | 아무 수정 없이 파일 시스템 체크 |
주의!!! 마운트된 파일 시스템에서는 결코 fsck
을 사용하면 안된다.
- 체킹 작업을 할 때, 커널이 디스크 데이터를 변경할 수도 있기 때문이다.
- runtime 불일치를 일으켜 시스템이 고장 나고, 파일이 손상될 수도 있다.
- 단일-사용자 모드에서 루트 파티션을
ro
로 마운트 했다면,fsck
를 사용할 수 있다.
파일 시스템 검사
$ sudo fsck /dev/sdd1
fsck from util-linux 2.22.1
e2fsck 1.42.5 (29-Jul-2012)
/dev/sdd1: clean, 12/76912 files, 11779/307200 blocks
파일 시스템 강제 검사
$ sudo fsck -f /dev/sdd1
lost+found
-
만약 어떤 문제를 발견하면 일단 멈추고 문제 해결과 관련한 질문을 하게된다.
- 이런 질문들은 연결되지 않은 inode를 다시 연결하고 블록들을 정리하는 등 파일 시스템의 내부 구조에 대해 다룬다.
fsck
가 이름 없는 파일을 발견한 경우이다.
- 이름 없는 파일을 다시 inode에 연결하면fsck
는 파일 이름을 숫자로 해서 파일 시스템 안의lost+found
디렉터리에 둔다.
$ e2fsck
- 리눅스의 확장 파일 시스템
ext2
, ext3
, ext4
를 검사한다.
$ sudo e2fsck [option] <device file>
ext2
, ext3
, ext4
를 검사한다.$ sudo e2fsck [option] <device file>
option | description |
---|---|
-f | 강제로 검사한다. |
-b <super block num> | 슈퍼블록으로 지정한 백업 슈퍼블록을 사용한다. |
-y | 모든 질문에 yes로 대답한다. |
-j ext3/ext4 | ext3나 ext4 파일 시스템을 검사할때 지정한다. |
-p | 옵션은 자동적으로 질문 없이 일반적인 문제들을 수정하고 '심각한 오류'는 실행을 중단한다. |
$ badblocks
- 배드 블록을 검사한다.
$ sudo badblocks [option] <device file>
$ sudo badblocks [option] <device file>
option | description |
---|---|
-v | 검사 결과를 자세하게 출력한다. |
-o <out file> | 검사한 배드 블록 목록을 지정한 파일에 출력한다. |
$ badblocks -o <file> <dev>
$ sudo badblocks -o bad.out /dev/sda1
$ dumpe2fs
: 파일 시스템 정보 출력
- 파일 시스템의 정보를 자세히 볼 수 있다.
- 백업 슈퍼 블록을 찾거나 찾아서 복구할 수 있다.
$ sudo dumpe2fs <device file>
e.g.
$ sudo dumpe2fs /dev/sda2
... 중략
Group 3810: (Blocks 124846080-124878847) csum 0xadd3 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780546 (bg #3808 + 2), csum 0x6e52061f
Inode bitmap at 124780550 (bg #3808 + 6), csum 0x00000000
Inode table at 124781576-124782087 (bg #3808 + 1032)
4660 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124850908-124850911, 124850940-124850943, 124850980-124850983, 124851050-124851055, 124851065-124851071, 124851123-124851135, 124851164-124851167, 124851196-124851199, 124851251-124851263, 124851319-124851327, 124851449-124851455, 124851609-124851615, 124851647, 124851695-124851711, 124851922-124851967, 124852046-124852063, 124852089-124852095, 124852143-124852159, 124852209-124852223, 124852347-124852351, 124852407-124852415, 124852444-124852447, 124852466-124852479, 124852695-124852703, 124852727-124852735, 124852908-124852927, 124852983-124852991, 124853189-124853215, 124853247, 124853304-124853343, 124853363-124853375, 124853468-124853471, 124853495-124853503, 124853667-124853695, 124853751-124853759, 124854132-124854143, 124854199-124854207, 124854232-124854239, 124854267-124854271, 124854644-124854655, 124854884-124854889, 124854910-124854943, 124854962-124854975, 124855031-124855039, 124855098-124855103, 124855137-124855167, 124855257-124855279, 124855334-124855359, 124855398-124855423, 124855477-124855491, 124855520-124855679, 124855787-124856063, 124856157-124856191, 124856248-124856255, 124856317-124856319, 124862605-124862719, 124862816-124862847, 124862903-124862911, 124862968-124862975, 124863954-124863967, 124863985-124863999, 124864478-124864511, 124866716-124866751, 124866807-124867295, 124867315-124867455, 124867494-124867551, 124867570-124867583, 124867806-124867967, 124868025-124868031, 124868091-124868223, 124868297-124868607, 124869541-124869631, 124870018-124870047, 124870073-124870079, 124870112-124870143, 124870322-124870655, 124872651-124872703, 124873001-124873215, 124873565-124874751
Free inodes: 31211521-31219712
Group 3811: (Blocks 124878848-124895487) csum 0xdcc7 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780547 (bg #3808 + 3), csum 0x681c95d4
Inode bitmap at 124780551 (bg #3808 + 7), csum 0x00000000
Inode table at 124782088-124782599 (bg #3808 + 1544)
4027 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124882904-124882911, 124882942-124882943, 124883120-124883135, 124883166-124883167, 124883190-124883199, 124883440-124883455, 124883606-124883653, 124883674-124883679, 124883704-124883967, 124884085-124884127, 124884145-124884223, 124884336-124884351, 124884480-124884735, 124884953-124885023, 124885047-124885055, 124885100-124885119, 124885227-124885247, 124885400-124885503, 124886035-124886271, 124886412-124887551, 124888327-124889087, 124889299-124889343, 124889582-124889599, 124889857-124890111, 124890624-124891135, 124895420-124895487
Free inodes: 31219713-31227904
- 디바이스의 블록 그룹
슈퍼블록 찾기
$ sudo dumpe2fs <dev file> | grep "superblock"
슈퍼블록 복구
- 위에 있는 슈퍼 블록 백업을 가지고 복구할 수 있다.
- 블록을 고른다.
$ e2fsck -b 98304 -y /dev/sdb2 # 90304에 있는 슈퍼블록 백업본을 이용해 파일시스템 슈퍼블록을 복구 시킨다.
ext4 파일 시스템 구조
1. 디스크 전체 구조
2. ext4 파일 시스템의 '파티션'의 구조 (블록 그룹)
- 1개의 파티션은 '여러 개의' 블록 그룹으로 나뉘어져 있음
- 1개 블록 그룹 = n개 블록 모음
- 1 block = 4KB (설정마다 다름)
$ sudo dumpe2fs <device file>
e.g.
$ sudo dumpe2fs /dev/sda2
... 중략
Group 3810: (Blocks 124846080-124878847) csum 0xadd3 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780546 (bg #3808 + 2), csum 0x6e52061f
Inode bitmap at 124780550 (bg #3808 + 6), csum 0x00000000
Inode table at 124781576-124782087 (bg #3808 + 1032)
4660 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124850908-124850911, 124850940-124850943, 124850980-124850983, 124851050-124851055, 124851065-124851071, 124851123-124851135, 124851164-124851167, 124851196-124851199, 124851251-124851263, 124851319-124851327, 124851449-124851455, 124851609-124851615, 124851647, 124851695-124851711, 124851922-124851967, 124852046-124852063, 124852089-124852095, 124852143-124852159, 124852209-124852223, 124852347-124852351, 124852407-124852415, 124852444-124852447, 124852466-124852479, 124852695-124852703, 124852727-124852735, 124852908-124852927, 124852983-124852991, 124853189-124853215, 124853247, 124853304-124853343, 124853363-124853375, 124853468-124853471, 124853495-124853503, 124853667-124853695, 124853751-124853759, 124854132-124854143, 124854199-124854207, 124854232-124854239, 124854267-124854271, 124854644-124854655, 124854884-124854889, 124854910-124854943, 124854962-124854975, 124855031-124855039, 124855098-124855103, 124855137-124855167, 124855257-124855279, 124855334-124855359, 124855398-124855423, 124855477-124855491, 124855520-124855679, 124855787-124856063, 124856157-124856191, 124856248-124856255, 124856317-124856319, 124862605-124862719, 124862816-124862847, 124862903-124862911, 124862968-124862975, 124863954-124863967, 124863985-124863999, 124864478-124864511, 124866716-124866751, 124866807-124867295, 124867315-124867455, 124867494-124867551, 124867570-124867583, 124867806-124867967, 124868025-124868031, 124868091-124868223, 124868297-124868607, 124869541-124869631, 124870018-124870047, 124870073-124870079, 124870112-124870143, 124870322-124870655, 124872651-124872703, 124873001-124873215, 124873565-124874751
Free inodes: 31211521-31219712
Group 3811: (Blocks 124878848-124895487) csum 0xdcc7 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780547 (bg #3808 + 3), csum 0x681c95d4
Inode bitmap at 124780551 (bg #3808 + 7), csum 0x00000000
Inode table at 124782088-124782599 (bg #3808 + 1544)
4027 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124882904-124882911, 124882942-124882943, 124883120-124883135, 124883166-124883167, 124883190-124883199, 124883440-124883455, 124883606-124883653, 124883674-124883679, 124883704-124883967, 124884085-124884127, 124884145-124884223, 124884336-124884351, 124884480-124884735, 124884953-124885023, 124885047-124885055, 124885100-124885119, 124885227-124885247, 124885400-124885503, 124886035-124886271, 124886412-124887551, 124888327-124889087, 124889299-124889343, 124889582-124889599, 124889857-124890111, 124890624-124891135, 124895420-124895487
Free inodes: 31219713-31227904
3. 블록 그룹 하나
$ sudo dumpe2fs <device file>
e.g.
$ sudo dumpe2fs /dev/sda2
... 중략
Group 3811: (Blocks 124878848-124895487) csum 0xdcc7 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780547 (bg #3808 + 3), csum 0x681c95d4
Inode bitmap at 124780551 (bg #3808 + 7), csum 0x00000000
Inode table at 124782088-124782599 (bg #3808 + 1544)
4027 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124882904-124882911, 124882942-124882943, 124883120-124883135, 124883166-124883167, 124883190-124883199, 124883440-124883455, 124883606-124883653, 124883674-124883679, 124883704-124883967, 124884085-124884127, 124884145-124884223, 124884336-124884351, 124884480-124884735, 124884953-124885023, 124885047-124885055, 124885100-124885119, 124885227-124885247, 124885400-124885503, 124886035-124886271, 124886412-124887551, 124888327-124889087, 124889299-124889343, 124889582-124889599, 124889857-124890111, 124890624-124891135, 124895420-124895487
Free inodes: 31219713-31227904
$ sudo dumpe2fs <device file>
e.g.
$ sudo dumpe2fs /dev/sda2
... 중략
Group 3810: (Blocks 124846080-124878847) csum 0xadd3 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780546 (bg #3808 + 2), csum 0x6e52061f
Inode bitmap at 124780550 (bg #3808 + 6), csum 0x00000000
Inode table at 124781576-124782087 (bg #3808 + 1032)
4660 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124850908-124850911, 124850940-124850943, 124850980-124850983, 124851050-124851055, 124851065-124851071, 124851123-124851135, 124851164-124851167, 124851196-124851199, 124851251-124851263, 124851319-124851327, 124851449-124851455, 124851609-124851615, 124851647, 124851695-124851711, 124851922-124851967, 124852046-124852063, 124852089-124852095, 124852143-124852159, 124852209-124852223, 124852347-124852351, 124852407-124852415, 124852444-124852447, 124852466-124852479, 124852695-124852703, 124852727-124852735, 124852908-124852927, 124852983-124852991, 124853189-124853215, 124853247, 124853304-124853343, 124853363-124853375, 124853468-124853471, 124853495-124853503, 124853667-124853695, 124853751-124853759, 124854132-124854143, 124854199-124854207, 124854232-124854239, 124854267-124854271, 124854644-124854655, 124854884-124854889, 124854910-124854943, 124854962-124854975, 124855031-124855039, 124855098-124855103, 124855137-124855167, 124855257-124855279, 124855334-124855359, 124855398-124855423, 124855477-124855491, 124855520-124855679, 124855787-124856063, 124856157-124856191, 124856248-124856255, 124856317-124856319, 124862605-124862719, 124862816-124862847, 124862903-124862911, 124862968-124862975, 124863954-124863967, 124863985-124863999, 124864478-124864511, 124866716-124866751, 124866807-124867295, 124867315-124867455, 124867494-124867551, 124867570-124867583, 124867806-124867967, 124868025-124868031, 124868091-124868223, 124868297-124868607, 124869541-124869631, 124870018-124870047, 124870073-124870079, 124870112-124870143, 124870322-124870655, 124872651-124872703, 124873001-124873215, 124873565-124874751
Free inodes: 31211521-31219712
Group 3811: (Blocks 124878848-124895487) csum 0xdcc7 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780547 (bg #3808 + 3), csum 0x681c95d4
Inode bitmap at 124780551 (bg #3808 + 7), csum 0x00000000
Inode table at 124782088-124782599 (bg #3808 + 1544)
4027 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124882904-124882911, 124882942-124882943, 124883120-124883135, 124883166-124883167, 124883190-124883199, 124883440-124883455, 124883606-124883653, 124883674-124883679, 124883704-124883967, 124884085-124884127, 124884145-124884223, 124884336-124884351, 124884480-124884735, 124884953-124885023, 124885047-124885055, 124885100-124885119, 124885227-124885247, 124885400-124885503, 124886035-124886271, 124886412-124887551, 124888327-124889087, 124889299-124889343, 124889582-124889599, 124889857-124890111, 124890624-124891135, 124895420-124895487
Free inodes: 31219713-31227904
$ sudo dumpe2fs <dev file> | grep "superblock"
$ e2fsck -b 98304 -y /dev/sdb2 # 90304에 있는 슈퍼블록 백업본을 이용해 파일시스템 슈퍼블록을 복구 시킨다.
1. 디스크 전체 구조
2. ext4 파일 시스템의 '파티션'의 구조 (블록 그룹)
- 1개의 파티션은 '여러 개의' 블록 그룹으로 나뉘어져 있음
- 1개 블록 그룹 = n개 블록 모음
- 1 block = 4KB (설정마다 다름)
$ sudo dumpe2fs <device file>
e.g.
$ sudo dumpe2fs /dev/sda2
... 중략
Group 3810: (Blocks 124846080-124878847) csum 0xadd3 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780546 (bg #3808 + 2), csum 0x6e52061f
Inode bitmap at 124780550 (bg #3808 + 6), csum 0x00000000
Inode table at 124781576-124782087 (bg #3808 + 1032)
4660 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124850908-124850911, 124850940-124850943, 124850980-124850983, 124851050-124851055, 124851065-124851071, 124851123-124851135, 124851164-124851167, 124851196-124851199, 124851251-124851263, 124851319-124851327, 124851449-124851455, 124851609-124851615, 124851647, 124851695-124851711, 124851922-124851967, 124852046-124852063, 124852089-124852095, 124852143-124852159, 124852209-124852223, 124852347-124852351, 124852407-124852415, 124852444-124852447, 124852466-124852479, 124852695-124852703, 124852727-124852735, 124852908-124852927, 124852983-124852991, 124853189-124853215, 124853247, 124853304-124853343, 124853363-124853375, 124853468-124853471, 124853495-124853503, 124853667-124853695, 124853751-124853759, 124854132-124854143, 124854199-124854207, 124854232-124854239, 124854267-124854271, 124854644-124854655, 124854884-124854889, 124854910-124854943, 124854962-124854975, 124855031-124855039, 124855098-124855103, 124855137-124855167, 124855257-124855279, 124855334-124855359, 124855398-124855423, 124855477-124855491, 124855520-124855679, 124855787-124856063, 124856157-124856191, 124856248-124856255, 124856317-124856319, 124862605-124862719, 124862816-124862847, 124862903-124862911, 124862968-124862975, 124863954-124863967, 124863985-124863999, 124864478-124864511, 124866716-124866751, 124866807-124867295, 124867315-124867455, 124867494-124867551, 124867570-124867583, 124867806-124867967, 124868025-124868031, 124868091-124868223, 124868297-124868607, 124869541-124869631, 124870018-124870047, 124870073-124870079, 124870112-124870143, 124870322-124870655, 124872651-124872703, 124873001-124873215, 124873565-124874751
Free inodes: 31211521-31219712
Group 3811: (Blocks 124878848-124895487) csum 0xdcc7 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780547 (bg #3808 + 3), csum 0x681c95d4
Inode bitmap at 124780551 (bg #3808 + 7), csum 0x00000000
Inode table at 124782088-124782599 (bg #3808 + 1544)
4027 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124882904-124882911, 124882942-124882943, 124883120-124883135, 124883166-124883167, 124883190-124883199, 124883440-124883455, 124883606-124883653, 124883674-124883679, 124883704-124883967, 124884085-124884127, 124884145-124884223, 124884336-124884351, 124884480-124884735, 124884953-124885023, 124885047-124885055, 124885100-124885119, 124885227-124885247, 124885400-124885503, 124886035-124886271, 124886412-124887551, 124888327-124889087, 124889299-124889343, 124889582-124889599, 124889857-124890111, 124890624-124891135, 124895420-124895487
Free inodes: 31219713-31227904
3. 블록 그룹 하나
$ sudo dumpe2fs <device file>
e.g.
$ sudo dumpe2fs /dev/sda2
... 중략
Group 3811: (Blocks 124878848-124895487) csum 0xdcc7 [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 124780547 (bg #3808 + 3), csum 0x681c95d4
Inode bitmap at 124780551 (bg #3808 + 7), csum 0x00000000
Inode table at 124782088-124782599 (bg #3808 + 1544)
4027 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes
Free blocks: 124882904-124882911, 124882942-124882943, 124883120-124883135, 124883166-124883167, 124883190-124883199, 124883440-124883455, 124883606-124883653, 124883674-124883679, 124883704-124883967, 124884085-124884127, 124884145-124884223, 124884336-124884351, 124884480-124884735, 124884953-124885023, 124885047-124885055, 124885100-124885119, 124885227-124885247, 124885400-124885503, 124886035-124886271, 124886412-124887551, 124888327-124889087, 124889299-124889343, 124889582-124889599, 124889857-124890111, 124890624-124891135, 124895420-124895487
Free inodes: 31219713-31227904
블록 그룹 구성 요소 | 설명 |
---|---|
슈퍼블록 | 파일 시스템에 대한 정보 저장. 즉, 파일 시스템 전체 정보 1. 전체 inode 개수 2. free block 수 3. free inode 수 4. 첫 번째 데이터 블록의 주소 5. 그룹 당 블록의 수 6. 파일 시스템의 생태 7. 전체 블록의 갯수 8. 블록의 크기 9. 마운트 시간 10. 그룹 디스크립터 크기 |
그룹 디스크립터 | 1. 블록 비트맵 주소 2. inode 비트맵 주소 3. inode 테이블의 주소 4. 할당되지 않은 블록 갯수 5. 할당되지 않은 inode 개수 6. 디렉토리 개수 7. 블록 비트맵 8. inode 비트맵 체크섬 |
데이터 블록 비트맵 | 블록 그룹내 '데이터 블록' 사용 여부 확인하는데, 사용 됨 |
inode 비트맵 | inode 테이블의 항목(inode)가 사용 중인지 표시 비트맵에서 각 데이터 블록과 inode 테이블 항목은 1bit로 표시한다. |
inode 테이블 | inode에 파일 정보 저장 |
데이터 블록 | 실제 데이터 저장 |
inode
- inode는 파일의 이름을 제외한 해당 파일의 모든 '정보'를 담고 있다.
- 파일이름은 inode번호와 함께 디렉토리 안에 저장된다.
디렉토리 및 하드링크의 아이노드
- 디렉토리 파일은, 내부 {디렉토리,파일} 명 과 각 아이노드를 갖고있다.
- 디렉터리는 자기 자신 참조(
.
)와 부모로 부터 참조 때문에 inode 참조 링크 수가 2개이다.
- 디렉터리는 자기 자신 참조(
- 하드링크의 두 파일은 같은 아이노드를 가지고 있어서 결국 '아이노드'가 '같기'때문에, 같은 파일이다.
- inode 참조 링크 수가 0개가 되면 비로소 제거된다.
$ ls -i
: inode 조회
$ stat <file>
Author And Source
이 문제에 관하여($ df, $ fsck, $ e2fsck, $ badblocks, $ dumpe2fs, ext4 FS 구조, 슈퍼블록, i-node, 하드링크), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@markyang92/df저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)