Ich bin ein langjähriger Benutzer und erstmaliger Fragesteller. Ich habe einen ganzen Tag damit verbracht, diese und viele andere Websites nach einer Lösung zu durchsuchen, aber ich muss um Hilfe bitten, um meine Situation zu lösen.
Verlauf: Unser HP Proliant Centos 5.9 Server wurde gestern ohne ordnungsgemäße Abschaltprozeduren ausgeschaltet. Von diesem Zeitpunkt an war die / home-Partition in einem Zustand, in dem es nicht möglich ist, sie zu überprüfen, bereitzustellen oder die Bereitstellung aufzuheben. umount gibt an, dass es nicht gemountet ist, mount / fsck zeigt jedoch an, dass es ausgelastet oder bereits gemountet ist. Dies führte ursprünglich dazu, dass der Server nicht gestartet wurde. Wir haben schließlich die Platte / Partition aus / etc / fstab entfernt, damit der Start nicht fehlschlägt.
# 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 gemountet.
df ausgang:
# 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
Ausgabe mounten:
# 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 ILO3 Remote Terminal zum Booten von einer Centos LiveCD verwendet. Als wir dies taten, konnten wir die Partition ohne Fehler oder Probleme mounten / unmounten, fsck. (dh: die Festplatte selbst ist in Ordnung).
Wir haben auch "debugfs" verwendet, um einen Inode-Clear für den Journal-Inode <8> durchzuführen. fsck hat das journal dann fehlerfrei neu erstellt. Auch hier konnten wir die Festplatte beim Booten auf der LiveCD problemlos ein- und aushängen.
Als wir zur normalen Boot-Partition zurückgekehrt sind, befinden wir uns wieder am selben Ort und können weder mounten noch fscken, da das Betriebssystem davon ausgeht, dass die Partition ausgelastet ist.
Ich versuche zu verstehen, was in Linux sonst noch bedeuten könnte, dass diese Festplatte verwendet 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 auf Anfrage :
lsof und fuser on / home sowie das Anzeigen von / home-Inhalten 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
#
Die erneute Bereitstellung von mount -o schlägt fehl, da diese Partition seit dem letzten Start nicht bereitgestellt wurde. (Dies war eine funktionierende Partition, da der Server installiert wurde und dieses Problem erst nach dem gestrigen Neustart auftrat.)
# mount -o remount -t ext3 /dev/cciss/c0d0p1 /home
mount: /home not mounted already, or bad option
Ich könnte diese Partition zu / etc / fstab hinzufügen und bei Bedarf neu starten.
19.11.2013 11:12 Uhr 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
mount -o remount /home
? Außerdem würde ich überprüfen, ob / home tatsächlich leer ist, wenn das Dateisystem nicht angehängt ist (das sollte kein Problem sein, aber wer weiß?) Und in den Systemprotokollen nach zutreffenden Meldungen suchen, einschließlichdmesg
.lsof -n | grep /home
? AFAIK lsof / home sucht nach einem Prozess mit / home open, meldet jedoch keine Verwendung von Unterverzeichnissen.Antworten:
Es wird wahrscheinlich von Device-Mapper verwendet.
Überprüfen Sie Ihre Device-Mapper-Tabelle mit
dmsetup table
. Wenn es dort drin ist, löschen Sie das Mapping mitdmsetup remove <name>
.Wenn nicht, suchen Sie auch nach Fehlern in
dmesg
.Ah ah! Multipath hat die Festplatte beansprucht. Sie können durch Laufen sehen
multipath -ll
.Ausführen:
multipath -F
um alle nicht verwendeten Karten zu löschen,multipath -ll
sollte nichts ausgegeben werden.Oder verwenden Sie einfach
/dev/mapper/mpath0p1
statt/dev/cciss/c0d0p1
.quelle
# 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
Prüfen Sie in Bezug auf die Fehlerbehebung beim Testen von lsof oder fuser nicht nur die betreffende Partition, sondern direkt die Festplatte. Dies hätte Sie schnell zu der richtigen Lösung geführt:
Schlecht:
Gut:
Schlecht:
Gut:
quelle
Ich bin gerade auf dieses Problem gestoßen, nachdem ich eine vorhandene SAN-LUN auf einen neuen Server geklont habe. Meine Lösung war:
mount -o remount,rw /dev/sda1
(wo sda1 ist was auch immer Sie haben Problem mit)/etc/blkid/blkid.tab
Der Server wurde anschließend gestartet.
quelle
Ich spreche aus meinen eigenen Erfahrungen. Überprüfen Sie auch Ihre fstab, um sicherzustellen, dass Sie versuchen, das Gerät als logisches Volume und nicht als Alias bereitzustellen, das Sie angegeben haben oder das off / etc / multipath / bindings verwendet.
quelle