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?
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.
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>.