Frage CentOS denkt, dass die Festplatte beschäftigt ist, nicht mounten oder fsck kann


Ich bin ein langjähriger Benutzer und Fragesteller der ersten Zeit. Ich habe einen ganzen Tag damit verbracht, auf dieser und vielen anderen Seiten nach einer Lösung zu suchen, aber ich muss auf Hilfe um Hilfe bitten, um meine Situation zu lösen.

Verlauf: Unser HP Proliant, Centos 5.9-Server wurde gestern ausgeschaltet, ohne ordnungsgemäß heruntergefahren zu werden. Von diesem Punkt an befand sich die / home-Partition in einem Zustand, in dem wir sie nicht finden, mounten oder umounten können. umount gibt an, dass es nicht gemountet ist, aber mount / fsck gibt an, dass es belegt oder bereits geladen ist. Dies führte ursprünglich dazu, dass der Server nicht bootete. Wir haben schließlich die Festplatte / Partition aus / etc / fstab entfernt, so dass das Booten nicht fehlschlagen würde.

# 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?

Wie Sie sehen können, ist die Festplatte in keiner Weise montiert.

DF-Ausgabe:

# 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-Ausgabe:

# 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 
#

Fixiereinheit

# 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

Gemäß anderen Empfehlungen im Internet haben wir das Remote-Terminal von ILO3 verwendet, um von einer Centos LiveCD zu booten. Als wir das machten, konnten wir die Partition ohne Fehler oder Probleme mounten / unmounten, fsck. (dh: die Festplatte selbst ist in Ordnung).

Wir haben auch "debugfs" verwendet, um eine Inode-Löschung für den Journal-Inode <8> durchzuführen. fsck baute das Journal dann ohne Fehler neu auf. Auch hier konnten wir die Festplatte problemlos mounten / unmounten, wenn Sie in die LiveCD booten.

Als wir zur normalen Boot-Partition zurückwechseln, befinden wir uns wieder an der gleichen Stelle und können nicht mounten oder fsck, weil das Betriebssystem glaubt, dass die Partition ausgelastet ist.

Ich versuche zu verstehen, was sonst noch in Linux darauf hindeutet, dass diese Platte benutzt wird. Welche anderen Dienstprogramme können verwendet werden, um dies zu finden und zu löschen?

Jede Hilfe wird sehr geschätzt.


Zusätzliche Informationen, wie angefordert:

lsof und fuser on / home sowie show / home-Inhalte und Verzeichnisberechtigungen.

# 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
#

Das mount -o remount schlägt fehl, da diese Partition seit dem letzten Start nicht geladen wurde. (Dies war eine funktionierende Partition, seit der Server installiert wurde und zeigte dieses Problem erst nach dem harten Neustart gestern).

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

Ich könnte diese Partition wieder zu / etc / fstab hinzufügen und bei Bedarf neu booten.


2013/11/19 11:12 CST

dmsetup-Ausgabe:

# 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
#

Endgültige Lösung:

# 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

25
2017-11-19 15:29


Ursprung


Ausgezeichnetes Beispiel für eine gute erste Frage. - TheCleaner
Gute Frage! Es ist ein Ja wirklich Long Shot, aber haben Sie in Betracht gezogen, es zu versuchen mount -o remount /home? Außerdem würde ich prüfen, ob / home tatsächlich leer ist, wenn das Dateisystem nicht gemountet ist sollte nicht ein Problem sein, aber wer weiß?) und suchen Sie nach anwendbaren Nachrichten in den Systemprotokollen, einschließlich dmesg. - α CVn
Sie machen einen Teil der Festplatte. Haben Sie auch versucht, einen lsof / fuser von / home zu installieren, falls irgendetwas läuft, das den Mountpunkt betrifft? - Jenny D
Übrigens, exportieren Sie dieses Verzeichnis, z. über NFS? Wenn der NFS-Server vor dem Mounten des Verzeichnisses gestartet wird, kann dies dazu führen, dass Sie das Mounten des Verzeichnisses blockieren. - Jenny D
Was ist die Ausgabe von? lsof -n | grep /home ? AFAIK lsof / home sucht nach einem Prozess mit / home open, meldet jedoch keine Verwendung von Unterverzeichnissen. - Zoredache


Antworten:


Es wird wahrscheinlich von Device-Mapper verwendet.

Überprüfen Sie Ihre Geräte-Mapper-Tabelle mit dmsetup table. Wenn es dort ist, löschen Sie das Mapping mit dmsetup remove <name>.

Wenn nicht, suchen Sie nach Fehlern in dmesg auch.


# 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

Ah ah! Multipath hat die Festplatte beansprucht. Sie können sehen, indem Sie laufen multipath -ll.

Lauf: multipath -F um dann alle unbenutzten Karten zu löschen multipath -ll sollte nichts ausgeben.

Oder, einfach benutzen /dev/mapper/mpath0p1 anstatt /dev/cciss/c0d0p1.


14
2017-11-19 16:44



Ich bin mir nicht sicher, was diese Ausgabe mir sagt. Zeigt dies die Ausgabe, die Sie erwartet haben? [Mein Wagenrücklauf scheint in diesem Kommentarfeld nicht zu funktionieren.] # 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


In Bezug auf die Fehlersuche, beim Versuch, lsof oder Fuser, nicht nur gegen die relevante Partition zu überprüfen - direkt gegen die Festplatte zu überprüfen. Dies hätte Sie schnell zur richtigen Lösung geführt:


Schlecht:

fuser /dev/cciss/c0d0p1

Gut:

fuser /dev/cciss/c0d0

Schlecht:

lsof /dev/c0d0p1

Gut:

lsof /dev/ | grep c0d0

1
2017-07-31 14:07





Ich habe dies gerade nach dem Klonen einer vorhandenen SAN LUN auf einen neuen Server festgestellt. Meine Lösung war:

  • Wechseln Sie in den Wartungsmodus
  • mount -o remount,rw /dev/sda1 (wo sda1 ist, was auch immer du hast, mit)
  • Löschen / verschieben /etc/blkid/blkid.tab

Der Server wurde danach gestartet.


1
2017-11-11 05:53





Aus meinen eigenen Erfahrungen sprechen. Überprüfen Sie auch Ihre fstab, um sicherzustellen, dass Sie versuchen, das Gerät als sein logisches Volume und nicht den Alias, den Sie gaben oder aus / etc / multipath / bindings verwenden, zu mounten.


-2
2018-05-12 07:41