首页 > 代码库 > 三、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磁盘和文件系统管理