메뉴 건너뛰기

imitator


Feb 10 10:10:05 localhost kernel: [32859882.942430] EXT4-fs error: 129970 callbacks suppressed

Feb 10 10:10:05 localhost kernel: [32859882.942437] EXT4-fs error (device dm-0): __ext4_read_dirblock:884: inode #1583141: block 10: comm find: Directory hole found

Feb 10 10:10:05 localhost kernel: [32859882.956110] EXT4-fs error (device dm-0): __ext4_read_dirblock:884: inode #1583141: block 10: comm find: Directory hole found

Feb 10 10:10:05 localhost kernel: EXT4-fs error: 129970 callbacks suppressed

Feb 10 10:10:05 localhost kernel: EXT4-fs error (device dm-0): __ext4_read_dirblock:884: inode #1583141: block 10: comm find: Directory hole found

Feb 10 10:10:05 localhost kernel: [32859882.969969] EXT4-fs error (device dm-0): __ext4_read_dirblock:884: inode #1583141: block 10: comm find: Directory hole found

Feb 10 10:10:05 localhost kernel: [32859882.983575] EXT4-fs error (device dm-0): __ext4_read_dirblock:884: inode #1583141: block 10: comm find: Directory hole found

Feb 10 10:10:05 localhost kernel: EXT4-fs error (device dm-0): __ext4_read_dirblock:884: inode #1583141: block 10: comm find: Directory hole found

Feb 10 10:10:05 localhost kernel: EXT4-fs error (device dm-0): __ext4_read_dirblock:884: inode #1583141: block 10: comm find: Directory hole found 


사용하던 서버를 확인하던 도중 메세지로그에서 device dm-0에서 파일시스템 에러가 발생하는 부분을 확인하였습니다.

평소 sda, sdb등의 드라이브명은 종종 보았으나 dm-0이라는 드라이브는 자주 보는것이 아니다보니 어느 부분에서 

문제가 생겼는지 확인하기가 조금 어려웠습니다.


[root@localhost ~]# fdisk -l


Disk /dev/sda: 29.8 GiB, 32017047552 bytes, 62533296 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x000db28e


Device    Boot     Start       End   Blocks  Id System

/dev/sda1 *         2048  53946367 26972160  83 Linux

/dev/sda2       53946368  62533295  4293464  82 Linux swap / Solaris



Disk /dev/sdb: 1.8 TiB, 1997998653440 bytes, 3902341120 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: 990B90B2-DA2A-4DE5-81D5-E5CFAFF55A61


Device    Start          End   Size Type

/dev/sdb1    34   3902339167   1.8T Microsoft basic data



Disk /dev/mapper/loop0p1: 100 GiB, 107372085248 bytes, 209711104 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes



[root@localhost ~]# df -Th

Filesystem          Type      Size  Used Avail Use% Mounted on

devtmpfs            devtmpfs   16G     0   16G   0% /dev

tmpfs               tmpfs      16G     0   16G   0% /dev/shm

tmpfs               tmpfs      16G  1.2M   16G   1% /run

tmpfs               tmpfs      16G     0   16G   0% /sys/fs/cgroup

/dev/sda1           ext4       26G  6.2G   18G  26% /

tmpfs               tmpfs      16G   32K   16G   1% /tmp

/dev/sdb1           ext4      1.8T  993G  746G  58% /backup

/dev/mapper/loop0p1 ext4       99G   21G   73G  23% /backup/vnc/install.mnt


먼저 dm-0 드라이브가 어느부분인지 확인하기위해 마운트가 된 부분을 확인하였습니다.

fdisk와 df 명령어로 확인하던 도중 평소에는 보지못한 /dev/mapper/loop0p가 마운트 된 부분을

확인 할수 있었습니다. 이게 dm-0이라고 바로 단정지을수는 없지만 확인을 진행해보기로 했습니다.


[root@localhost ~]# umount /dev/mapper/loop0p1 

umount: /backup/vnc/install.mnt: target is busy

        (In some cases useful info about processes that

         use the device is found by lsof(8) or fuser(1).)


loop0p1을 마운트 해제하려하니 target is busy가 발생한 부분을 확인할수있었습니다.


