OPNsense Forum

Archive => 23.7 Legacy Series => Topic started by: beneix on March 31, 2024, 05:41:39 PM

Title: Power cut --> dirty inode --> cleared inode, but how to fix netflow?
Post by: beneix on March 31, 2024, 05:41:39 PM
We had a power cut. My APC UPS decided that this was the time to start beeping continuously, probably due to an old battery that needs to be replaced. After I reconnected power, my APU2E4 with OPNSense would not start properly. I connected via serial console and saw the following in the eternal boot loop :

>>> Invoking backup script 'netflow'
panic: ufs_dirbad: /: bad dir ino 6250145 at offset 512: mangled entry


I rebooted into single user mode and ran the following:

root@:/ # fsdb /dev/gpt/rootfs
** /dev/gpt/rootfs
Editing file system `/dev/gpt/rootfs'
Last Mounted on /mnt
current inode: directory
I=2 MODE=40755 SIZE=1024
        BTIME=Mar 22 08:21:31 2022 [0 nsec]
        MTIME=Mar 31 14:59:14 2024 [717610000 nsec]
        CTIME=Mar 31 14:59:14 2024 [717610000 nsec]
        ATIME=Dec 18 20:12:01 2023 [0 nsec]
OWNER=root GRP=wheel LINKCNT=22 FLAGS=0 BLKCNT=8 GEN=3eb55a60
fsdb (inum: 2)> inode 6250145
current inode: directory
I=6250145 MODE=40750 SIZE=1024
        BTIME=Nov 26 19:06:09 2022 [668628000 nsec]
        MTIME=Mar 31 12:25:14 2024 [721933000 nsec]
        CTIME=Mar 31 12:25:14 2024 [721933000 nsec]
        ATIME=Mar 31 12:25:10 2024 [0 nsec]
OWNER=root GRP=wheel LINKCNT=2 FLAGS=0 BLKCNT=8 GEN=2e8cf21a
fsdb (inum: 6250145)> clri 6250145
fsdb (inum: 6250145)> quit

***** FILE SYSTEM STILL DIRTY *****
*** FILE SYSTEM MARKED DIRTY
*** BE SURE TO RUN FSCK TO CLEAN UP ANY DAMAGE
*** IF IT IS MOUNTED, RE-MOUNT WITH -u -o reload
root@:/ # fsck -y -t ufs /dev/gpt/rootfs
** /dev/gpt/rootfs
** SU+J Recovering /dev/gpt/rootfs

USE JOURNAL? yes

** Reading 33554432 byte journal from inode 4.

RECOVER? yes

** Building recovery table.
** Resolving unreferenced inode list.
** Processing journal entries.

WRITE CHANGES? yes


***** FILE SYSTEM IS CLEAN *****
** 197 journal records in 22016 bytes for 28.63% utilization
** Freed 10 inodes (0 dirs) 9 blocks, and 11 frags.

***** FILE SYSTEM MARKED CLEAN *****
root@:/ # exit


Now the system is up and running, but I assume I still need to fix the following issue that was showing in the boot read-out on the console:

>>> Invoking backup script 'netflow'
./var/netflow/: Can't create 'var/netflow': No such file or directory
./var/netflow/metadata.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_details_086400.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_000300.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_003600.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_086400.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/dst_port_000300.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/dst_port_003600.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/dst_port_086400.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_000030.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_000300.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_003600.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_086400.sqlite: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_details_086400.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_000300.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_003600.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/src_addr_086400.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/dst_port_000300.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/dst_port_003600.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/dst_port_086400.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_000030.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_000300.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_003600.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
./var/netflow/interface_086400.sqlite-journal: Failed to create dir 'var/netflow': No such file or directory
tar: Error exit delayed from previous errors.


What would be the best way to deal with this?