0204-0206.html

来自「linux-unix130.linux.and.unix.ebooks130 l」· HTML 代码 · 共 289 行

HTML
289
字号


<HTML>

<HEAD>

<TITLE>Developer.com - Online Reference Library - 0672311739:RED HAT LINUX 2ND EDITION:Filesystems, Disks, and Other Devices</TITLE>

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<SCRIPT>
<!--
function displayWindow(url, width, height) {
        var Win = window.open(url,"displayWindow",'width=' + width +
',height=' + height + ',resizable=1,scrollbars=yes');
}
//-->
</SCRIPT>
</HEAD>

 -->




<!-- ISBN=0672311739 //-->

<!-- TITLE=RED HAT LINUX 2ND EDITION //-->

<!-- AUTHOR=DAVID PITTS ET AL //-->

<!-- PUBLISHER=MACMILLAN //-->

<!-- IMPRINT=SAMS PUBLISHING //-->

<!-- PUBLICATION DATE=1998 //-->

<!-- CHAPTER=11 //-->

<!-- PAGES=0195-0228 //-->

<!-- UNASSIGNED1 //-->

<!-- UNASSIGNED2 //-->









<P><CENTER>

<a href="0201-0203.html">Previous</A> | <a href="../ewtoc.html">Table of Contents</A> | <a href="0207-0209.html">Next</A>

</CENTER></P>



<A NAME="PAGENUM-204"><P>Page 204</P></A>













<P>The last two filesystems are special; the first

(/proc) is a special filesystem provided by the

kernel as a way of providing information about the system to user programs. The information

in the /proc filesystem is used in order to make utilities such as

ps, top, xload, free, netstat, and so on work. Some of the &quot;files&quot; in

/proc are really enormous (for example,

/proc/kcore) but don't worry&#151;all the information in the

/proc filesystem is generated on-the-fly by the

Linux kernel as you read it; no disk space is wasted. You can tell that they are not real files because,

for example, root can't give them away with chown.

</P>









<P>The final &quot;filesystem&quot; isn't, in fact, a filesystem at all; it is an entry that indicates a disk

partition used as swap space. Swap partitions are used to implement virtual memory. Files can

also be used for swap space. The names of the swap files go in the first column where the

device name usually goes.

</P>









<P>The two numeric columns on the right relate to the operation of the

dump and fsck commands, respectively. The dump command compares the number in column five (the

dump interval) with the number of days since that filesystem was last backed up so that it can inform the

system administrator that the filesystem needs to be backed up. Other backup software&#151;for

example, Amanda&#151;can also use this field for the same purpose. (Amanda can be found at the URL

<a href="http://www.cs.umd.edu/projects/amanda/amanda.html">http://www.cs.umd.edu/projects/amanda/amanda.html</A>

.) Filesystems without a dump interval field are assumed to have a dump interval of zero, denoting &quot;never dump.&quot; For more

information, see the manual page for dump.

</P>









<P>The sixth column is the fsck pass and indicates which filesystems can be checked in parallel

at boot time. The root filesystem is always checked first, but after that, separate drives can

be checked simultaneously, Linux being a multitasking operating system. There is no point,

however, in checking two filesystems on the same hard drive at the same time, because this

would result in lots of extra disk head movement and wasted time. All the filesystems that have

the same pass number are checked in parallel, from 1 upward. Filesystems with a 0 or missing

pass number (such as the floppy and CD-ROM drives) are not checked at

all.

</P>









<H3><A NAME="ch11_ 9">

Creating New Filesystems

</A></H3>









<P>When you install Red Hat Linux, the installation process makes some new filesystems and

sets the system up to use them. When you later come to set up new filesystems under Linux,

you will be coming to it for the first time.

</P>









<P>Many operating systems don't distinguish between the preparation of the device's surface

to receive data (formatting) and the building of new filesystems. Linux does distinguish

between the two, principally because only floppy disks need formatting in any case, and also

because Linux offers as many as half a dozen different filesystems that can be created (on any

block device). Separately providing the facility of formatting floppy disks in each of these

programs would be poor design and would require you to learn a different way of doing it for each

kind of new filesystem. The process of formatting floppy disks is dealt with separately (see the

section &quot;Floppy Disks,&quot; later in this chapter).

</P>



<A NAME="PAGENUM-205"><P>Page 205</P></A>













<P>Filesystems are initially built by a program that opens the block device and writes some

structural data to it so that, when the kernel tries to mount the filesystem, the device contains

the image of a pristine filesystem. This means that both the kernel and the program used to

make the filesystem must agree on the correct filesystem structure.

</P>









<P>Linux provides a generic command, mkfs, that enables you to make a filesystem on a

block device. In fact, because UNIX manages almost all resources with the same set of

operations, mkfs can be used to generate a filesystem inside an ordinary file! Because this is unusual,

mkfs asks for confirmation before proceeding. When this is done, you can even mount the

resulting filesystem using the loop device (see the section &quot;Mounting Filesystems on Files,&quot; later in

this chapter).

</P>









<P>Because of the tremendous variety of filesystems available, almost all the work of building

the new filesystem is delegated to a separate program for each; however, the generic

