相关硬件基础知识
- 块设备:clock,存取单位为“块”,磁盘即为块设备
- 字符设备:char,存取单位为“字符”,键盘即为字符设备
- 设备文件:用于关联至一个设备驱动程序,今儿能够和与之对应的精简设备进行通信
- 设备号码:
- 主设备号:major number,表示设备类型
- 次设备号:minor number,表示同一类型下的不同设备
- 查看方式:
- 在/etc下使用ls -l命令即可查看对应设备的主设备号和次设备号
- 设备号码:
- 硬盘接口类型:
- 并行接口:
- IDE:传输速率为133MB/s
- SCSI:传输速率为640MB/s
- 串行接口:
- SATA:传输速率为6Gbps
- SAS:传输速率为6Gbps
- USB:传输速率为480MB/s
- 并行接口:
- Linux中磁盘设备文件存放在/dev/DEV_FILE中,设备的命名方式如下:
- IDE设备一般命令为/dev/hd#
- SCSI,SATA,SAS,USB均命名为/dev/sd#
- 不同设备命名规则为从a到z,例如:/dev/sda,/dev/sdb,…
- 同一设备的不同分区用阿拉伯数字命名:1,2,…
- 例如/dev/sda1,/dev/sda5
- 分区管理工具:fdisk,parted,sfdisk
- fdisk:对于一块硬盘来讲,最多只能管理15个分区
- # fdisk -l [-u] [device]
- # fdisk device
- 子命令:管理功能
- p:print,显示已有分区
- n:new,创建新分区
- d:delete,删除已有分区
- w:write,写入磁盘并退出
- q:quit,放弃封信并退出
- m:获取帮助
- l:列出所有分区id
- t:调整分区id
- 子命令:管理功能
- 查看内核是否已经识别新的分区
- # cat /proc/partations
- 通知内核重新读取硬盘分区表
- # partx -a /dev/DEVICE
- # partx -a M:N
- # kpartx -a /dev/DEVICE
- # kpartx -f :强制读取
Linux文件系统管理
- Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap
- swap:交换分区
- 光盘:iso9660
- windows文件系统:fat32,ntfs
- Unix文件系统:FFS,UFS,JFS2
- 网络文件系统:NFS,CIFS
- 集群文件系统:GFS2,OCFS2
- 分布式文件系统:ceph,moosefs,mogilefs,GlusterFS,Lustre
- 根据其是否支持“journal”功能:
- 日志型文件系统:ext3,ext4,xfs,…
- 非日志型文件系统:ext2,vfat
- 文件系统的组成部分
- 内核中的模块:ext4,xfs,vfat
- 用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
- Linux的虚拟文件系统:VFS
- 创建文件系统(mkfs命令):
- # mkfs.FS_TYPE /dev/DEVICE
- FS_TYPE可选择ext4,xfs,btrfs,vfat等类型
- # mkfs -t FS_TYPE /dev/DEVICE
- -L ‘LABEL’:设定卷标
- # mkfs.FS_TYPE /dev/DEVICE
- mke2fs:ext系列文件系统专用管理工具
- -t {ext2|ext3|ext4}
- -b {1024|2048|4096}
- -L ‘LABEL’
- -j:相当于-t ext3
- 注:mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
- -i #:为数据空间中每#个字节创建一个inode,此大小不应该小于block的大小
- -N #:为数据空间创建多少个inode
- -m #:为管理人员预留的空间占据的百分比
- -O FEATURE:启用指定特性
- -O ^FEATURE:关闭指定特性
- 创建文件系统(mkfs命令):
- 其他常用工具:
- blkid:块设备属性信息查看
- blkid [OPTION]… [DEVICE]…
- -U UUID:根据指定的UUID来查找对应的设备
- -L LABEL:根据指定的LABEL来查找对应的设备
- blkid [OPTION]… [DEVICE]…
- e2label:管理ext系列文件系统的LABEL
- # e2label DEVICE [LABEL]
- tune2fs:重新设定ext系列文件系统可调整参数的值
- -l:查看指定文件系统的超级块信息:super block
- -L ‘LABEL’:修改卷标
- -m #:修改预留给管理员的百分比
- -j:将ext2升级为ext3
- -O:文件系统属性启用或禁用
- -o:调整为念系统的默认挂载选项
- -U UUID:修改UUID
- mkswap:创建交换分区
- mkswap [options] device
- -L ‘LABEL’:创建交换分区时添加卷标
- dumpe2fs:显示ext2/ext3/ext4文件系统信息
- -h:查看超级块信息
- blkid:块设备属性信息查看
- 文件系统检测
- fsck:File System Check
- fsck.FS_TYPE = fsck -t FS_TYPE
- Note:FS_TYPE一定要与分区上已经有的文件系统相同
- -a:自动修复错误
- -r:交互式修复错误
- fsck.FS_TYPE = fsck -t FS_TYPE
- e2fsck:ext系列文件专用的检测修复工具
- -y:自动回答为yes
- -f:强制修复
- fsck:File System Check
文件系统挂载
- 挂载:将额外的文件系统与根文件系统中某存在的目录建立起关联关系,进而使得此目录作为其他文件访问入口的行为称之为挂载
- 卸载:接触此关联关系的过程称之为卸载
- 把设备关联至挂载点(Mount Point)使用命令mount
- 卸载设备时可使用设备名,也可使用挂载点,使用命令umount
- 注意:挂载时,挂载点下原有文件在挂载完成后会被临时隐藏
- 挂载方法:mount DEVICE MOUNT_POINT
- mount:通过查看/etc/fstab文件显示当前已挂载的所有设备
- mount [-fnrsvw] [-t vfstype] [-o options] device dir
- device:指明要挂载的所有设备
- 设备文件:例如/dev/sda5
- 卷标:-L ‘LABEL’,例如-L ‘MYDATA’
- UUID:-U ‘UUID’
- 伪文件系统:proc,sysfs,devtmpfs,configfs
- dir:挂载点
- 挂载点应事先存在,建议使用空目录
- 进程正在使用中的设备无法被卸载
- 常用选项
- -t vfstype:指定要挂载的设备上的文件系统类型
- -r:readonly,只读挂载
- -w:read and write,读写挂载
- -a:自动挂载所有支持自动挂载的设备(定义在/etc/fstab中,且挂载选项中有“自动挂载”功能)
- -n:不更新/etc/mtab挂载(此文件为挂载卸载记录)
- -L ‘LABEL’:以卷标指定挂载设备
- -U ‘UUID’:以UUID指定要挂载的设备
- -B:挂载目录到另一个目录上,= –bind
- 查看内核追踪到的已挂载的所有设备:cat /proc/mounts -O option:(挂载文件系统的选项)
- async:异步模式
- synx:同步模式
- atime/noatime:更新时间戳/不更新时间戳
- diratime/dirnoatime:目录的访问时间戳
- auto/noauto:是否支持自动挂载
- exec/noexec:是否支持将文件系统上应用程序运行为进程
- dev/nodev:是否支持在此文件系统上使用设备文件
- suid/nosuid:
- remount:重新挂载
- ro:只读
- rw:读写
- user/mouser:是否允许普通用户挂载此设备
- acl:启用此文件系统上的acl功能
- 注意:上述选项可多个同时使用,彼此使用逗号分隔:default=rw,suid,dev,exec,auto,nouser,async。
- device:指明要挂载的所有设备
- 卸载命令:
- # umount DEVICE
- # umount MOUNT_POINT
- 查看正在访问指定文件系统的进程
- # fuser -v MOUNT_POINT
- 终止所有在访问指定的文件系统的进程
- # fuser -km MOUNT_POINT
- 挂载交换分区:
- 启用交换分区:swapom
- swapon [OPTION]… [DEVICE]
- -a:激活所有的交换分区
- -p PRIORITY:指定优先级
- swapon [OPTION]… [DEVICE]
- 禁用交换分区:swapoff [OPTION]… [DEVICE]
- 启用交换分区:swapom
- 内存空间使用状态:
- free [OPTION]
- -m:以MB为单位
- -g:以GB为单位
- free [OPTION]
- 文件系统空间占用等信息的查看工具
- df命令
- -h:human-readable
- -i:inodes instead of blocks
- -p:以posix兼容的格式输出
- df命令
- 查看某目录总体空间占用状态
- du命令:du [OPTION]… DIR
- -h:human-readable
- -s:summary
- du命令:du [OPTION]… DIR
- 文件挂载的配置文件:/etc/fstab
- 每行定义一个要挂载的文件系统
- 要挂载的设备或伪文件系统:挂载点、文件系统类型、挂载选项、转储频率、自检次序
- 要挂载的设备或伪文件系统:
- 设备文件、LABEL(LABEL=”“)、UUID(UUID=”“)
- 伪文件系统名称(proc,sysfs)
- 挂载选项:
- default
- 转储频率:
- 0:不做备份
- 1:每天转储
- 2:每隔一天转储
- 自检次序:
- 0:不自检
- 1:首先自检(一般只有rootfs才用)
- …
- 要挂载的设备或伪文件系统:
- 文件系统上的其他概念:
- Inode:Index node,索引节点
- 地址指针:一个指向地址的指针,也就是指针的指针
- 直接指针:所有指针直接指向该文件的数据块
- 间接指针:指向指针的块,然后指向文件的数据块的指针
- 三级指针:指向指针的其他块的然后指向该文件的数据块的指针的其他块的指针块的指针)
- inode bitmap:对位表示每个inode空闭与否的状态信息
- Inode:Index node,索引节点
- 链接文件
- 硬链接:
- 不能对目录进行
- 不能跨分区进行
- 只想同一个inode的多个路径;创建文件的硬链接即为为inode创建新的引用路径,因此会增加其引用计数
- 符号链接:
- 可以对目录进行
- 而且可以跨分区
- 指向另一个文件的路径:其大小为指向的路径字符串的长度,不增加或减少目标文件inode的引用计数
- ln [-sv] SRC DEST
- -s:symbolic link,对源文件建立符号链接而非硬链接
- -v:verbose,显示指令执行过程
- 硬链接: