一、文件系统管理

   1、重新创建文件系统会损坏原有文件;

   2、mkfs:make file system;

       a)-t FSTYPE,如:mkfs -t ext2 /dev/sda5;

           mkfs -t ext2 = mkfs.ext2

           mkfs -t ext3 = mkfs.ext3

   3、查看当前内核所支持的文件系统类型:cat /proc/filesystems;


   4、专门管理ext系列文件系统,mke2fs:

       a)-j: 创建ext3格式的FS;

       b)-b BLOCK_SIZE:指定块大小,默认为4096,可用取值为1024、2048或4096;

           如:mke2fs -b 2048 /dev/sda5;

       c)-L LABEL:指定卷标;

       d)-m #:指定预留给超级用户的块数百分比;

           如:mke2fs -m 3 /dev/sda5;

       e)-i #:用户指定多少个字节的空间创建一个inode,默认为8192;这里给出的数值应该为块大小的2的n次方倍,如:mke2fs -i 4096 /dev/sda5;

       f)-N :指定inode个数;

       g)-F :强制创建文件系统;

       h)-E :用户指定额外的文件系统属性;

   5、tune2fs :调整文件系统的相关属性

       a)-j :不损坏原有数据,将ext2升级为ext3;

       b)-L :设定或修改卷标,如:tune2fs -L HELLODATA /dev/sda5;

       c)-m #:调整预留百分比;

       d)-r #:指定预留块数;

       e)-o :设定默认挂载选项,注意acl权限;

           如:tune2fs -o acl /dev/sda5

       f)-c #:指定挂载次数达到#次之后进行自检,0或-1表示关闭此功能;

       g)-i #:每挂载使用多少天后进行自检;0或-1表示关闭此功能;

       h)-l :显示超级块中的信息;


   6、blkid :查询或查看磁盘设备相关属性:

       UUID

       TYPE

       LABEL

   如:blkid /dev/sda5;

   7、e2label:用户查看,如:

       e2label 设备文件 卷标 :用于定义卷标;e2lable /dev/sda5 MYDATA

   8、dumpe2fs:显示文件属性信息;

       -h:只显示超级块信息;

   9、fsck:检查并修复Linux文件系统;

       -t FSTYPE:指定文件系统类型;

       -a:自动修复;

   10、e2fsck:专用于修复ext2和ext3文件系统;

       -f:强制检查;

       -p:自动修复;

二、文件挂载

   1、挂载:将新的文件系统关联至当前根文件系统;

   2、卸载:将某文件系统与当前根文件系统的关联关系预以移除;

   3、mount [options] [-o options] DEVICE MOUNT_POINT

       a)[options]:

           -a :表示挂载/etc/fstab文件中定义的所有文件系统;

           -n : 默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用-n选项意味着挂载设备时,不把信息写入此文件;

           -t FSTYPE :指定正在挂载设备上的文件系统的类型;不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;

           -r :只读挂载,常用于挂载光盘;

           -w :读写挂载;

           -o :指定额外的挂载选项,也即指定文件系统启用的属性;

               remount:重新挂载当前文件系统;

               ro:挂载为只读

               rw:读写挂载

               noatime:不更新访问时间戳;

               sync:同步挂载

           如:mount -o remount,ro /dev/hda5 /media/;

       b)DEVICE:

           设备文件:/dev/sda#

           卷标:LABEL=“”

           UUID:UUID=“”

       c)MOUNT_POINT:目录

           要求:

           c1)此目录没有被其它进程使用;

           c2)目录得事先存在;

           c3)目录中的原有的文件将会暂时隐藏;

       d)mount: 显示当前系统已经挂载的设备及挂载点;

       e)挂载完成后,要通过挂载点访问对应文件系统上的文件;

   4、mount命令,可以挂在iso镜像;

       回环设备loopback,使用软件来模拟实现硬件

       a)-o loop :挂载本地回环设备;

       如:mount /root/rhci-5.8-1.iso /media/

   5、umount 卸载某文件系统

       a)umount 设备|挂载点

       b)卸载注意事项:

           b1)挂载的设备没有进程使用;

   6、fuser 验证进程正在使用的文件或套接字文件

       a)-v:查看某文件上正在运行的进程;

       b)-km:终止正在访问此挂载点的所有进程,fuser -km MOUNT_POINT ;

