CentOS सोचता है कि डिस्क व्यस्त है, माउंट या fsck नहीं कर सकता


25

मैं एक लंबे समय से उपयोगकर्ता हूं, और पहली बार प्रश्न प्रस्तुतकर्ता हूं। मैंने एक पूरा दिन इसे और कई अन्य साइटों को हल करने के लिए खोजा है, लेकिन मुझे अपनी स्थिति को हल करने के लिए सहायता का अनुरोध करना चाहिए।

इतिहास: हमारे HP Proliant, Centos 5.9 सर्वर को कल उचित शटडाउन प्रक्रियाओं के बिना बंद कर दिया गया था। उस बिंदु से आगे, / होम विभाजन एक ऐसी स्थिति में रहा है जहां हम इसे fsck करने में असमर्थ हैं, इसे माउंट करें, या इसे umount करें। umount बताता है कि यह माउंट नहीं है, फिर भी माउंट / 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
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 / माउंट

# 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 रिमोट टर्मिनल का उपयोग सेंटोस लाइवसीडी से बूट करने के लिए किया है। जब हमने ऐसा किया, तो हम बिना किसी त्रुटि या समस्या के विभाजन को माउंट / अनमाउंट, fsck करने में सक्षम थे। (यानी: डिस्क ही ठीक है)।

हमने जर्नल इनोड <8> के लिए एक इनोड स्पष्ट करने के लिए "डिबगफ़्स" का भी उपयोग किया। fsck ने फिर त्रुटि के बिना पत्रिका का निर्माण किया। फिर से, हम LiveCD में बूट होने पर डिस्क को बिना किसी समस्या के माउंट / अनमाउंट करने में सक्षम थे।

जब हम सामान्य बूट पार्टीशन पर वापस आते हैं, तो हम उसी स्थान पर वापस आ जाते हैं, जो OS व्यस्त होने के कारण माउंट या fsck में असमर्थ होता है।

मैं यह समझना चाह रहा हूं कि लिनक्स के भीतर और क्या संकेत हो सकता है कि यह डिस्क उपयोग में है। इसे खोजने और इसे खाली करने के लिए अन्य उपयोगिताओं का क्या उपयोग किया जा सकता है?

कोई भी मदद बहुत ही सराहनीय होगी।


अतिरिक्त जानकारी, अनुरोध के रूप में :

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
#

माउंट -o रिमाउंट विफल हो जाता है, क्योंकि यह विभाजन हाल के अधिकांश बूट के बाद से माउंट नहीं किया गया है। (सर्वर स्थापित होने के बाद से यह एक काम करने वाला विभाजन था, और कल हार्ड रिबूट के बाद ही यह समस्या दिखाई दी)।

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

मैं इस विभाजन को / etc / fstab में पुनः जोड़ सकता हूं, और यदि आवश्यक हो तो रिबूट कर सकता हूं।


2013/11/19 11:12 पूर्वाह्न सीएसटी

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
एक अच्छा पहली बार सवाल का उत्कृष्ट उदाहरण।
क्लेअनर

2
अच्छा प्रश्न! यह वास्तव में लंबा शॉट है, लेकिन क्या आपने प्रयास करने पर विचार किया है mount -o remount /home? इसके अलावा, मैं यह सुनिश्चित करने के लिए जांच करूंगा कि फ़ाइल सिस्टम माउंट नहीं होने पर / घर वास्तव में खाली है (जो एक समस्या नहीं होनी चाहिए , लेकिन कौन जानता है?) और सिस्टम लॉग में किसी भी लागू संदेश की तलाश करें, जिसमें शामिल हैं dmesg
बजे एक CVn

2
आप डिस्क का एक lsof करते हैं। क्या आपने एलएसओएफ / फ्यूज़र / होम के साथ-साथ कुछ भी करने की कोशिश की है, जिसमें कुछ भी चल रहा है जो माउंट पॉइंट को प्रभावित करता है?
जेनी डी का कहना है कि

1
वैसे, क्या आप किसी भी संयोग से उस निर्देशिका को निर्यात कर रहे हैं, जैसे nfs के माध्यम से? यदि निर्देशिका को माउंट करने से पहले nfs-server शुरू किया जाता है, तो यह आपको माउंट करने से रोक सकता है।
जेनी डी का कहना है कि मोनिका

1
का आउटपुट क्या है lsof -n | grep /home? AFAIK lsof / home / होम ओपन के साथ एक प्रक्रिया की तलाश करता है, लेकिन उपनिर्देशिकाओं के उपयोग की रिपोर्ट नहीं करता है।
16

जवाबों:


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
ट्रिपसिक्सज

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 को भी जांचें, यह सुनिश्चित करने के लिए कि आप डिवाइस को उसके तार्किक आयतन के रूप में माउंट करने का प्रयास कर रहे हैं न कि आपके द्वारा दिए गए उपनाम या बंद / etc / multipath / बाइंडिंग का उपयोग कर रहे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.