Linux磁盘管理
I/O Ports:I/O设备地址
一切皆文件:
open(),read(),write(),close()
块设备:block,存取单位"块"
字符设备:char,存取单位"字符"
设备文件:关联至一个设备的驱动程序,进而能够跟与之对应的硬件设备进行通信
设备号码:
主设备号:标识设备类型
次设备号:标识同一类型下的不同设备
硬盘接口类型:
并口:
IDE :133MB/s
SCSI:640MB/s
串口:
SATA:6Gbps/s
SAS :6Gbps/s
USB :480MB/s
/dev/DEV_FILE
磁盘设备的设备文件命名:
SCSI,SATA,SAS,USB:/dev/sd
不用设备:a-z
/dev/sda,/dev/sdb,...
同一设备上的不同分区:1,2,3....
/dev/sda1,/dev/sda5...
机械式硬盘:
track:磁道
cylinder:柱面
secotr:扇区
512字节
如何分区:
按柱面
0磁道0扇区:512字节
MBR(主引导记录):
446自己:引导加载器
前64个字节存储分区表
16bytes:标识一个分区
2字节:55AA
4个主分区(/dev/sda1,2,3,4):
3主分区+1扩展(N个逻辑分区,逻辑分区从5开始编号)
分区管理工具:fdisk,parted,sfdisk...
fdisk:对于一块儿硬盘来讲,最多只能管理15个分区
# fdisk -l #查看硬盘分区状态
# fdisk device #device指的是要操作的硬盘,比如/dev/sda,/dev/sdb..
子命令:
p #显示已存在分区
n #创建新分区
d #删除指定分区
w #写入磁盘并退出
q #不保存退出
m #获取帮助
l #列出所有分区ID
查看内核是否已经识别新的分区:
cat /proc/partations
如果发现在文件中未发现新分区,使用以下操作重新读取硬盘分区表
partx -a /dev/DEVICE
-n M:N
Linux文件系统管理:
Linux文件系统:ext2,ext3,ext4,xfs
swap:交换分区
光盘:iso9660
Windows:fat32,ntfs
网络文件系统:NFS,CIFS
集群文件系统:GFS2,OCFS2
分布式文件系统:ceph
mossefs,mogilefs,GlusterFS,Lustre
根据其是否支持"journal"功能:
日志型文件系统 :ext3,ext4,xfs,...
非日志型文件系统:ext2,vfat
文件系统的组成部分:
内核中的模块:ext4,xfs,vfat
用户空间管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
创建文件系统:
/proc/filesystems #当前文件系统所支持的文件系统类型存放位置,没写nodev的是正在使用的文件系统
mkfs命令:
(1) mkfs.FS_TYPE [OPTION] /dev/DEVICE
FS_TYPE:ext4,xfs,btrfs,vfat
(2) mkfs -t FS_TYPE /dev/DEVICE
-t:指定文件系统类型
-L 'LABEL' :设定卷标
mke2fs:ext系列文件系统专用管理工具
-t {ext2|ext3|ext4} :指定文件系统类型,只能指定ext系列的文件系统
-b {1024|2048|4096} :指定块大小
-L 'LABEL':卷标
-j :相当于 -t ext3
-i #:指定比例关系,为数据空间每多少个字节创建一个inode,此大小不应该小于block大小
-N #:为数据空间创建多少个inode
-m #:为管理人员预留的空间占据的百分比
-O FEATURE[,...]:启用指定特性
-O ^FEATURE:关闭指定特性
查看分区属性信息:
blkid [OPTION]... [分区名称] #也可以什么都不跟,默认查看到的是所有的分区属性信息
-U UUID:根据UUID查找对应设备
-L LABLE:根据卷标查找对应设备
例:
blkid /dev/sda1
LABEL:卷标,分区描述
UUID:全局唯一标识符
TYPE:文件系统类型
压缩工具
(1) compress [OPTION] FILE ...(很少有人使用) #不加任何选项可压缩,会删除源文件
-d:解压缩,相当于uncompress
-c:将压缩结果打印到屏幕上,可结合重定向保留源文件进行压缩
例:compress -c test.txt > test.txt.Z
-v:显示详情
(2) gzip [OPTION]... FILE ...
-d:解压缩,相当于gunzip
-c:将压缩或解压缩的结果输出至屏幕
-#:1-9,手动指定压缩比例,值越大压缩比就越大,默认为6
(3) bzip2 [OPTION]... FILE ...
-d:解压缩,相当于bunzip2
-k:压缩并保留源文件
-#:1-9,手动指定压缩比例
(4) xz [OPTION]... FILE ...
-d:解压缩,相当于unxz
-k:压缩并保留源文件
-#:1-9,手动指定压缩比例
(5) zip [OPTION]... FILE ...
-r:指定文件夹,压缩文件夹
例:zip -r /testdir/sysconfig /etc/sysconfig/ #将/etc/sysconfig目录压缩到/testdir/sysconfig,会自动添加.zip后缀
unzip FILENAME:解压缩
tar工具
语法:
tar [OPTION]... [FILE]....
-c:创建打包文件
-f:打包的文件
-v:查看打包过程
-C:展开tar包到指定位置
-t:预览
(1) 创建归档
tar -c -f 打包后的文件名.tar FILE...
例:tar -cvf /app/sysconfig.tar /etc/sysconfig #将/etc/sysconfig目录打包到/app下的sysconfig.tar文件
(2) 追加文件至打包后的文件中,不能将新文件追加到已经压缩的文件中
tar -r -f 打包后的文件名.tar FILE...
(3) 查看打包后文件中的文件列表
tar -t -f 打包后的文件名.tar
(4) 展开归档
tar -x -f 打包的文件名.tar
tar -x -f 打包的文件名.tar -C 要展开到的目标位置
(5)结合压缩工具实现:打包并压缩
-j:bzip2
-z:gzip
-J:xz
cpio工具
功能:从某个地方复制文件,或将处理过的数据放到归档文件中
cpio命令通过重定向的方式将文件进行打包备份,还原恢复的工具,可以解压以".cpio"或者".tar"结尾的文件
语法:
cpio [OPTION] > 文件名或设备名
cpio [OPTION] < 文件名或设备名
选项:
-o:将文件打包成打包文件或者重定向到设备中
-i:解包,将多个文件解包到某个地方
-t:预览
-v:显示过程
-d:解包后生成目录,自动的建立目录,默认
-c:新的存储格式
例子:
(1) 创建
find ./etc/ | cpio -ov > etc.cpio #找到当前目录下的/etc/目录并且将结果交给管道后的cpio打包处理
(2) 预览
cpio -tv < etc.cpio #预览当前文件夹中的etc.cpio文件
(3) 解包
cpio -idv < etc.cpio #解包到当前目录