三、swap分区

   1、free :查看物理内存和交换空间的使用情况;

       a)-m :显示单位为M;

   2、如何创建交换分区:

       a)fdisk命令中,调整分区类型为82;

       b)格式化交换分区,如:mkswap /dev/hda7

           -L LABEL :指定卷标;

       c)启用交换空间

           swapon /dev/hda7 [swapoff /dev/hda7(关闭)]

           -a :启用所有的定义的在/etc/fstab文件中的交换设备;

   3、如果本地磁盘已经没有可分配的空间,怎么创建swap分区?

       可以使用空文件来创建swap:

       a)dd if=/dev/zero of=/var/swapfile bs=1M count=1024

       b)mkswap /var/swapfile

       c)swapon /var/swapfile

   4、dd命令:-convert and copy a file

       a)[options]

           if=数据来源

           of=数据存储目标

           bs=block size

           count=需要复制多少个文件

           seek=# 创建数据文件时,跳过的空间大小;

       b)dd if=/dev/zero of=/var/swapfile bs=1M count=1024 ,/dev/zero 和 /dev/null作用是相反的

四、文件系统的配置文件/etc/fstab

   1、系统在初始时,会自动挂载此文件中定义的每个文件系统;

   2、文件字段解义:

       a)1:要挂载的设备;

       b)2:挂载点

       c)3:文件系统类型

       d)4:挂载选项

       e)5:转储频率(每多少天做一次完全备份,1表示每天做完全备份,2表示每隔一天做完全备份,0表示不备份);

       f)6: 文件系统检测次序(只有根为1,0表示不检查);

   3、可通过此配置文件挂载文件;

练习1:

1、创建一个2G的分区,文件系统为ext2,卷标为DATA,块大小为1024,预留管理空间为磁盘分区的8%;

挂载至/backup目录,要求使用卷标进行挂载,且在挂载时启动此文件系统上的acl功能;

2、将此文件系统的超级块中的信息中包含了block和inode的行保存至/tmp/partition.txt中;

3、复制/etc目录中的所有文件至此文件系统;而后调整此文件系统类型为ext3,要求不能损坏已经复制而来的文件;

4、调整其预留百分比为3%;

5、以重新挂载的方式挂载此文件系统为不更新访问时间戳,并验正其效果;

6、对此文件系统强行做一次检测;

7、删除复制而来的所有文件,并将此文件系统重新挂载为同步(sync);而后再次复制/etc目录中的所有文件至此挂载点,体验其性能变化;

参考答案:

1、

# mkfs.ext2 /dev/hda1

# blkid /dev/hda1

# mke2fs -L DATA -b 1024 -m 8 /dev/hda1

# tune2fs -o acl /dev/hda1

# mount LABEL=DATA /backup

# mount

2、

# tune2fs -l | egrep -i  "block|inode" >> /tmp/partition.txt  

3、

# cp -r /etc/*  /backup

# tune2-j /dev/hda1

4、

# tune2fs -m 3 -L DATA /dev/hda1

5、

# stat /backup/inittab

# cat /backup/inittab

# stat /backup/inittab


# mount -o remount,noatime /backup

# cat /backup/inittab

# stat /backup/inittab

6、

# e2fsck -f /dev/hda1

7、

# rm -rf /backup/*

# mount -o remount,sync /backup

# cp -r /etc/* /backup

练习2:

   1、创建一个5G的分区,文件系统为ext3,卷标为MYDATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;

   2、创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为512MB,卷标为SWAP-FILE,且开机自动启用此交换设备;

   3、上述第一问,如何让其自动挂载的同时启用ACL功能;

参考答案:

1、

#mke2fs -j -L MYDATA -b 1024 -m 3 /dev/hda2

#vim /etc/fstab

LABEL=MYDATA            /data                   ext3    defaults        0 0

2、

# mkdir /var/swaptemp

# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512

# mkswap -L SWAP-FILE /var/swaptemp/swapfile

# swapon /var/swaptemp/swapfile


#vim /etc/fstab

/var/swaptemp/swapfile  swap                    swap    defaults        0 0

3、

#vim /etc/fstab

LABEL=MYDATA            /data                    ext3    defaults,acl    0 0