# Jails won't start after updating FreeBSD 9-STABLE



## olav (Jun 18, 2012)

I have a problem which I don't know how to solve. I updated 9-STABLE yesterday and now the jails on this server refuse to start. I get the following error message


```
KLD nullfs.ko: depends on kernel - not available or version mismatch
linker_load_file: Unsupported file type
KLD fdescfs.ko: depends on kernel - not available or version mismatch
linker_load_file: Unsupported file type
```

What could have gone wrong?


----------



## SirDice (Jun 18, 2012)

It looks like it's trying to load kernel modules from a jail. This is not possible.


----------



## Beeblebrox (Jun 18, 2012)

Is the FreeBSD version in the jails the same as the FreeBSD version on host? Meaning: Did you upgrade world and kernel in jails after upgrading host?


----------



## olav (Jun 18, 2012)

Yes I have updated the jails with this command: [cmd=]ezjail-admin update -i[/cmd]


----------



## Beeblebrox (Jun 18, 2012)

1. Assuming that you are trying to kldload those two modules from host side before starting the jails and
2. You have a custom (self-compiled) kernel;

I got a similar error once when I placed NFS-v3 client in my kernel and tried to kldload the NFS-v4 server. The syntax had changed going v3 -> v4 from something like NFS_SERVER -> NFSD.

Check /usr/sry/sys/amd64/conf/GENERIC. In FreeBSD 9* the syntax is NULLFS, for example. See if there is any change in syntax for your two services in your KERNCONF.


----------



## olav (Jun 18, 2012)

I can't find NULLFS in GENERIC
I will add it, recompile and try again.

In /usr/src/UPDATING I find something about nullfs

```
20120422:
        Now unix domain sockets behave "as expected" on nullfs(5). Previously
        nullfs(5) did not pass through all behaviours to the underlying layer,
        as a result if we bound to a socket on the lower layer we could connect
        only to the lower path; if we bound to the upper layer we could connect
        only to the upper path. The new behavior is one can connect to both the
        lower and the upper paths regardless what layer path one binds to.
```
Some something has been done in that area, but I couldn't find that information any helpful.


----------



## Beeblebrox (Jun 18, 2012)

If you are using GENERIC from 9-* and NOT 8-*, no need to add. Plus you can always kldload.

The problem I was describing is when you try to kldload nullfs.ko (a v9-* module) but in fact you have a different module setting in GENERIC (say for example FS_NULL from a previous version).


----------



## olav (Jun 18, 2012)

Manually adding them didn't work neither.

I don't think this is jail specific at all, because I can't kldload neither nullfs or fdescfs and a bunch of other modules (zfs, xfs, zlib)

The only FS modules I find in GENERIC are

```
PROCFS       # Process filesystem (requires PSEUDOFS)
PSEUDOFS     # Pseudo-filesystem framework
MSDOSFS      # MSDOS Filesystem
FFS          # Berkeley Fast Filesystem
NFSCL        # New Network Filesystem Client
NFSD         # New Network Filesystem Server
CD9660       # ISO 9660 Filesystem
```

Maybe I should try the stable mailing list.


----------



## Beeblebrox (Jun 19, 2012)

If you are unable to *kldload* modules on the host side (outside of jail) then the problem has nothing at all to do with jails. You would get that error regardless if you had jails set up or not.

I'm going to stick with my diagnosis of "version mismatch between kernel and modules" - either certain components in the kernel or some of the external modules are not at the version they should be. The mail list would probably be your best bet.


----------



## SirDice (Jun 19, 2012)

Beeblebrox said:
			
		

> I'm going to stick with my diagnosis of "version mismatch between kernel and modules" - either certain components in the kernel or some of the external modules are not at the version they should be.


I second that. Your kernel (modules) is/are most likely out of sync with the rest of the system.


----------