[root@localhost ~]# fuser -cu /dev/mapper/loop0p1

/dev/dm-0:           18339(root)


이대로는 안되겠다 싶어 /dev/mapper/loop0를 누가 사용하는지 확인 하기 위해 

fuser -cu 명령어를 이용하여 사용자를 확인하였습니다. 자세히보면 /dev/mapper/loop0p1은

위에 나오는 파일시스템 에러 메세지에 나온 dm-0가 loop0p1인것을 확인할수 있었습니다.


[root@localhost ~]# fuser -ck /backup/vnc/install.mnt

/backup/vnc/install.mnt: 28503


[root@localhost ~]# umount /backup/vnc/install.mnt

[root@localhost ~]# df -Th

Filesystem          Type      Size  Used Avail Use% Mounted on

devtmpfs            devtmpfs   16G     0   16G   0% /dev

tmpfs               tmpfs      16G     0   16G   0% /dev/shm

tmpfs               tmpfs      16G  1.2M   16G   1% /run

tmpfs               tmpfs      16G     0   16G   0% /sys/fs/cgroup

/dev/sda1           ext4       26G  6.2G   18G  26% /

tmpfs               tmpfs      16G   32K   16G   1% /tmp

/dev/sdb1           ext4      1.8T  993G  746G  58% /backup




fuser -ck 명령어를 이용하여 디렉토리를 지정한뒤 사용자를 강제 다운되게 한후 

umount를 시도하였더니 아까와는 달리 에러 메세지는 나오지 않았습니다.


위의 내용은 저런 내용이 있구나라며 참고하시면 될것같으며

만약 마운트가 정상적으로 해제가 안된다면 아래와 같이 진행하시면 될것같습니다.


1. fuser -cu 로 사용자를 확인한다.
2. fuser -ck 로 연결되어있는 프로세스를 강제종료시킨다.

3. umount로 마운트를 해제한다.



번호 제목 글쓴이 날짜 조회 수
» umount target is busy 강제 해제하는 방법 관리자 2017.02.10 875
72 리눅스 centos6에서 java 버전 변경하기 관리자 2016.12.26 1531
71 ssh-keygen secret 관리자 2016.12.23 0
70 centos 6 tomcat 설치 file 관리자 2016.12.09 1330
69 CentOS 6 sendmail 설치 하는 방법 file 관리자 2016.11.16 2370
68 CentOS 6 nginx php-fpm mysql을 yum(rpm) 설치하는 방법 file 관리자 2016.11.04 518
67 CentOS 6 webmin rpm 설치 하는방법 file 관리자 2016.11.02 303
66 CentOS 6 phpmyadmin을 yum(rpm)으로 설치하는 방법 file 관리자 2016.11.01 499
65 VirtualBox Cannot register the hard disk 해결방법 file 관리자 2016.10.18 248
64 su: pam_unix(su:auth): authentication failure file 관리자 2016.10.05 425
63 서버의 ssh 접근이 안될때 확인하는 방법 file 관리자 2016.09.27 6984
62 우분투 16.04 tasksel를 이용하여 데스크탑 설치방법 file 관리자 2016.08.29 662
61 LVM2_member mount(마운트) 불가 해결하는 방법 file 관리자 2016.08.26 1317
60 centos 6.8 mysql 5.5.51 소스설치 secret 관리자 2016.08.15 0
59 우분투 16.04 데스크탑에서 카카오톡 PC버전 설치하기 [27] file 관리자 2016.08.02 29872
58 우분투 16.04 패키지 목록이나 상태 파일을 파싱할 수 없거나 열 수 없습니다. 해결하기 file 관리자 2016.07.28 321
57 gdisk로 대용량 파티션을 생성하기 file 관리자 2016.07.22 883
56 클램(ClamAV) 안티바이러스 설치하기 (CentOS 6.6) file 관리자 2016.06.30 2825
55 메가레이드의 상태를 간단하게 확인할수 있는방법 file 관리자 2016.06.16 1467
54 메가레이드 LSI 9261-8i BIOS(바이오스) 펌웨어 업데이트 하는법 file 관리자 2016.06.16 200