CentOS вважає, що диск зайнятий, не може його монтувати чи fsck


25

Я давній користувач та перший, хто подає запитання. Я витратив цілий день на пошук цього та багатьох інших сайтів, щоб знайти рішення, але я повинен вдатися до прохання про допомогу, щоб вирішити свою ситуацію.

Історія: Наш сервер HP Proliant, Centos 5.9 вимкнувся вчора без належних процедур відключення. З цього моменту розділ / home перебуває у стані, коли ми не в змозі його збити, змонтувати чи вимкнути. 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)

/ тощо / 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

/ тощо / 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, розділ без помилок чи проблем. (тобто: сам диск добре).

Ми також використовували "налагодження", щоб виконати очищення inode для журналу Inode <8>. fsck потім відновлював журнал без помилок. Знову ж таки, нам вдалося змонтувати / відключити диск без проблем під час завантаження на LiveCD.

Коли ми повернулися до звичайного завантажувального розділу, ми знову в тому самому місці, не в змозі встановити або fsck через те, що ОС вважає, що розділ зайнятий.

Я хочу зрозуміти, що ще в Linux може свідчити про те, що цей диск використовується. Які ще утиліти можна використовувати, щоб знайти це та очистити?

Будь-яка допомога дуже вдячна.


Додаткова інформація за запитом :

lsof і fuser on / 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 не працює, оскільки цей розділ не був змонтований з часу останнього завантаження. (Це був робочий розділ з моменту встановлення сервера. Ця проблема показала лише після вчорашнього перезавантаження).

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

Я можу повторно додати цей розділ до / etc / fstab і, якщо потрібно, перезавантажити.


19.11.2013 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 диска. Ви також спробували зробити lsof / fuser з / home, якщо щось працює, що впливає на точку кріплення?
Дженні Д каже, що повернемо Моніку

1
До речі, ви випадково експортуєте цей каталог, наприклад, через nfs? Якщо nfs-сервер запускається перед монтажем каталогу, він може заблокувати його монтування.
Дженні Д каже, що повернемо Моніку

1
Який вихід lsof -n | grep /home? AFAIK lsof / home шукає процес з / home open, але не повідомляє про використання підкаталогів.
Зоредаче

Відповіді:


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 -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, не перевіряйте лише відповідний розділ - перевіряйте безпосередньо диск. Це швидко спрямувало б вас до правильного рішення:


Погано:

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, щоб переконатися, що ви намагаєтесь встановити пристрій як його логічний об'єм, а не псевдонім, який ви дали або використовуєте off / etc / multipath / bindings.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.