# Panic, dmu_buf_hold_array



## gmanpsu (Oct 6, 2012)

Had a power loss several weeks ago, and since have not been able to get my FreeNAS box to work. I posted on the FreeNAS forums, with no such luck. I'm a newbie to FreeBSD/FreeNAS world, and I'll reference my original post for what I've done up to this point, and here is the panic code as well. I tried different OS's, swapped it to my primary PC with the same raid controller (raid says all drives and array are healthy). I'm at a loss of where to go next as I'm pretty ignorant (learning along the way sadly the hard way). 

If anyone can help it would greatly be appreciated!!



```
panic: solaris assert: 0 == dmu_buf_hold_array(os, object, offset, size, FALSE, FTAG, &numbufs,
 &dbp), file: /builds/i386/pcbsd-build90/fbsd-
source/9.0/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c line:779
cpuid = 1
```

Original FreeNAS forum post
http://forums.freenas.org/showthread.php?9064-ZFS-Panic&p=38633#post38633


----------



## Sebulon (Oct 9, 2012)

@gmanpsu

As you yourself stated in the FreeNAS thread, itÂ´s bad practice using a hardware RAID volume when creating the zpool, it kind of defeats the purpose.

Also I notice that the panic prints out "/builds/i386", which means youÂ´re running the 32-bit OS version. Have you tried using the 64-bit, "amd64" version? You need to if you want to bump up your RAM anyway, since 32-bit maxes out at 4GB and is less flexible at managing kernel memory in general. If all else fail, you could also try importing the pool read-only, just to make a complete backup and then start over:
`# zpool import -o readonly=on poolname`

/Sebulon


----------



## gmanpsu (Oct 12, 2012)

Thanks for the reply, I'll give it a shot this morning and see what happens. I've tried the readonly option before and have gotten pool is not available. I'll see how the 64 bit version works today though! Thanks again!


----------



## gmanpsu (Oct 12, 2012)

Okay was able to use mfsBSD - amd64 to boot and import my zpool in read only format. Was able to navigate to the mount point and all the files and directories are there. Again my ignorance in all of this, what is the best way for me to copy this data off of the drives onto ie an external hard drive that I can then start over with?


----------



## Sebulon (Oct 13, 2012)

@ gmanpsu

There are several ways, but if youÂ´re running a Live-CD system, like mfsBSD or FreeBSD-9.0 really havenÂ´t got that much to choose from to backup your data with. First you have to have the filesystems mounted somewhere, sounds like you got that step covered. Then you have to choose a way of getting the data out, like mount a USB-drive and do a local file copy from the mounted pool to the USB-drive. Then thereÂ´s NFS, if youÂ´d rather send it over your network to another machine that has space available. Or you can send your files out from the live system to another machine that has SSH running, or activate SSH on the live system and fetch them from somewhere else. Another cool feature of ZFS is send/recv. If you setup the USB-drive as a zpool, you can "send" your data from the original pool and "receive(recv)" it on the pool on the USB-drive. The best thing about that is that your data gets sent "as-is", block by block, and you can be sure that the data is exactly the same. It is even possible to send your data from the source pool to a target pool on another server on the network if the server has a zpool, SSH activated and enough space to take it.

So, whatÂ´s your preference? Local backup with a USB-drive, or remote backup with NFS or SSH? Or ZFS send/recv either locally or remotely?

/Sebulon


----------

