下面介绍一下系统主要的目录用途:

/bin /sbin  :os自身运行要用到的程序

/usr/{bin,sbin}:os管理工具

/usr/local/{bin,sbin}:第三方程序可执行程序

库目录/lib[64]:公共功能模块

/usr/lib

/usr/local/lib

/etc:系统配置文件

/usr/local/etc

/tmp

/var/log

/var/cache:为多个程序提供缓存

/dev:设备文件

/proc:伪文件系统,可定制内核特性, 启动后传递参数给内核(grub也可以:启动时传递参数给内核)

/home:用户家目录

/sys: 伪文件系统,硬件信息,在这里可以改硬件属性

/boot:引导目录;放置内核

 

磁盘类型及文件名

Ide\ata接口的第一块盘为/dev/hda,第一个分区为hda1 第二块盘为/dev/hdb,依此类推

Sata\usb\scsi(有智能芯,稳定度高,寿命长)\sas接口的第一块盘为/dev/sda,,第一个分区为sda1 第二块盘为 /dev/sdb,依此类推###udev可以配置个性化的硬件名称如/dev/usb1

 

文件分区(文件系统)建立步骤:格式化分区(即高级格式化),挂载即可

低级格式化:创建磁道和划分扇区,低格会大大影响磁盘寿命。

 

划分分区一般以柱面来划分(一块磁盘有10000个磁道就有10000个柱面,同心圆,由外向里划分)

 

一块磁盘上的0磁道,0扇区为MBR,不属于任何文件系统

MBR446bytesbootloader

                   64bytes(分区表,每16bytes一个分区,因此最多4个主分区)

                   2bytes(标识此硬盘是否为可引导的,可引导的值为5A

 

查看分区信息:  fdisk   -l /dev/sda1

创建、删除、修改磁盘上的分区:fdisk /dev/sda

RHEL5.X使内核在读取硬盘分区表#partprobe  /dev/sda

RHEL6.X使内核在读取硬盘分区表#partx  -a /dev/sda1  /dev/sda

查看内核硬盘分区表#cat /proc/partitions

格式化分区:mkfs  -t  ext3 /dev/sda1

显示块设备属性(文件系统类型、uuid、卷标):blkid  /dev/sda3

显示文件系统属性(块大小):#tune2fs  -l  /dev/sda3|grep “Block Size”

 

示例#mke2fs  -t  ext4 -b  2048  -L MYDATA  /dev/sda3

注:在/etc/fstab文件中使用卷标挂载比使用设备文件名挂载要有效得多,不容易出错。

 

文件系统预留空间(一般预留给管理员,修复系统使用)

tune2fs -l  /dev/sda3|grep “Reserved”

调整预留空间

1)创建文件系统时:mke2fs       -m 3 /dev/sda1

2) 调整已有文件系统:tune2fs  -m 3 /dev/sda1(调整为3%)

 

 

tune2fs命令常用选项:

-o:设定挂载默认选项

-O:设定文件系统默认特性

-r  #:调整预留给管理员使用的块个数

-m #:调整预留给管理员使用的文件系统空间的百分比

-E:调整文件系统的扩展属性

-l:显示文件系统超级块信息

 

E2label命令(显示或设定文件系统卷标)

例:#e2label    /dev/sda3

         #e2label    /dev/sda3 MYDATA

 

挂载命令 mount  格式

Mount [-t  fstype]  [-o option]          DEVICE  MOUNT_POINT

                   -n  挂载文件系统时,不更新/etc/mtab文件

                   -v      挂载时显示详细信息

                   -r      相当于-o ro(只读挂载)

注:挂载点下的原有文件在挂载后会被隐藏起来无法被访问。因此千万不要挂载到系统常用目录上。

格式中:DEVICE可用UUID=XXX或者LABEL=XXX代替

  • 直接输mount命令可以显示/etc/mtab中的内容

  • Mount –a 命令可以自动挂载/etc/fstab中允许自动挂载的分区

 

Mount命令    option-o用于指定挂载选项,以下列出挂载选项的参数,注:用-o指定挂载选项时默认会使用defaults选项,其他的指定选项可以覆盖defaults选项中的某些选项)

Ro只读

Rw读写

Atime默认的,每次访问文件都会更新文件访问时间戳

Noatime:与上面相反,这个选项可以减轻IO负担,优化系统性能

Auto:是否可以由Mount –a 命令可以自动挂载

Defaults:使用了一堆选项的集合,rw, suid,dev, exec, auto, nouser, async, and relatime.

Dev:是否允许在此文件系统上启用设备文件*设备文件非常关键,一旦它所属的文件系统被卸载,其他设备将无法访问它。

Nodev:与上面相反

Diratime:同上面

Nodiratime: 同上面

Exec:是否允许执行此文件系统上的文件(例如:U盘上的可执行文件比较危险)

Noexec: 与上面相反

Relatime:atime改变时改变ctime

Norelatime:与上面相反

Remount:将某文件系统以新的挂载选项重新挂载,注意,重新挂载时不需要指定设备文件,只需要指定挂载点即可,示例:mount –o remount,rw /

Loop:挂载本地回环设备 示例:mount  -o loop,ro  /root/boot.iso  /mnt

Sync

Async

 

 

 

卸载命令 umount  格式

Umount Device/mount_point

注意:卸载时要确保没有进程正在访问要卸载的设备,否则无法卸载,卸载时如果遇到“device is  busy”类似的报错提示,可以查一下正在访问设备的进程号

fuser  /media  ,也可以用lsof命令;杀掉相关正在访问此设备的进程,再尝试卸载:

fuser –km /media

 

系统开机时文件系统自动挂载的定义:/etc/fstab文件,下面是详细介绍(新加的分区需要开机自动挂载的话,需要先在这个文件中添加一行)

第一列:挂载设备,可用uuid,label,或设备文件名,伪文件系统/proc  /sys,及交换分区swap格式不同,示例如下:

UUID=6016e181-cc52-4ec9-a827-91fd15425faeswap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                  /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

第二列:挂载点

第三列:被挂载设备的文件系统类型

第四列:挂载选项,多个选项间用逗号分隔。

第五列:转储频率,指定dump命令多长时间对它做一次备份;0从不备份1每天备份2每隔一天备份。

第六列:自检次序,文件系统的检查次序(清除坏的文件,修复文件系统),根文件系统应当首先被检测,0不检测;1第一个检测;29为检测顺序,但1只能为文件系统。

 

文件系统的定义:是在内核中实现的一个模块(因为只有内核有权限访问硬盘),提供文件的打开,写入,关闭等功能(系统调用)。每个文件系统接受的系统调用可能各不相同,为了便于程序员开发,linux内核为多种不同的文件系统加了一个统一的中间层(VFSvirtual file system)来屏蔽底层文件系统的不同,为程序员提供一个统一的文件系统系统调用。

 

常见的文件系统类型如下:

Windows:NTFS,FAT32

Linux:iso9660,nfs,cifs,ext[234],xfs,jfs,reiserfs,vfat

集群文件系统:GFS,GFS2,OCFS2

 

格式化文件系统命令:格式化的文件系统必须被要挂载的linux内核支持才能使用,即系统上有相应的编译好的内核模块;或者已经将此模块整合进内核。

 

文件系统创建工具:通常是:mkfs.fstype或者mkfs  -t  fstype

还有一种专用于创建ext系列文件系统的命令:mke2fs

Mke2fs的功能比较丰富,但只支持创建ext文件系统,mkfs命令的通用性更强,支持创建多种文件系统。

 

Mke2fs   -t      fs-type

                   -L      卷标

                   -m    保留块占据文件系统的百分比

                   -b      块大小