Mounting ufs on linux
Unfortunately the UFS driver in the Linux 2.0.xx kernels do not include support for FreeBSD. When you try to mount a FreeBSD filesystem, you just get some error messages (the filesystem actually gets mounted, but you cannot do anything with it.) This problem has been solved in the newer Linux kernels (version 2.1.87 and higher.)
Now you have to build a new kernel with support for the U2FS filesystem and BSD disklabels. See section Installing and preparing Linux for more information on this. You can leave out UFS filesystem support from the kernel when you use U2FS.
When you have installed the new kernel, you can mount your UFS filesystems (all the partitions in the FreeBSD slice except the swap partition) with a command like this:
You should use a command like
if you use a Linux kernel version 2.1.87 or higher. From Linux kernel version 2.1.112 you must add -o ufstype=44bsd to the command like this:
mount -t ufs -o ufstype=44bsd /dev/hda8 /mnt
The UFS (and U2FS) driver is read-only. That is; you can read from the UFS filesystems but you cannot write to them. An experimental read-write UFS driver has replaced the read-only driver in Linux kernels version 2.1.112 and higher; writing to FreeBSD partitions is supported from version 2.1.127.
To mount ext2fs filesystems under FreeBSD, you first have to build a new kernel with ext2fs support. Read the FreeBSD handbook to learn how to do that. Put the line
When you have booted with the new kernel, you can mount an ext2fs filesystem by giving a command like:
mount -t ext2fs /dev/wd0s3 /mnt
Due to a bug in FreeBSD 2.2.8 and earlier you will have to unmount all ext2fs filesystems before you shut down FreeBSD if you are using these any of these versions. If you shut down FreeBSD with an ext2fs filesystem mounted, FreeBSD cannot sync the UFS filesystems. This results in fsck being run the next time FreeBSD is booted. You can work around this bug by putting the line:
Mounting ufs on linux
The mount utility attaches a ufs file system to the file system hierarchy at the mount_point , which is the pathname of a directory. If mount_point has any contents prior to the mount operation, these are hidden until the file system is unmounted.
The ufs file system supports direct mounting of files containing the file system as well as block devices. See mount (1M) and lofiadm (1M).
If mount is invoked with special or mount_point as the only arguments, mount will search /etc/vfstab to fill in the missing arguments, including the specific_options . See mount (1M).
If special and mount_point are specified without any specific_options , the default is rw .
If the directory on which a file system is to be mounted is a symbolic link, the file system is mounted on the directory to which the symbolic link refers, rather than on top of the symbolic link itself.
OPTIONS
See mount (1M) for the list of supported generic_options .
The following options are supported:
Specify ufs file system specific options in a comma-separated list with no intervening spaces. If invalid options are specified, a warning message is printed and the invalid options are ignored. The following options are available:
By default, writing access time updates to the disk may be deferred ( dfratime ) for the file system until the disk is accessed for a reason other than updating access times. nodfratime disables this behavior.
If power management is enabled on the system, do not set nodfratime unless noatime is also set. If you set nodfratime without setting noatime , the disk is spun up every time a file within a file system on the disk is accessed — even if the file is not modified.
If forcedirectio is specified and supported by the file system, then for the duration of the mount, forced direct I/O will be used. If the filesystem is mounted using forcedirectio , data is transferred directly between user address space and the disk. If the filesystem is mounted using noforcedirectio , data is buffered in kernel address space when data is transferred between user address space and the disk. forcedirectio is a performance option that is of benefit only in large sequential data transfers. The default behavior is noforcedirectio .
If global is specified and supported on the file system, and the system in question is part of a cluster, the file system will be globally visible on all nodes of the cluster. If noglobal is specified, the mount will not be globally visible. The default behavior is noglobal .
Allow (do not allow) keyboard interrupts to kill a process that is waiting for an operation on a locked file system. The default is intr .
If nolargefiles is specified and supported by the file system, then for the duration of the mount it is guaranteed that all regular files in the file system have a size that will fit in the smallest object of type off_t supported by the system performing the mount. The mount will fail if there are any files in the file system not meeting this criterion. If largefiles is specified, there is no such guarantee. The default behavior is largefiles .
If nolargefiles is specified, mount will fail for ufs if the file system to be mounted has contained a large file (a file whose size is greater than or equal to 2 Gbyte) since the last invocation of fsck on the file system. The large file need not be present in the file system at the time of the mount for the mount to fail; it could have been created previously and destroyed. Invoking fsck (see fsck_ufs (1M)) on the file system will reset the file system state if no large files are present. After invoking fsck , a successful mount of the file system with nolargefiles specified indicates the absence of large files in the file system; an unsuccessful mount attempt indicates the presence of at least one large file.
If logging is specified, then logging is enabled for the duration of the mounted file system. Logging is the process of storing transactions (changes that make up a complete UFS operation) in a log before the transactions are applied to the file system. Once a transaction is stored, the transaction can be applied to the file system later. This prevents file systems from becoming inconsistent, therefore reducing the possibility that fsck might run. And, if fsck is bypassed, logging generally reduces the time required to reboot a system.
The default behavior is logging for all UFS file systems.
The log is allocated from free blocks in the file system, and is sized approximately 1 Mbyte per 1 Gbyte of file system, up to a maximum of 64 Mbytes.
Logging is enabled on any UFS file system, including root ( / ), except under the following conditions: o When logging is specifically disabled. o If there is insufficient file system space for the log. In this case, the following message is displayed and file system is still mounted:
# mount /dev/dsk/c0t4d0s0 /mnt /mnt: No space left on device Could not enable logging for /mnt on /dev/dsk/c0t4d0s0.
The log created by UFS logging is continually flushed as it fills up. The log is totally flushed when the file system is unmounted or as a result of the lockfs -f command.
Mount the file system without making an entry in /etc/mnttab .
By default, the file system is mounted with normal access time ( atime ) recording. If noatime is specified, the file system will ignore access time updates on files, except when they coincide with updates to the ctime or mtime . See stat (2). This option reduces disk activity on file systems where access times are unimportant (for example, a Usenet news spool).
noatime turns off access time recording regardless of dfratime or nodfratime .
The POSIX standard requires that access times be marked on files. -noatime ignores them unless the file is also modified.
By default, Access Control Lists (ACLs) are supported on a mounted UFS file system. Use this option to disallow the setting or any modification of an ACL on a file within a mounted UFS file system. See getfacl (1) for background on ACLs.
This option specifies the action that UFS should take to recover from an internal inconsistency on a file system. Specify action as panic , lock , or umount . These values cause a forced system shutdown, a file system lock to be applied to the file system, or the file system to be forcibly unmounted, respectively. The default is panic .
Quotas are turned on for the file system.
Remounts a file system with a new set of options. All options not explicitly set with remount revert to their default values.
Read-write with quotas turned on. Equivalent to rw, quota .
Overlay mount. Allow the file system to be mounted over an existing mount point, making the underlying file system inaccessible. If a mount is attempted on a pre-existing mount point without setting this flag, the mount will fail, producing the error «device busy».
EXAMPLES
Example 1 Turning Off (and On) Logging
The following command turns off logging on an already mounted file system. The subsequent command restores logging.
# mount -F ufs -o remount,nologging /export # (absence of message indicates success) # mount -F ufs -o remount,logging /export
In the preceding commands, the -F ufs option is not necessary.
FILES
table of mounted file systems
list of default parameters for each file system
ATTRIBUTES
See attributes (5) for descriptions of the following attributes:
|
SEE ALSO
NOTES
Since the root ( / ) file system is mounted read-only by the kernel during the boot process, only the remount option (and options that can be used in conjunction with remount ) affect the root ( / ) entry in the /etc/vfstab file.
Index
Заметки сисадмина
Linux: Монтирование разделов FreeBSD с правильной кодировкой.
Поставил я себе ALT Linux, решил перекинуть некоторые нужные вещи с другого винта с freebsd, но тут, как обычно бывает, оказались грабли. Первая проблема — mount при монтировании ufs не может автоматически определить тип файловой системы, т.к. существуют различные её реализации и не все являются документированными. Но это легко решается прочтением манов:
mount -r -t ufs -o ufstype=ufs2 /dev/sdb9 /mnt/freebsd_user
Надо сказать, что опций монтирования ufs всего две — это тип ufs и реакция на ошибку. Да и реакция на ошибку может только либо панику вызывать, либо выводить сообщение о самой ошибке на консоль, хотя самих параметров больше описано.
Если кто-то не использовал кириллицу, в разделах freebsd, то на этом можно закончить. Если нет — то нам теперь понадобится convmvfs. В ALT Linux можно установить так:
# convmvfs /mnt/freebsd_user_fixed -o allow_other -o srcdir=/mnt/freebsd_user -o icharset=koi8-r -o ocharset=utf-8
Опция -o allow_other открывает доступ к новой файловой системе обычным пользователям. В принципе, с помощью convmvfs в linux можно монтировать с перекодировкой любые другие папки, не только разделы ufs.