메뉴 건너뛰기

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로 마운트를 해제한다.



번호 제목 글쓴이 날짜 조회 수
87 Ubuntu 16.04 단축 URL을 생성하는 YOURLS 설치 방법 file 관리자 2017.08.11 19
86 Ubuntu 16.04 jar 디컴파일 툴 JD-GUI 설치 file 관리자 2017.08.01 38
85 linux apk를 jar로 디컴파일하는 dex2jar 설치 및 사용 방법 file 관리자 2017.08.01 21
84 우분투 16.04 /var/lib/dpkg/lock 잠금 파일을 얻을 수 없습니다 해결법 [1] file 관리자 2017.07.20 225
83 우분투 16.04 LTS 서버 보안 강화를 위한 knockd 설치 방법 file 관리자 2017.07.06 44
82 CentOS 6 comodo Antivirus for Linux 백신 설치 방법 file 관리자 2017.06.15 65
81 CentOS 6 ssh google-authenticator로 OTP 접속하는 방법 file 관리자 2017.06.09 88
80 vsftpd 호스트로갈 루트가 없음(No route to host) 에러 처리 방법 file 관리자 2017.05.08 430
79 오픈스택 qcow2 이미지 가져오기 secret 관리자 2017.04.17 0
78 let’s Encrypt SSL 무료 인증서 certbot을 통해 설치 및 설정하는 방법 file 관리자 2017.04.13 859
77 VPN를 악용하는 xe 광고글 작성자를 iptables로 차단하는 방법 [2] file 관리자 2017.03.31 89
76 리눅스 CentOS 마인크래프트 서버 spigot 1.11.2 설치(셋팅)방법 file 관리자 2017.02.27 426
75 CentOS 6.8 네트워크 간혈적으로 끊김 현상 해결 방법 file 관리자 2017.02.20 662
74 오픈스택 미타카 NoValidHost: No valid host was found. There are not enough hosts available. file 관리자 2017.02.15 319
» umount target is busy 강제 해제하는 방법 관리자 2017.02.10 166
72 리눅스 centos6에서 java 버전 변경하기 관리자 2016.12.26 560
71 ssh-keygen secret 관리자 2016.12.23 0
70 centos 6 tomcat 설치 file 관리자 2016.12.09 575
69 CentOS 6 sendmail 설치 하는 방법 file 관리자 2016.11.16 667
68 CentOS 6 nginx php-fpm mysql을 yum(rpm) 설치하는 방법 file 관리자 2016.11.04 221