mkfs program provides a single interface for invoking them all. It's not uncommon to pass options to the

top-level mkfs (for example, -V to make it show what commands it executes or

-c to make it check the device for bad blocks). The generic

mkfs program also enables you to pass options to

the filesystem-specific mkfs. There are many of these filesystem-dependent options, but most

of them have sensible defaults, and you normally would not want to change them. The only

options you might want to pass to mke2fs, which builds

ext2 filesystems, are -m and -i. The -m option specifies how much of the filesystem is reserved for root's use (for example, for

working space when the system disk would otherwise have filled completely). The

-i option is more rarely exercised and is used for setting the balance between inodes and disk blocks; it is

related to the expected average file size. As stated previously, the defaults are reasonable for most

purposes, so these options are used only in special circumstances:

</P>





<!-- CODE //-->

<PRE>

# mkfs -t ext2 /dev/fd1

mke2fs 1.10, 24-Apr-97 for EXT2 FS 0.5b, 95/08/09

Linux ext2 filesystem format

Filesystem label=

360 inodes, 1440 blocks

72 blocks (5.00) reserved for the super user

First data block=1

Block size=1024 (log=0)

Fragment size=1024 (log=0)

1 block group

8192 blocks per group, 8192 fragments per group

360 inodes per group



Writing inode tables: done

Writing superblocks and filesystem accounting information: done

# mount -t ext2 /dev/fd1 /mnt/floppy

# ls -la /mnt/floppy

total 14

drwxr-xr-x   3 root     root         1024 Aug  1 19:49 .

drwxr-xr-x   7 root     root         1024 Jul  3 21:47 ..

drwxr-xr-x   2 root     root        12288 Aug  1 19:49 lost+found

# umount /mnt/floppy

</PRE>

<!-- END CODE //-->









<A NAME="PAGENUM-206"><P>Page 206</P></A>











<P>Here, you see the creation and mounting of an

ext2 filesystem on a floppy. The structure

of the filesystem as specified by the program's defaults are shown. There is no volume

label, and there are 4096 bytes (4KB) per inode (360

&#165; 4 = 1440). The block size is 1KB and 5

percent of the disk is reserved for root. These are the defaults (which are explained in the

mke2fs manual page). After you have created a filesystem, you can use

dumpe2fs to display information about an ext2 filesystem, but remember to pipe the result through a pager such as

less because this output can be very long.

</P>









<P>After creating the filesystem on this floppy, you can include it in the filesystem table by

changing the existing line referring to a vfat filesystem on

/dev/fd1 to the following:

</P>





<!-- CODE SNIP //-->

<PRE>

/dev/fd1      /mnt/floppy    ext2   user,sync,errors=continue 0 0

</PRE>

<!-- END CODE SNIP //-->











<P>The first three columns are the device, mount point, and filesystem type, as shown

previously. The options column is more complex than previous ones. The

user option indicates that users are allowed to mount this filesystem. The

sync option indicates that programs writing to

this filesystem wait while each write finishes, and only then continue. This might seem

obvious, but it is not the normal state of affairs. The kernel normally manages filesystem writes in

such a way as to provide high performance (data still gets written to the device of course, but it

doesn't necessarily happen immediately). This is perfect for fixed devices such as hard disks, but

for low-capacity removable devices such as floppy disks it's less beneficial. Normally, you write

a few files to a floppy and then unmount it and take it away. The unmount operation must

wait until all data has been written to the device before it can finish (and the disk can then be

removed). Having to wait like this is off-putting, and there is always the risk that someone

might copy a file to the floppy, wait for the disk light to go out, and remove it. With

asynchronous writes, some buffered data might not have yet been written to disk. Hence, synchronous

writes are safer for removable media.

</P>









<P>

The ext2 filesystem has a configurable strategy for errors. If an

ext2 filesystem encounters an error (for example, a bad disk block) there are three possible responses to the error:

</P>



<BLOCKQUOTE>

Remount the device read-only&#151;For filesystems that contain mostly nonessential

data (for example, /tmp, /var/tmp, or news spools), remounting the filesystem read-only

so that it can be fixed with fsck is often the best choice.

<BR><BR>

Panic&#151;Continuing regardless in the face of potentially corrupted system

configuration files is unwise, so a kernel panic (that is, a controlled crash&#151;or

emergency landing, if you prefer) can sometimes be appropriate.

<BR><BR>

Ignore it&#151;Causing a system shutdown if a floppy disk has a bad sector is a

little excessive, so the continue option tells the kernel to &quot;carry on regardless&quot; in

this situation. If this actually does happen, the best thing to do is to use the

-c option of e2fsck, for example, with fsck -t ext2 -c

/dev/fd1. This runs e2fsck, giving it the

-c option, which invokes the command badblocks to test the device for bad

disk blocks. After this is done, e2fsck does its best to recover from the

situation.

</BLOCKQUOTE>







<P><CENTER>

<a href="0201-0203.html">Previous</A> | <a href="../ewtoc.html">Table of Contents</A> | <a href="0207-0209.html">Next</A>

</CENTER></P>









</td>
</tr>
</table>

<!-- begin footer information -->





</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?