CentOS는 디스크가 사용 중이거나 마운트 또는 fsck를 사용할 수 없다고 생각합니다


25

저는 오랜 사용자이며 처음으로 질문을 제출 한 사람입니다. 나는 하루 종일이 사이트와 다른 많은 사이트에서 해결책을 찾았지만 내 상황을 해결하기 위해 도움을 요청해야합니다.

역사 : HP Proliant, Centos 5.9 서버는 어제 적절한 종료 절차없이 전원이 꺼졌습니다. 그 시점부터 / home 파티션은 fsck, 마운트 또는 마운트 해제 할 수없는 상태에있었습니다. umount는 마운트되지 않았지만 mount / fsck는 사용 중이거나 이미 마운트되었음을 ​​나타냅니다. 원래 서버가 부팅되지 않았습니다. 결국 부팅이 실패하지 않도록 / etc / fstab에서 디스크 / 파티션을 제거했습니다.

# mount -t ext3 /dev/cciss/c0d0p1 /home
mount: /dev/cciss/c0d0p1 already mounted or /home busy

# fsck /dev/cciss/c0d0p1 
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
fsck.ext3: Device or resource busy while trying to open /dev/cciss/c0d0p1
Filesystem mounted or opened exclusively by another program?

보다시피, 디스크는 어떤 식 으로든 마운트되지 않습니다.

df 출력 :

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d1p3    198381228  24920704 163220696  14% /
/dev/cciss/c0d1p2    267818128    191652 253802544   1% /logs
/dev/cciss/c0d1p1       194442     33575    150828  19% /boot
tmpfs                 49495044         0  49495044   0% /dev/shm

마운트 출력 :

# mount
/dev/cciss/c0d1p3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/cciss/c0d1p2 on /logs type ext3 (rw)
/dev/cciss/c0d1p1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/ etc / fstab

# cat /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/logs             /logs                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SW-cciss/c0d1p5   swap                    swap    defaults        0 0

/ etc / mtab

# cat /etc/mtab 
/dev/cciss/c0d1p3 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/cciss/c0d1p2 /logs ext3 rw 0 0
/dev/cciss/c0d1p1 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

/ proc / mounts

# cat /proc/mounts 
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/cciss/c0d1p2 /logs ext3 rw,data=ordered 0 0
/dev/cciss/c0d1p1 /boot ext3 rw,data=ordered 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/etc/auto.misc /misc autofs rw,fd=7,pgrp=9694,timeout=300,minproto=5,maxproto=5,indirect 0 0
-hosts /net autofs rw,fd=13,pgrp=9694,timeout=300,minproto=5,maxproto=5,indirect 0 0

lsof

# lsof /dev/cciss/c0d0p1 
#

퓨저

# fuser /dev/cciss/c0d0p1  
#

fdisk -l

# fdisk -l /dev/cciss/c0d0

Disk /dev/cciss/c0d0: 1800.2 GB, 1800280694784 bytes
255 heads, 63 sectors/track, 218871 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

           Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1   *           1      218871  1758081276   83  Linux

웹상의 다른 권장 사항에 따라 ILO3 원격 터미널을 사용하여 Centos LiveCD로 부팅했습니다. 이 작업을 수행 할 때 오류나 문제없이 파티션을 마운트 / 마운트 해제, fsck 할 수있었습니다. (즉, 디스크 자체는 괜찮습니다).

또한 "debugfs"를 사용하여 Journal Inode <8>에 대한 inode 지우기를 수행했습니다. 그런 다음 fsck는 오류없이 저널을 다시 빌드했습니다. 다시 LiveCD로 부팅 할 때 아무런 문제없이 디스크를 마운트 / 마운트 해제 할 수있었습니다.

일반 부팅 파티션으로 다시 전환하면 동일한 위치로 돌아와서 파티션이 사용 중이라고 믿는 OS로 인해 마운트 또는 fsck를 수행 할 수 없습니다.

Linux 에서이 디스크가 사용 중임을 나타낼 수있는 다른 것을 이해하려고합니다. 이를 찾아서 지우는 데 사용할 수있는 다른 유틸리티는 무엇입니까?

도움을 주시면 감사하겠습니다.


요청에 따라 추가 정보 :

/ home의 lsof 및 fuser와 함께 / home 내용 및 디렉토리 권한을 표시합니다.

# lsof /home
# fuser /home
# ls -la /home
total 16
drwxr-xr-x  2 root root 4096 Mar 15  2013 .
drwxr-xr-x 27 root root 4096 Nov 19 08:31 ..
# ls -l / | grep home
drwxr-xr-x   2 root root  4096 Mar 15  2013 home
#

가장 최근 부팅 이후이 파티션이 마운트되지 않았으므로 mount -o remount가 실패합니다. (이것은 서버가 설치된 이후 작동하는 파티션이며 어제 하드 재부팅 후에 만이 문제를 보여주었습니다).

