CentOS pensa che il disco sia occupato, non riesca a montare o fsck


25

Sono un utente di vecchia data e mittente di domande per la prima volta. Ho trascorso un'intera giornata alla ricerca di questa e di molti altri siti per trovare una soluzione, ma devo ricorrere alla richiesta di assistenza per risolvere la mia situazione.

Storia: il nostro server HP Proliant, Centos 5.9 è stato spento ieri senza le procedure di spegnimento appropriate. Da quel momento in poi, la partizione / home è stata in uno stato in cui non siamo in grado di bloccarla, montarla o smontarla. umount afferma che non è montato, tuttavia mount / fsck indica che è occupato o già montato. Ciò originariamente impediva l'avvio del server. Alla fine abbiamo rimosso il disco / partizione da / etc / fstab in modo che l'avvio non fallisse.

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

Come puoi vedere, il disco non è montato in alcun modo.

uscita 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

montaggio uscita:

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

fusore

# 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

Per altri consigli sul Web, abbiamo utilizzato il Terminale remoto ILO3 per avviare un LiveCD Centos. Quando lo abbiamo fatto, siamo stati in grado di montare / smontare, fsck, la partizione senza errori o problemi. (cioè: il disco stesso va bene).

Abbiamo anche usato "debugfs" per eseguire un inode clear per il Journal Inode <8>. fsck ha quindi ricostruito il diario senza errori. Ancora una volta, siamo stati in grado di montare / smontare il disco senza problemi durante l'avvio nel LiveCD.

Quando siamo tornati alla normale partizione di avvio, siamo di nuovo nello stesso posto, incapaci di montare o fsck a causa del sistema operativo che crede che la partizione sia occupata.

Sto cercando di capire cos'altro potrebbe indicare che questo disco è in uso all'interno di Linux. Quali altri programmi di utilità possono essere utilizzati per trovare questo e cancellarlo?

Qualsiasi aiuto è molto apprezzato.


Informazioni aggiuntive, come richiesto :

lsof e fuser su / home, insieme a mostrare / home content e permessi di directory.

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

Il mount -o remount non riesce, poiché questa partizione non è stata montata dall'avvio più recente. (Questa era una partizione funzionante dall'installazione del server e ha mostrato questo problema solo dopo il riavvio forzato di ieri).

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

Potrei aggiungere nuovamente questa partizione a / etc / fstab e riavviare se necessario.


19/11/2013 alle 11:12 CST

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

Soluzione finale:

# 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
Ottimo esempio di una buona domanda per la prima volta.
TheCleaner,

2
Buona domanda! È un tiro davvero lungo, ma hai pensato di provare mount -o remount /home? Inoltre, vorrei verificare che / home sia effettivamente vuoto quando il file system non è montato (che non dovrebbe essere un problema, ma chi lo sa?) E cercare eventuali messaggi applicabili nei registri di sistema, incluso dmesg.
un CVn

2
Fai una piccola parte del disco. Hai provato a fare anche un lsof / fuser di / home, nel caso in cui qualcosa in esecuzione influenzi il punto di montaggio?
Jenny D dice di reintegrare Monica il

1
A proposito, stai per caso esportando quella directory, ad esempio via nfs? Se il server nfs viene avviato prima di montare la directory, potrebbe bloccarti durante il montaggio.
Jenny D dice di reintegrare Monica il

1
Qual è l'output di lsof -n | grep /home? AFAIK lsof / home cerca un processo con / home aperto, ma non segnala l'utilizzo di sottodirectory.
Zoredache,

Risposte:


16

Probabilmente è in uso da Device Mapper.

Controlla la tabella del tuo dispositivo mappatore utilizzando dmsetup table. Se è lì, cancella la mappatura con dmsetup remove <name>.

In caso contrario, cerca anche gli errori 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

Ah ah! multipath ha rivendicato il disco. Puoi vedere correndo multipath -ll.

Esegui: multipath -Fper svuotare tutte le mappe inutilizzate, non multipath -lldovrebbe essere visualizzato nulla.

Oppure, basta usare /dev/mapper/mpath0p1invece di /dev/cciss/c0d0p1.


Non sono sicuro di cosa mi stia dicendo questo risultato. Questo mostra l'output che ti aspettavi? [ Il ritorno della mia carrozza non sembra funzionare in questa casella di commento .. ]# 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

In relazione al processo di risoluzione dei problemi, quando si tenta lsof o fuser, non solo verificare la partizione pertinente, ma verificare direttamente il disco. Questo rapidamente ti avrebbe indirizzato alla soluzione corretta:


Male:

fuser /dev/cciss/c0d0p1

Buono:

fuser /dev/cciss/c0d0

Male:

lsof /dev/c0d0p1

Buono:

lsof /dev/ | grep c0d0

1

L'ho appena riscontrato dopo aver clonato un SAN LUN esistente su un nuovo server. La mia soluzione era:

  • Entra in modalità manutenzione
  • mount -o remount,rw /dev/sda1 (dove sda1 è qualunque cosa tu abbia problemi con)
  • Elimina / mossa /etc/blkid/blkid.tab

Il server si è avviato successivamente.


-2

Parlando dalle mie stesse esperienze. Controlla anche il tuo fstab, per assicurarti di provare a montare il dispositivo come volume logico e non l'alias che hai dato o stai usando off / etc / multipath / bind.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.