8.1. | How can I add my new hard disk to my FreeBSD system? |
See the Adding Disks section in the FreeBSD Handbook. | |
8.2. | How do I move my system over to my huge new disk? |
The best way is to reinstall the OS on the new disk, then move the user data over. This is highly recommended if you have been tracking -STABLE for more than one release, or have updated a release instead of installing a new one. You can install booteasy on both disks with boot0cfg(8), and dual boot them until you are happy with the new configuration. Skip the next paragraph to find out how to move the data after doing this. Alternatively, partition and label the new disk with either sade(8) or gpart(8). If the disks are MBR-formatted, you can also install booteasy on both disks with boot0cfg(8), so that you can dual boot to the old or new system after the copying is done. Now you have the new disk set up, and are ready to move
the data. Unfortunately, you cannot just blindly copy the
data. Things like device files (in
You should never use anything but dump(8) and
restore(8) to move the root file system. The
tar(1) command may work — then again, it may not.
You should also use dump(8) and restore(8) if you
are moving a single partition to another empty partition.
The sequence of steps to use
For example, if you are going to move root to
# newfs /dev/
# mount /dev/
# cd
# dump 0af - / | restore rf - Rearranging your partitions with # newfs /dev/
# mount /dev/
# cd
# dump 0af - / | restore rf -
# cd var
# dump 0af - /var | restore rf - To split a directory from its parent, say putting
# newfs /dev/
# newfs /dev/
# mount /dev/
# mkdir
# mount /dev/
# cd
# dump 0af - / | restore rf - You might prefer cpio(1), pax(1), tar(1) to dump(8) for user data. At the time of this writing, these are known to lose file flag information, so use them with caution. | |
8.3. | Which partitions can safely use Soft Updates? I have
heard that Soft Updates on |
Short answer: you can usually use Soft Updates safely on all partitions. Long answer: Soft Updates has two characteristics that may be undesirable on certain paritions. First, a Soft Updates partition has a small chance of losing data during a system crash. (The partition will not be corrupted; the data will simply be lost.) Second, Soft Updates can cause temporary space shortages. When using Soft Updates, the kernel can take up to thirty seconds to write changes to the physical disk. When a large file is deleted the file still resides on disk until the kernel actually performs the deletion. This can cause a very simple race condition. Suppose you delete one large file and immediately create another large file. The first large file is not yet actually removed from the physical disk, so the disk might not have enough room for the second large file. You get an error that the partition does not have enough space, although you know perfectly well that you just released a large chunk of space! When you try again mere seconds later, the file creation works as you expect. This has left more than one user scratching his head and doubting his sanity, the FreeBSD file system, or both. If a system should crash after the kernel accepts a chunk of data for writing to disk, but before that data is actually written out, data could be lost. This risk is extremely small, but generally manageable. These issues affect all partitions using Soft Updates. So, what does this mean for the root partition? Vital information on the root partition changes very rarely. If the system crashed during the thirty-second window after such a change is made, it is possible that data could be lost. This risk is negligible for most applications, but you should be aware that it exists. If your system cannot tolerate this much risk, do not use Soft Updates on the root file system!
Finally, dump(8) does not work in live mode (-L) on a filesystem, with Journaled Soft Updates (SU+J). | |
8.4. | Can I mount other foreign file systems under FreeBSD? |
FreeBSD supports a variety of other file systems.
FreeBSD also supports network file systems such as NFS (see
mount_nfs(8)), NetWare (see mount_nwfs(8)), and
Microsoft-style SMB file systems (see mount_smbfs(8)).
You can find ports based on FUSE ( | |
8.5. | How do I mount a secondary DOS partition? |
The secondary DOS partitions are found after
all the primary partitions. For
example, if you have an “E” partition as the
second DOS partition on the second SCSI drive, there will be
a device file for “slice 5” in
# mount -t msdosfs /dev/da1s5 /dos/e | |
8.6. | Is there a cryptographic file system for FreeBSD? |
Yes. You can use either gbde(8) or geli(8), see the Encrypting Disk Partitions section of the FreeBSD Handbook. | |
8.7. | How can I use the Windows NT® loader to boot FreeBSD? |
The general idea is that you copy the first sector of
your native root FreeBSD partition into a file in the
DOS/Windows NT® partition. Assuming you name that file
something like [boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS" If FreeBSD is installed on the same disk as the Windows NT®
boot partition simply copy
Warning:Do not simply copy
When the FreeBSD boot manager runs it records the last OS
booted by setting the active flag on the partition table
entry for that OS and then writes the whole 512-bytes of
itself back to the MBR so if you just copy
| |
8.8. | How do I boot FreeBSD and Linux® from LILO? |
If you have FreeBSD and Linux® on the same disk, just follow LILO's installation instructions for booting a non-Linux® operating system. Very briefly, these are: Boot Linux®, and add the following lines to
other=/dev/hda2
table=/dev/hda
label=FreeBSD (the above assumes that your FreeBSD slice is known to
Linux® as If FreeBSD resides on another disk, you need to add
other=/dev/dab4
table=/dev/dab
loader=/boot/chain.b
label=FreeBSD In some cases you may need to specify the BIOS drive number to the FreeBSD boot loader to successfully boot off the second disk. For example, if your FreeBSD SCSI disk is probed by BIOS as BIOS disk 1, at the FreeBSD boot loader prompt you need to specify: Boot: 1:da(0,a)/boot/kernel/kernel You can configure boot(8) to automatically do this for you at boot time. The Linux®+FreeBSD mini-HOWTO is a good reference for FreeBSD and Linux® interoperability issues. | |
8.9. | How do I boot FreeBSD and Linux® using GRUB? |
Booting FreeBSD using GRUB is very simple. Just add the
following to your configuration file
title FreeBSD 6.1
root (hd0,a)
kernel /boot/loaderWhere | |
8.10. | How do I boot FreeBSD and Linux® using BootEasy? |
Install LILO at the start of your Linux® boot partition instead of in the Master Boot Record. You can then boot LILO from BootEasy. If you are running Windows® and Linux® this is recommended anyway, to make it simpler to get Linux® booting again if you should need to reinstall Windows® (which is a Jealous Operating System, and will bear no other Operating Systems in the Master Boot Record). | |
8.11. | How do I change the boot prompt from
|
You can not do that with the standard boot manager
without rewriting it. There are a number of other boot
managers in the | |
8.12. | I have a new removable drive, how do I use it? |
If the drive already has a file system on it, you can use a command like this: # mount -t msdosfs /dev/da0s1 /mnt If the drive will only be used with FreeBSD systems it is better idea to stick a BSD file system on it, like UFS or ZFS. You will get long filename support, at least a 2X improvement in performance, and a lot more stability. If the drive will be used by other operating systems a more portable choice, such as msdosfs, is better. # dd if=/dev/zero of=/dev/da0 count=2
# gpart create -s GPT /dev/da0
# gpart add -t freebsd-ufs /dev/da0 Finally, create a new file system: # newfs /dev/da0p1 and mount it: # mount /dev/da0s1 /mnt It is a good idea to add a line
to /dev/da0p1 /mnt ufs rw,noauto 0 0 | |
8.13. | Why do I get Incorrect super block when mounting a CD-ROM? |
You have to tell mount(8) the type of the device that you want to mount. This is described in the Handbook section on optical media, specifically the section Using Data CDs. | |
8.14. | Why do I get Device not configured when mounting a CD-ROM? |
This generally means that there is no CD-ROM in the CD-ROM drive, or the drive is not visible on the bus. Please see the Using Data CDs section of the Handbook for a detailed discussion of this issue. | |
8.15. | Why do all non-English characters in filenames show up as “?” on my CDs when mounted in FreeBSD? |
Your CD-ROM probably uses the “Joliet” extension for storing information about files and directories. This is discussed in the Handbook chapter on creating and using CD-ROMs, specifically the section on Using Data CD-ROMs. | |
8.16. | I burned a CD under FreeBSD and now I can not read it under any other operating system. Why? |
You most likely burned a raw file to your CD, rather than creating an ISO 9660 file system. Take a look at the Handbook chapter on creating CD-ROMs, particularly the section on burning raw data CDs. | |
8.17. | How can I create an image of a data CD? |
This is discussed in the Handbook section on duplicating data CDs. For more on working with CD-ROMs, see the Creating CDs Section in the Storage chapter in the Handbook. | |
8.18. | Why can I not |
If you try to mount an audio CD, you will get an error
like cd9660: /dev/acd0c: Invalid
argument. This is because
| |
8.19. | How do I |
By default, mount(8) will attempt to mount the last
data track (session) of a CD. If you would like to load an
earlier session, you must use the | |
8.20. | How do I let ordinary users mount CD-ROMs, DVDs, USB drives, and other removable media? |
As # sysctl vfs.usermount=1 To make this persist across reboots, add the line
Users can only mount devices they have read
permissions to. To allow users to mount a device
permissions must be set in
For example, to allow users to mount the first USB drive add: # Allow all users to mount a USB drive.
own /dev/da0 root:operator
perm /dev/da00 0666 All users can now mount devices they could read onto a directory that they own: % mkdir
% mount -t msdosfs /dev/da0 Unmounting the device is simple: % umount Enabling Note:The device name used in the previous examples must be changed according to your configuration. | |
8.21. | The |
You need to understand what When a program is using a file, and you delete the file,
the file is not really removed from the file system until
the program stops using it. The file is immediately deleted
from the directory listing, however. You can see this
easily enough with a program such as
This situation is common on web servers. Many people
set up a FreeBSD web server and forget to rotate the log files.
The access log fills up Note that Soft Updates can delay the freeing of disk space; you might need to wait up to 30 seconds for the change to be visible! | |
8.22. | How can I add more swap space? |
In the Configuration and Tuning section of the Handbook, you will find a section describing how to do this. | |
8.23. | Why does FreeBSD see my disk as smaller than the manufacturer says it is? |
Disk manufacturers calculate gigabytes as a billion bytes each, whereas FreeBSD calculates them as 1,073,741,824 bytes each. This explains why, for example, FreeBSD's boot messages will report a disk that supposedly has 80 GB as holding 76,319 MB. Also note that FreeBSD will (by default) reserve 8% of the disk space. | |
8.24. | How is it possible for a partition to be more than 100% full? |
A portion of each UFS partition (8%, by default) is
reserved for use by the operating system and the
For more details, look up |
8.1.1. | What is the minimum amount of RAM one should have to run ZFS? |
A minimum of 4GB of RAM is required for comfortable usage, but individual workloads can vary widely. | |
8.1.2. | What is the ZIL and when does it get used? |
The ZIL ((ZFS intent log) is a write log used to implement posix write commitment semantics across crashes. Normally writes are bundled up into transaction groups and written to disk when filled (“Transaction Group Commit”). However syscalls like fsync(2) require a commitment that the data is written to stable storage before returning. The ZIL is needed for writes that have been acknowledged as written but which are not yet on disk as part of a transaction. The transaction groups are timestamped. In the event of a crash the last valid timestamp is found and missing data is merged in from the ZIL. | |
8.1.3. | Do I need a SSD for ZIL? |
By default, ZFS stores the ZIL in the pool with all the data. If your application has a heavy write load, storing the ZIL in a separate device that has very fast synchronous, sequential write performance can improve overall system. For other workloads, a SSD is unlikely to make much of an improvement. | |
8.1.4. | What is the L2ARC? |
The L2ARC is a read cache stored on a fast device such as an SSD. This cache is not persisent across reboots. Note that RAM is used as the first layer of cache and the L2ARC is only needed if there is insufficient RAM. L2ARC needs space in the ARC to index it. So, perversely, a working set that fits perfectly in the ARC will not fit perfectly any more if a L2ARC is used because part of the ARC is holding the L2ARC index, pushing part of the working set into the L2ARC which is slower than RAM. | |
8.1.5. | Is enabling deduplication advisable? |
Generally speaking, no. Deduplication takes up a significant amount of RAM and may slow down read and write disk access times. Unless one is storing data that is very heavily duplicated (such as virtual machine images, or user backups) it is possible that deduplication will do more harm than good. Another consideration is the inability to revert deduplication status. If data is written when deduplication is enabled, disabling dedup will not cause those blocks which were deduplicated to be replicated until they are next modified. Deduplication can also lead to some unexpected situations. In particular deleting files may become much slower. | |
8.1.6. | I can not delete or create files on my ZFS pool. How can I fix this? |
This could happen because the pool is 100% full. ZFS requires space on the disk to write transaction metadata. To restore the pool to a usable state, truncate a file you want to delete. % truncate -s 0 File truncation works because a new transaction is not started, new spare blocks are created instead. Note:On systems with additional ZFS dataset tuning, such as deduplication, the space may not be immediately available | |
8.1.7. | Does ZFS support TRIM for Solid State Drives? |
ZFS TRIM support was added to FreeBSD 10-CURRENT with revision r240868. ZFS TRIM support is not yet available on the -STABLE branches. ZFS TRIM is enabled by default, and can be turned
off by adding this line to
vfs.zfs.trim_disable=1 Note:ZFS TRIM may not work with all configurations, such as a ZFS filesystem on a GELI-backed device. |
This, and other documents, can be downloaded from http://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>.