# mount -o remount -t ext3 /dev/cciss/c0d0p1 /home
mount: /home not mounted already, or bad option

이 파티션을 / etc / fstab에 다시 추가하고 필요한 경우 재부팅 할 수 있습니다.


2013 년 11 월 19 일 오전 11시 12 분 CST

dmsetup 출력 :

# dmsetup table                
mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 
mpath0p1: 0 3516162552 linear 253:0 63

# dmsetup info
Name:              mpath0
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      1
Major, minor:      253, 0
Number of targets: 1
UUID: mpath-3600508b1001cb6e6453d25c4052abca5

Name:              mpath0p1
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        0
Event number:      0
Major, minor:      253, 1
Number of targets: 1
UUID: part1-mpath-3600508b1001cb6e6453d25c4052abca5

lsof -n

# lsof -n | grep /home
#

마지막 해결책:

# multipath -ll
mpath0 (3600508b1001cb6e6453d25c4052abca5) dm-0 HP,LOGICAL VOLUME
[size=1.6T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=1][active]
 \_ #:#:#:# cciss!c0d0 104:0  [active][ready]

# multipath -F

# multipath -ll
#

# mount -t ext3 /dev/cciss/c0d0p1 /home
# cat /proc/mounts | grep home
/dev/cciss/c0d0p1 /home ext3 rw,data=ordered 0 0

5
좋은 첫 질문의 훌륭한 예입니다.
TheCleaner

2
좋은 질문! 그것은이다 정말 긴 샷,하지만 당신은 시도 된 것으로 간주했다 mount -o remount /home? 또한, 나는 파일 시스템이 마운트되지 않은 경우 확인 / 가정이 실제로 비어 확인하십시오 것 (즉 한다 을 포함하여 시스템 로그에 적용 가능한 메시지에 대한 문제가되지 않습니다,하지만 누가 알 겠어?) 봐 dmesg.
CVn

2
디스크의 lsof를 수행하십시오. 마운트 지점에 영향을주는 항목이있는 경우 / home의 lsof / fuser도 시도 했습니까?
제니 D는 분석 재개 모니카 말한다

1
그건 그렇고, nfs를 통해 그 디렉토리를 내보낼 가능성이 있습니까? 디렉토리를 마운트하기 전에 nfs-server가 시작되면 마운트를 차단할 수 있습니다.
제니 D는 분석 재개 모니카 말한다

1
출력은 lsof -n | grep /home무엇입니까? AFAIK lsof / home은 / home이 열려있는 프로세스를 찾지 만 하위 디렉토리의 사용량은보고하지 않습니다.
Zoredache

답변:


16

아마도 장치 매퍼가 사용 중일 것입니다.

을 사용하여 장치 매퍼 테이블을 확인하십시오 dmsetup table. 안에 있으면로 매핑을 지 웁니다 dmsetup remove <name>.

그렇지 않은 경우 오류도 찾아보십시오 dmesg.


# dmsetup table
mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 
mpath0p1: 0 3516162552 linear 253:0 63

아 아! multipath가 디스크를 요구했습니다. 를 실행하면 볼 수 있습니다 multipath -ll.

실행 : multipath -F사용하지 않는 모든 맵을 플러시하면 multipath -ll아무것도 출력하지 않아야합니다.

또는 /dev/mapper/mpath0p1대신에 사용하십시오 /dev/cciss/c0d0p1.


이 출력이 무엇을 말하고 있는지 잘 모르겠습니다. 이것은 당신이 기대했던 결과를 보여줍니까? [ 이 의견 상자에 캐리지 리턴이 작동하지 않는 것 같습니다. ]# dmsetup table mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 mpath0p1: 0 3516162552 linear 253:0 63
TripSixes

1

문제 해결 프로세스와 관련하여 lsof 또는 퓨저를 시도 할 때 관련 파티션 만 확인하지 말고 디스크를 직접 확인하십시오. 이것은 신속하게 올바른 해결책을 제시했을 것입니다.


나쁜:

fuser /dev/cciss/c0d0p1

좋은:

fuser /dev/cciss/c0d0

나쁜:

lsof /dev/c0d0p1

좋은:

lsof /dev/ | grep c0d0

1

기존 SAN LUN을 새 서버로 복제 한 후이 문제가 발생했습니다. 내 해결책은 다음과 같습니다.

  • 유지 보수 모드로 들어가기
  • mount -o remount,rw /dev/sda1 (sda1은 문제가있는 곳입니다)
  • 삭제 / 이동 /etc/blkid/blkid.tab

이후 서버가 부팅되었습니다.


-2

내 자신의 경험에서 말하기. fstab도 확인하여 장치를 논리적 볼륨으로 마운트하려고 시도하거나 별명을 지정하지 않았거나 / etc / multipath / bindings를 사용하고 있는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.