首页 > 代码库 > 三、linux磁盘和文件系统管理

三、linux磁盘和文件系统管理

磁盘分区格式化:

   /bin、/sbin :二进制程序,操作系统自身运行就需要的程序。

   /usr/bin、/usr/sbin:二进制程序,基本的系统管理工具、命令。

   /usr/local/bin、/usr/local/sbin:第三方程序,命令。

/lib:为bin、sbin及/usr/下面的bin、sbin提供与内核通信的接口服务。

/etc:为/bin 、/sbin提供配置文件命令。

/tmp

/var:提供经常变化的目录,像log、mail、cache

/proc:内核数据的表现形式,可以通过修改参数改变内核性能。

/sys:硬件信息

/dev:设备类型:

                         b:随机设备

                         c:线性设备

            硬盘设备:随机存取设备

              i/o :controller

              i/o:adapter

一般情况下并行接口比串行接口速度快,但是当速率提高的时候,会产生串扰,所以目前串行接口的设备高于并行接口如sata接口就比以前的scsi快很多。 

对于来说,一般对于集成的芯片称为控制器,而非集成的芯片称为适配器。

磁盘硬件参数:

磁道track、扇区sector、柱面:不同磁盘上相同磁道的集合称为柱面。

平均寻道时间:机器臂移动到扇区,并等待读取磁盘上数据的时间称为平均等待时间

IDE(并行传输接口)ATA:,133M/S------------>>SCSI: samll computer system interface 320mB/S------>>SAS(串口):

SATA(串口):300MB/S-6GB/S

固态硬盘SSD:SATA接口

linux对不同硬盘接口的标注方法:

    IDE、ATA: /dev/hd[a-z]

    SCSI、SAS、SATA、USB:/dev/sd[a-z]

对磁盘进行格式化,就是创建文件系统的过程,称为高级格式化

MBR:master boot record 主引导记录,512byte,划分分区时被排除在外。

 包括:446byte是bootloader、剩下的64byte用来创建分区表,每个分区表用16个字节表示,所以默认最大4个分区。

扩展分区:需要再次划分成逻辑分区。实际上逻辑分区表是单独划分的另一块分区,以MBR并不在一起。

创建分区:

fdisk、sfdisk、parted

查看系统可用的磁盘:fdisk -l

详细查看磁盘使用情况:fdisk -l /dev/sd[a-z]

fdisk命令详解

        -d:删除一个分区

        -n:创建一个分区

        -p:磁盘分区信息

        -w:保存退出

        -q:不保存退出

        -l:查看各分区对应的system ID


fidisk -l /dev/[sh]d[a-z]

查看系统内核是否已经可以识别硬盘分区: cat /proc/partitions ,

        通常情况下分区完毕后需要重启,可以使用partprobe [device]来达到同样的目地。(centos 6不支持,可以使用partx -a parttition来完成)

格式化系统(创建分区)

mkfs:make file system 

blkid:block id 查看分区信息,包括uuid,文件系统类型。

要点:

          1、文件系统必须是内核linux支持的文件系统,ext3、nfs、cifs等。

          2、要有相应的文件系统创建工具,通常指mkfs.fstype。可以通过mkfs的补全方式查看具体都有哪些工具支撑。

                mkfs -t ext4 =mkfs.ext4 =mke2fs -t ext4

                mkfs -t xfs =mkfs.xfs

                mkfs -t ext3=mkfs.ext3=mke2fs -j =mke2fs -t ext3

技术分享

mke2fs:功能比mkfs强大,同样能实现mkfs的所有功能。

-L:设置卷标

-b:指定block块大小。{1024/2048.4096}块的大小取决于cpu对内存页框大小的支持、x86默认支持4k(4096)

-m:默认情况下,系统在进行格式化的时候,会预留5%的块(block)给系统使用(reserved blocks count),这个会造成一定的浪费,可以通过此参数进行调整

例如:mke2fs -L system -b 1024 -t ext4 -m 3 /dev/sdb1

tune2fs:超详细的显示分区,block的相关信息,是对mke2fs设置的调整,类似useradd和usermod的关系。

-o:设置挂载默认选项

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

-r:调整预留给管理使用的块个数,不如-m使用的多。

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

-l:查看块信息。


e2lable:设置卷标。功能同tune2fs -L 相同。


 配置文件:/etc/mke2fs.conf,用于设置默认特性,以及文件系统的特有属性。

 

