panic: ufs_dirbad i restarty freeBSD
Transkrypt
panic: ufs_dirbad i restarty freeBSD
This page was exported from - Adam Kucza Export date: Thu Mar 2 23:15:23 2017 / +0000 GMT panic: ufs_dirbad i restarty freeBSD Dobry administrator zawsze i dok?adnie czyta logi, z akcentem na dok?adnie :). Kilka dni temu mia?em do?? ciekawy przypadek automatycznego restartu serwera na skutek wykonywania prostych polece?, np. find lub locate. Co ciekawsze, serwer "wywala?" si? zawsze na tym samym katalogu. Z pocz?tku my?la?em, ?e to wina us?ugi samba i udost?pnionych plików/katalogów, jednak po wnikliwym wczytaniu si? w logi systemowe, przekona?em si?, ?e by?em w b??dzie. B??d by? widoczny ju? w samym dmesg (logi systemowe) /dev/ad0s1: bad dir usr 25789343 AT OFFSET 1024: MANGLED ENTRY panic: ufs_dirbad: bad dir Z tego wynika, ?e mamy do czynienia z wadliwym katalogiem usr. Niby prosta rzecz, wchodzimy do single user mode (wtedy dyski/partycje nie s? zamontowane). Sprawdzamy tzw. mount point poleceniem cat /etc/fstab i traktujemy zamontowan? etykietk? (label) jako katalog /usr poleceniem fsck # fsck -y /dev/ad0s1f (u mnie /usr jest zamontowany jako ad0s1f). Na koniec skanowania powinno nam si? wy?wietli? ***** FILE SYSTEM MARKED CLEAN ***** Po ponownym uruchomieniu serwera sprawdzamy czy wszystko jest OK przyk?adowymi poleceniami # find / -type d -exec ls -ld {} ; # find / -type d -exec stat {} ; # find / -type d -exec touch {}/mydummyfilenamewhichshouldnotexist ; Najwyra?niej fsck nie poradzi?o sobie z tym dziwnym przypadkiem, poniewa? freeBSD nadal si? restartuje (panic) podczas wykonywania powy?szych testów. Na szcz??cie jest sposób aby to naprawi?, ale mo?e wyst?pi? sytuacja, ?e z uszkodzonego katalogu nie odzyskamy danych, aczkolwiek b?d?my dobrej my?li i miejmy pewno??, ?e mamy zrobion? wcze?niej kopi? zapasow? tych danych. Istot? rozwi?zania problemu jest naprawienie systemu plików i wyeliminowanie samoistnych restartów systemu freeBSD. B?d?c ponownie w trybie single user mode uruchamiamy narz?dzie fsdb (FileSystem DeBugger) # fsdb /dev/ad0s1f ** /dev/ad0s1f Editing file system '/dev/ad0s1f' Last mounted on /mnt/ad0s1f (...) fsdb (inum: 2)> Output as PDF file has been powered by [ Universal Post Manager ] plugin from www.ProfProjects.com | Page 1/3 | This page was exported from - Adam Kucza Export date: Thu Mar 2 23:15:23 2017 / +0000 GMT Teraz wpisujemy numer tzw. inode, który bierzemy z loga (u mnie by? to numer 25789343) fsdb (inum: 2)> inode 25789343 current inode: directory I= 25789343 MODE=40777 SIZE=1024 BTIME=May 9 12:52:12 2008 [0 nsec] MTIME=May 9 12:52:12 2008 [0 nsec] CTIME=May 9 12:52:12 2008 [0 nsec] ATIME=May 9 12:52:12 2008 [0 nsec] OWNER=root GRP=WHEEL LINKCNT=2 FLAGS=0 BLKCNT=4 GEN=157338b7 fsdb (inum: 25789343)> Nawet gdy stracimy dane, b?dziemy mieli pewno??, ?e problem zostanie usuni?ty. Poleceniem clri debuguj?c inode'a oznaczamy go jako b??dny fsdb (inum: 25789343)> clri 25789343 Wychodzimy z narz?dzia debugowania. fsdb (inum: 25789343)> quit **** FILE SYSTEM STILL DIRTY ***** *** FILE SYSTEM MARKED DIRTY *** BE SURE TO RUN FSDK TO CLEAN UP ANY DAMAGE *** IF IT WAS MOUNTED, RE-MOUNT WITH -u -o reload B?d?c nadal w single user mode uruchamiamy ponownie fsck # fsck -y /dev/ad0s1f ** /dev/ad0s1f ** Last Mounted on /usr ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames UNALLOCATED I= 25789343 OWNER=root MODE=0 SIZE=1024 MTIME May 9 12:52:12 2008 NAME=/_new2???? REMOVE=YES ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counters (...) Podczas skanowania pojawia?y si? jeszcze inne ró?ne b??dy, które naprawia?y si? automatycznie dzi?ki parametrowi -y, np. LINK COUNT DIR I=2 OWNER=root MODE=40777 Output as PDF file has been powered by [ Universal Post Manager ] plugin from www.ProfProjects.com | Page 2/3 | This page was exported from - Adam Kucza Export date: Thu Mar 2 23:15:23 2017 / +0000 GMT SIZE=1024MTIME=May 9 12:52:12 2008 COUNT 21 SHOULD BE 20 ADJUST? yes (...) FREE BLK COUNT(S) WRONG IN SUPERBLK SALVAGE? yes (...) SUMMARY INFORMATION BAD SAVLAGE? yes (...) BLK(S) MISSING IN BIT MAPS SALVAGE? yes Na ko?cu pojawi? si? komunikat ***** FILE SYSTEM MARKED CLEAN ***** ***** FILE SYSTEM WAS MODIFIED ***** Ale czy to wszystko? Zdecydowanie tak. W moim przypadku by?o du?o szcz??cia i wszystkie dane by?y na swoim miejscu. Po prostu fsck jakim? dziwnym trafem nie potrafi? poradzi? sobie z b??dnym inode o numerze 25789343. Oczywi?cie ponownie przetestowa?em find'em czy przypadkiem co? jeszcze nie zosta?o do naprawienia. Tym razem wszystko by?o jak nale?y. Jednak gdyby nadal by?y restarty typu panic: ufs_dirbad: bad dir, proponuj? powy?sze czynno?ci powtórzy? dla ka?dego z?ego inode'a. Pozdrawiam Output as PDF file has been powered by [ Universal Post Manager ] plugin from www.ProfProjects.com | Page 3/3 |