08UNIX系统管理-第八章创建文件系统.doc
UNIX系统管理第八章创建文件系统目标学完这一章,你能够做以下事情:以命令行方式创建文件系统。 以命令行方式装载或者卸载文件系统 通过/etc/fstab文件来自动地装载文件系统 文件系统创建概述如果你要扩展文件系统的整体容量,你可以创建新的文件系统,并且把它加入到原来的文件层次结构中。文件系统可以创建在一个单独的磁盘上,也可以创建在一个逻辑卷中。在创建文件系统之前,你不是必须要增加一块新的磁盘。如果你的卷组中有空闲的extent,你就可以简单地利用这些空闲空间先创建一个逻辑卷,然后在上面创建文件系统。创建一个新的文件系统通常是由于以下的原因:你预期当前的文件系统会很快达到其最大的容量。 你当前的文件系统已经达到最大的容量 你为一些特殊的原因,想要物理上分割文件系统。例如,不同组的用户要使用不同的磁盘空间 你想要创建一个唯一属主的文件系统或者是要创建镜像。 创建一个新的文件系统1.创建新的文件系统newfs -F vxfs /dev/vg01/rmyfs12.为这个文件系统创建装载点目录。mkdir /myfs13.装载这个新文件系统mount /dev/vg01/myfs1 /myfs14.将这个文件系统加入到/etc/fstab文件中首先,你必须为这个新文件系统创建一个超级块,inode表,和其它的系统metadata数据结构。newfs命令就是创建这些数据结构的工具。上例中,在逻辑卷/dev/vg01/rmyfs1中创建了一个vxfs类型的文件系统。一旦你使用newfs命令创建了文件系统的metadata数据结构,你必须为这个文件系统创建一个装载点,然后再装载这个文件系统。最后,如果你想要是这个文件系统持续生效,你应该将其加入到/etc/fstab文件中去。每一次当系统启动的时候,/etc/fstab文件会被用来自动装载文件系统。所以,如果一个新的文件系统没有被加入到/etc/fstab文件中,在下一次系统启动的时候就不会被自动装载。在创建并装载了一个新的文件系统后,你可以使用mount命令和df 命令来确认你的文件系统是否装载成功newfs命令例子1.newfs -F vxfs /dev/vg01/rmyfs12.newfs -F vxfs -o largefiles /dev/vg01/rmyfs13.newfs -F hfs /dev/vg01/rmyfs24.newfs -F hfs -o largefiles /dev/vg01/rmyfs25.newfs -F hfs -b 4096 -f 2048 -m 5 -i 4096 /dev/vg01/rmyfs2在一个逻辑卷已经被留出来作为一个文件系统使用后,你必须在上面创建一个超级块,inode表,和其它的metadata数据结构。newfs命令就是被用来创建这些数据结构的工具。上例中的第一个例子简单地在/dev/vg01/rmyfs1这个逻辑卷中创建一个vxfs的文件系统。-F vxfs选项指明要被创建的文件系统的类型是vxfs。同时要注意,newfs命令要求用裸设备文件作为参数。而被指明的逻辑卷和磁盘上的数据会被改写。任何原先那个磁盘或者逻辑卷上的数据都会被破坏。第二个例子与第一个类似。只是它包含一个大文件选项。HP-UX10.20版本以后支持文件系统中的最大文件的大小为128GB。但是,如果没有使用大文件选项,最大的文件的大小为2GB。第三个例子在/dev/vg01/rmyfs2这个逻辑卷上创建一个HFS类型的文件系统。第四个例子在/dev/vg01/rmyfs2逻辑卷上创建HFS的文件系统。但是与前一个HFS文件系统不同的是,这个例子中指明了几个文件系统参数。-b 4096设置块的大小为4kB,-f 2048设置文件段的大小为2KB,-m 5更改inode每4KB创建一个。这些参数只对HFS文件系统有效,能够被设置用来提高性能。newfs命令对整盘方式的选项 今天的大多数的系统管理员会选择LVM的方式对磁盘进行分区。但是对于工作站来说,你可能会选用更简单的整盘分区的方式:# newfs -F hfs /dev/rdsk/c0t2d0 #在磁盘c0t2d0上创建一个HFS文件系统# newfs -F vxfs /dev/rdsk/c0t2d0 #在磁盘c0t2d0上创建一个JFS文件系统“-R”选项在磁盘的末尾保留一些空间用作交换区:# newfs -F hfs -R 200 /dev/rdsk/c0t2d0 # 创建文件系统的同时保留200MB的空间作为交换区你也可以使用整盘的方式创建一个引导磁盘。装载新文件系统mkdir /myfs1mount /dev/vg01/myfs1 /myfs1mount -v装载一个文件系统文件系统在没有被装载之前是不能被使用的。在一个文件系统创建之后,它必须被合并到系统的文件层次结构中,其方式是通过创建一个装载点并且装载这个文件系统。例子:# mkdir /myfs1 # 创建一个转载点# mount /dev/vg01/myfs1 /myfs1 #将一个文件系统装载到一个装载点。注意: mount命令要求的是一个块设备文件,而newfs命令需要的是一个字符设备文件。装载一个文件系统逻辑上是将新的文件系统与装载点之间建立一个关联。对这个装载点的存取实际上是对装载在这个装载点目录上的文件系统的存取。选择转载点的的原则虽然装载点可以创建在任何目录中,但是大多数的文件系统都是装载在/,/usr/tmp这些目录下,通常,你可以在/home目录下创建你自己的文件系统。同时,文件系统只能装载到一个空目录中,如果一个文件系统装载的目录下已经有了文件和目录,在文件系统被卸载之前,这些文件和目录会被隐藏。最后,注意不要装载一个文件系统到一个正在被其它用户或者进程使用的目录下。如果你试图这样做,你将会得到“设备忙”的错误信息。浏览已经安装的文件系统mount -v命令可以详细地显示已经安装的文件系统的信息,包括它们的安装点和安装时间。#mount -vdf -k命令同样可以显示每一被装载的文件系统的已经被使用的空间和有效的空间。umount 命令umount /dev/vg01/myfs1或者umount /myfs1现在我们已经知道如何装载一个新的文件系统,你还应该知道如果卸载一个文件系统。卸载一个文件系统的命令是umount注意:这个命令是umount,而不是"unmount",这个命令可以使用块设备文件或者装载点目录。umount的选项包括:-a 卸载“所有”当前装载的文件系统-F FStype 指明文件系统的类型-v 报告输出同时会显示FStype 。你可以使用umountall命令来代替umount -a命令。如果文件系统的任何一个文件正被打开,或者有用户当前的工作目录在这个文件系统中,这个文件系统就不能够被卸载。你可以使用fuser命令来哪一个进程正在使用一个文件或者文件结构,你同样可以指定设备文件或者一个装载点。(使用装载点的时候同样要加上-c选项)。# fuser -u /dev/vg01/myfs1这个命令列出使用/dev/vg01/lvol1的进程的ID和进程的登录用户名。#fuser -u /etc/passwd列出打开passwd文件的进程ID和进程的用户名。#fuser -uc /opt列出打开/opt文件系统的进程ID和登录名。#fuser -ku /dev/vg01/myfs1中止所有的妨碍卸载lvol1逻辑卷的进程,并且在KILL掉每个进程之前,列出进程ID和用户名。通常是在关闭系统或者可能导致文件系统损坏之前卸载所有的文件系统。umount -a命令卸载所有已装载的文件系统。shutdown脚本中会包括这个命令以在系统关闭之前卸载掉所有的文件系统。注意:不能够卸载root文件系统。 你不可以在没有重启动系统,而且文件系统交换区生效的时候卸载一个文件系统。 自动装载文件系统加入一个条目到/etc/fstab文件中。 当系统启动的时候或者你使用mount -a,或mountall命令的时候,文件系统会被装载 你可以使用绝对路径名来装载文件系统。 /etc/fstab文件的例子:/dev/vg00/lvol3 / vxfs delaylog 0 1/dev/vg00/lvol1 /stand hfs defaults 0 1/dev/vg00/lvol4 /home vxfs delaylog 0 2/dev/vg00/lvol5 /opt vxfs delaylog 0 2/dev/vg00/lvol6 /tmp vxfs delaylog 0 2/dev/vg00/lvol7 /usr vxfs delaylog 0 2/dev/vg00/lvol8 /var vxfs delaylog 0 2/dev/vg01/myfs1 /myfs1 vxfs delaylog 0 2/dev/vg01/myfs2 /myfs2 hfsdelaylog 0 2在系统关闭的时候会卸载所有的文件系统。如果你想要在下一次系统启动的时候自动装载一个文件系统,你应该把它加入到/etc/fstab文件中。在系统引导的时候,/sbin/init.d/localmount脚本会执行mount -a命令,这个命令会自动装载在/etc/fatab文件中列出的文件系统。这个配置文件不是系统自动维护的;当文件系统被创建或删除的时候,你应该手工编辑这个文件。一个文件系统的信息加入到/etc/fstab文件后,你就不需要输入完全mount命令,就可以装载一个新的文件系统。看以下的例子:# mount -a #装载所有的/etc/fstab中列出的文件系统。# mount /myfs2 #装载/myfs2 (不需要逻辑卷的名字)# mount /dev/vg01/myfs2 #装载/dev/vg01/myfs2 (不需要装载点的名字)CD-ROM文件系统能够存储海量数据,容易检索大量的信息 你可以从CD上读取数据,但是不能够向CD上写数据 想要使用CDFS卷: 1.配置适当的内核驱动。2.创建设备文件(如果需要的话)3.使用mount命令装载CDFS卷。CDFS的例子: 1.CD-ROM格式的帮助手册2.应用程序CD.CD-ROMs正在变成一个普遍使用的介质,因为它们可以存储大量的数据并且价格十分便宜。然而,它们是只读的。使用一个包含CDFS文件系统的CD-ROM需要进行几个步骤。开始时,要确认CD-ROM驱动器连接正确,并且正确配置,并且在内核中配置好正确的驱动。然后,关闭计算机,连接CD-ROM驱动器,然后再打开电源。假定已经安装了合适的驱动程序,系统会在启动的时候创建必需的设备文件。在启动后,你可以使用任何装载点目录名(例子是使用/cdrom).你要做以下事情:$ ioscan -funC disk #查找CD-ROM的块设备文件名# mkdir /cdrom #创建一个装载点目录# mount /dev/dsk/c1t3d0 /cdrom # 装载CD如同其它文件系统一样,CDFS文件系统也能够被包含在/etc/fstab文件中,以便系统启动的时候自动装载光盘。一旦装载完成,CD-ROM文件系统可以象其它文件系统一样使用。CD-ROMs的文件系统有几种类型。其中使用的十分广泛的是PC CD-ROM使用的标准ISO9600类型。