mount:挂载硬盘及设备

     -o:用于指定挂载选项,常用的挂载选项:

        default:rw、suid、dev、exec、auto、nouser、async、relatime。

           ro:挂载只读

           rw:读写,默认选项。

           noatime:关闭更新访问时间

           auto:是否能够由‘mount -a ’自动挂载。

           sync:同步写入

           async:异步写入

           noexec:通常在挂载陌生磁盘的时候,选择此选项。

           remount:重新挂载。 mount -o remount,ro noexec  /dev/sdb1 /mnt

           loop:镜像文件iso       

     -n:系统挂载时,不更新/etc/mtab文件,也就是说mount挂载的内容和mtab是有联系的

     -r:相当于“-o ro”只读挂载    

fuser:file user 查看某文件都由哪些用户使用,主要看的的进程。

  -km:强行杀死正在访问此文件的进程。

 -vm:可以查看某个文件正在被哪些进程、用户、命令所调用。

    

   多选项之间用“,”隔开。

   cdrom-->sr0

   cdrom-->hdc

       简单说一下同步和异步的区别,首先是用户在写入文件到磁盘的时候,会先将磁盘的文件调入内存中,然后进行编辑,当需要进行保存的时候,如果在保存到内存的同时也保存到硬盘上,这个就叫同步sync,如果在保存的时候只是将数据暂时保存到内存中,而由内存进行统一的管理,决定将数据写入到磁盘上的时间,这个的操作称为异步async。

         异步方式读写速度快,一般情况是按照异步的方式进行的,可以通过对磁盘进行刷写策略,来决定内存写入磁盘的频率。

卸载时,要保证没有进程正在访问挂载的设备,并且用户不能再需要卸载设备目录内。

/etc/fstab:系统开机自动挂载的文件系统配置文件。

filesystem:一个软件,(fdisk、mke2fs、mkfs),需要内核来实现

windows:ntfs、fat

linux:vfs(virtual file system)

            ext 、xfs

            iso9600

            nfs、cifs

            ext4系列、jfs、reiseerfs、vfat

            gfs系列

/etc/fatab讲解:

 挂载的设备:可以使用设备文件、卷标、UUID

挂载点:挂载到的位置

文件系统类型:ext系列

挂载选项:default,多个选项用逗号分隔。

转储频率:备份频率,dump备份,需要先用dump编写计划。

                  0:从不备份

                  1:每日备份,1天一备

                  2:每隔一天备份。2天一备

自检次序:开机系统磁盘检查(建议使用0,不进行磁盘检查)

               

mount -a:表示在fstab文件里被定义的挂载设备,并且在选项里设置为auto的设备会自动挂载。

linux的交互分区:swap

 查看内存:free、ll /proc/meminfo

     -m:以mb为单位显示

    -g:以gb为单位显示

     buffer:可以清除数据来提升速度 缓冲

     cache:缓存

如果swap分区不够用,如何创建一个新的分区用于swap使用?

fdisk /dev/sdb

n

t 82 调整分区类型为swap

w 保存退出

partx -a /dev/sdb5 (不一定成功)

dumpe2fs :输出ext文件系统信息。

   -h:显示超级块相关信息。

   

du:查看文件使用情况 disk usage

-s:summary 显示某指定路径下所有文件的大小之和

-h:以human方式显示

df:显示磁盘挂载点的使用情况,空间大小

-h:以human方式显示

-l:local,显示本地磁盘使用情况。

-P:posix兼容的风格显示

-i:显示磁盘的inode相关信息,而不是block信息。

删除、移动、复制

思考

链接文件:

     硬链接:  两个不同路径的文件指向相同的inode号,也就是说指向的内容是相同的。删除任何一个文件都不会删除inode,也就是不会影响原始数据的存在,但是如果链接是最后一个链接,则会将inode的链接的原始数据删除。

                     ls -l第二段显示的数字是硬链接的次数。

   

          特性:  1、inode的指向是不可以跨分区的。

                       2、硬链接不可以指向目录,也就是不可以创建目录链接 。

                        3、inode链接文件和源文件相同。

  软连接:符号链接,symbolic link,

        ls -l:文件内容类型显示为‘l’

           bash中测试文件是否是符号链接,使用-L或-h

  特点:   1、不受分区限制。

               2、能够对目录创建链接

               3、删除原文件,链接文件无法使用,但删除链接文件,源文件不受影响。

               4、链接文件内容显示中包括‘->‘

               5、inode链接文件和源文件不同

               6、链接文件的大小实际上是源文件文件名字符串的个数。

 -s:创建软连接。

