5 Troubleshooting Journaling

The following section covers frequently asked questions regarding problems related to journaling.

5.1. I am getting kernel panics during periods of high disk activity. How is this related to journaling?
5.2. I made some mistake during configuration, and I cannot boot normally now. Can this be fixed some way?
5.3. Can I remove journaling and return to my standard file system with Soft Updates?

5.1. I am getting kernel panics during periods of high disk activity. How is this related to journaling?

The journal probably fills up before it has a chance to get committed (flushed) to disk. Keep in mind the size of the journal depends on the usage load, and not the size of the data provider. If your disk activity is high, you need a larger partition for the journal. See the note in the Understanding Journaling section.

5.2. I made some mistake during configuration, and I cannot boot normally now. Can this be fixed some way?

You either forgot (or misspelled) the entry in /boot/loader.conf, or there are errors in your /etc/fstab file. These are usually easy to fix. Press Enter to get to the default single user shell. Then locate the root of the problem:

# cat /boot/loader.conf

If the geom_journal_load entry is missing or misspelled, the journaled devices are never created. Load the module manually, mount all partitions, and continue with multi-user boot:

# gjournal load

GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
GEOM_JOURNAL: Journal ad0s1d clean.
GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
GEOM_JOURNAL: Journal ad0s1f clean.

# mount -a
# exit
(boot continues)

If, on the other hand, this entry is correct, have a look at /etc/fstab. You will probably find a misspelled or missing entry. In this case, mount all remaining partitions by hand and continue with the multi-user boot.

5.3. Can I remove journaling and return to my standard file system with Soft Updates?

Sure. Use the following procedure, which reverses the changes. The partitions you created for the journal providers can then be used for other purposes, if you so wish.

Login as root and switch to single user mode:

# shutdown now

Unmount the journaled partitions:

# umount /usr /var

Synchronize the journals:

# gjournal sync

Stop the journaling providers:

# gjournal stop ad0s1d.journal
# gjournal stop ad0s1f.journal

Clear journaling metadata from all the devices used:

# gjournal clear ad0s1d
# gjournal clear ad0s1f
# gjournal clear ad0s1g
# gjournal clear ad0s1h

Clear the file system journaling flag, and restore the Soft Updates flag:

# tunefs -J disable -n enable ad0s1d

tunefs: gjournal cleared
tunefs: soft updates set

# tunefs -J disable -n enable ad0s1f

tunefs: gjournal cleared
tunefs: soft updates set

Remount the old devices by hand:

# mount -o rw /dev/ad0s1d /var
# mount -o rw /dev/ad0s1f /usr

Edit /etc/fstab and restore it to its original state:

/dev/ad0s1f     /usr            ufs     rw      2       2
/dev/ad0s1d     /var            ufs     rw      2       2

Finally, edit /boot/loader.conf, remove the entry that loads the geom_journal module and reboot.

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.