-v:显示创建详细过程。

lsattr :显示文件扩展属性

chattr:修改文件扩展属性(+-,添加删除属性)

-i:设置文件属性为只读属性

-a:只可以追加内容,不可以修改原内容

-u:不可删除

文件压缩、解压缩及归档。

gzip/bizp2/xz,压缩比按递增排列,就是说xz压缩比最大。

1、默认压缩后源文件消失。

2、压缩比:1-9,默认是6,压缩比越小消耗cpu少。

3、不能压缩目录

gzip:.gz

      解压缩:gunzip =zip -d

       -#:设置压缩比

       -c file>dfile:将压缩后的文件重定向到目的文件            gzip -c gongbing >123.gz

zcat:不解压查看文件内容。

bzip2:*.bz2

      -d:解压缩

       -k:保留源文件

bzcat:查看压缩文件内容

xz:xz

      解压缩:unxz = xz -d

xzcat:查看压缩文件内容

archive:归档,

将一类文件放在一起(磁盘、磁带、分区、文件夹)进行管理就叫归档,归档本身并不压缩,归档后多个文件变成一个文件。

tar 

  -c:创建归档

  -x:展开归档,展开后会将归档文件还原到当前目录下。

  -f:指定归档后的文件名称,一般以.tar作为后缀。

  -t:不用展开归档,查看文件列表信息。

  -C:指定还原归档文件的位置。

   -z:调用gzip,用-c一起用表示压缩,同-x一起用表示解压。

   -j:调用bzip2,用-c一起用表示压缩,同-x一起用表示解压

   -J:调用xz,用-c一起用表示压缩,同-x一起用表示解压

   -p:小写,保留备份数据同原始数据具有相同的权限和属性。

   -P:大写,保留绝对路径,谨慎使用,通常在解压缩的时候会还原到原位置,如果是对/etc进行归档,在还原的时候会覆盖原有文件,造成损失。

   --exclude=path/file:排除某些文件或目录

   --newer:备份比某一个文件新的文件

   --newer-mtime:备份比某一个文件的修改时间新的文件。

例如 :1、创建归档文件

                     tar -c -f rinit.tar init/r*

            2、 归档文件展开到指定目录

                     tar -x -f 123.tar -C /tmp/

            3、归档并压缩文件

                      tar -zc -f 123.tar.gz /tem/*

            4、解开归档文件中的指定文件

                      tar -ztvh -f /root/etc.tar.bz2 |grep "shadow"

                      确定需要解压缩的文件

                      tar -zxvh -f /root/etc.tar.bz2 etc/shadow

             5、打包某目录,但排除目录中的某些文件

                      tar -jcv -f /root/back-etc.tar.bz2 --exclude=/etc/sysnet* /etc

              6、仅仅备份比某个时刻还要新的文件

                       tar -jcv -f /root/etc.newer.then.pass.tar.bz2 --newer-mtime="2015/09/11" /etc/

zip:文件后缀.zip    例如:zip init.zip /tmp/*

unzip:解压缩

hdparm:IDE/SATA硬盘属性查看设定工具。

dd:文件复制命令,不同于cp,常用于虚拟磁盘

 -if:源文件

 -of:目的文件

 count:指定块大小

 bs:block size 块大小 k、m、g表示字节数

dd if=/dev/sda of=/root/sda_mbr.back bs=512 count=1(备份mbr文件)

dd if=/root/sda_mbr.back of=/dev/sda bs=512 count=1(还原mbr文件)

/dev/zero:0生成器,用于产生无数个0

/dev/null:文件黑洞

创建交互分区:

mkswap device

启动交互分区:

swapon device 指定启动的交互分区

swapon -a 启动所有交互分区

swapoff -a 关闭交互分区

开机自动启动交互分区,可以定义/etc/fstab

device swap swap default 0 0

sysv网络服务脚本

service network restart = /etc/rc.d/init.d/network restart = /etc/init.d/network restart

技术分享


三、linux磁盘和文件系统管理