一.分区工具fdisk
(1)分区工具fdisk工具的使用:
fdisk -l -u :查看分区表,该命令是在磁盘上看分区的情况。在内存看的方法是"lsblk,ls /dev/sdb ,cat /proc/partition"(在centos6中,查看的分区是以柱面为单位,而centos7中是以扇区为单位)
'可以通过fdisk -l -u 进行单位的转换'
p 分区列表
fdisk /dev/sdb:管理分区列表
子命令的学习
t 更改分区类型
n 创建新分区
d 删除分区——将不要的分区删除,在执行时,选择删除具体的分区号
v 校验分区
u 转换单位 ——centos6与centos7中的以扇区为单位和柱面为单位进行转换
w 保存并退出 ——保存后,磁盘的内容会同步到内存中
q 不保存并退出注意:在执行w和d命令的时候,会发生内存和磁盘之间不同步的情况,因此每次分区后,都要确认是否同步
在centos6中无法用上图中的方法同步磁盘与内存的内容,但是可以通过执行"partx -a /dev/sda(增加磁盘分区)实现同步或是partx -d --nr 6-8(删除磁盘分区第6到8行)"
(2)查看内核是否已经识别新的分区:
cat /proc/partations 或者是 lsblk
centos6通知内核重新读取硬盘分区表(partprobe无法再centos6中实现)
新增分区用
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE
-f: force 删除分区用
partx -d --nr M-N /dev/DEVICE
CentOS 5,7: 使用partprobe partprobe [/dev/DEVICE]
二.文件系统
(1)文件系统的概念
文件系统是操作系统用于明确存储设备或分区上的文件的方 法和数据结构;即在存储设备上组织文件的方法。操作系统 中负责管理和存储文件信息的软件结构称为文件管理系统, 简称文件系统
从系统角度来看,文件系统是对文件存储设备的空间进行组 织和分配,负责文件存储并对存入的文件进行保护和检索的 系统。具体地说,它负责为用户建立文件,存入、读出、修 改、转储文件,控制文件的存取,安全控制,日志,压缩, 加密等
(2)文件系统类型
Linux文件系统:ext2(Extended file system), ext3(相对于ext2,增加了日志功能)
日志的功能:在实际运行中磁盘会将数据输送到内存中,在内存中多次修改数据后,将数据统一写入到磁盘中,也就是延迟写入磁盘中,提高工作效率。但是缺陷是内存在服务器断电后无法存储数据,那么之前修改的内容就会全部消失。所以增加日志的功能来解决上述问题——日志位于磁盘中,内存修改的数据会写入日志中,日志将数据存储后,等到磁盘不繁忙的时候将数据(所有修改后的数据)写入到磁盘中,减少位寻址的时间,提高工作效率。
ext4——能够支持更大的文件
xfs(SGI)——应用在centos7上
btrf(Oracle)
reiserfs
jfs( AIX)——应用于IBM小型机上
swap——实现虚拟内存 ,属于特殊分区
光盘:iso9660
Windows:FAT32, exFAT,NTFS
Unix: FFS(fast), UFS(unix), JFS2
网络文件系统:NFS, CIFS
集群文件系统:GFS2, OCFS2(oracle)
分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:未经处理或者未经格式化产生的文件系统
(3)文件系统分类
根据其是否支持"journal"功能:
日志型文件系统: ext3, ext4, xfs, ...
非日志型文件系统: ext2, vfat
文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:
mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:
VFS
查前支持的文件系统:cat /proc/filesystems
(4)创建文件系统
mkfs命令:
mkfs.FS_TYPE /dev/DEVICE
ext4 xfs btrfs vfat
mkfs -t FS_TYPE /dev/DEVICE mke2fs /dev/sdc2
-L 'LABEL': 设定卷标
(5)创建ext文件系统
mke2fs:ext系列文件系统专用管理工具 ——不支持xfs
-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的大小
"mkfs.ext4 -i 4096 -b 1024 /dev/sdc5:为一个inode创建4096字节的空间,而一个数据块为1024个字节,也就是说一个inode(文件)对应四个数据块。如果inode的字节空间小于或等于数据块,会使节点号空间大,而数据块变小,而导致节点号的浪费"
-N #:指定分区中创建多少个inode——mkfs.ext4 -N 25600 /dev/sdc5
-I 一个inode记录占用的磁盘空间大小,128---4096——最小为128个字节,最大为4096个字节,修改占用磁盘空间的数值为128的倍数
-m #: 默认5%,为管理人员预留空间占总空间的百分比 ——根据分区空间大小而定,如果一个分区很大,可以将默认值改为小于%5的值"tune2fs -m 1 /dev/sdc5"
-O FEATURE[,...]:启用指定特性
-O ^FEATURE:关闭指定特性
(6)文件系统标签
指向设备的另一种方法
与设备无关
blkid:块设备属性信息查看 ——blkid /dev/sdc5
不支持用blkid查看文件,若果想看,可以通过手动修改的方式实现——
dd if=/dev/zero of=/app/partfile bs=1M count=500,然后通过blkid /app/partfile可以查看属性
blkid [OPTION]... [DEVICE]
-U UUID: 根据指定的UUID来查找对应的设备
小练习:查看/etc/fstab 下的 /app 的uuid对应的设备名
-L LABEL:根据指定的LABEL来查找对应的设备
e2label:管理ext系列文件系统的LABEL e2label DEVICE [LABEL] ——通过该命令可以设置相同的卷标名,操作系统不会检查,因此更加明确配置文件的时候最好写uuid
例: e2lable /dev/sda2(设备名) /mnt/sdc5(卷标名)——给sda2设定了卷标名
查看卷标名: e2lable 设备名
findfs :查找分区
findfs [options] LABEL=
三.挂载mount
挂载:将额外文件系统与根文件系统某现存的目录建立起关联 关系,进而使得此目录做为其它文件访问入口的行为
挂载点下原有文件在挂载完成后会被临时隐藏
卸载:为解除此关联关系的过程 ——取消挂载时,可以写设备名,也可以写挂载点,取消挂载时,如果挂载在使用,也不能取消,只有离开挂载的时候才能取消
把设备关联挂载点:mount Point mount
挂载点目录一般为空
**注意:多个设备不能挂载在同一个挂载点上,但是一个设备可以挂载在多个挂载点上
挂载方法:mount DEVICE(设备名) MOUNT_POINT(挂载点)
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f145e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录
进程正在使用中的设备无法被卸载
一些常用的选项命令
-B, --bind: 绑定目录到另一个目录上
-t vsftype:指定要挂载的设备上的文件系统类型 ——一般不用t选项,应为mount本身就具备文件系统类型
-r: readonly,只读挂载
-w: read and write, 读写挂载
-n: 不更新/etc/mtab,mount不可见——可以通过cat /proc/mounts的方式来查看
-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab 文件中,且挂载选项中有auto功能)
-L 'LABEL': 以卷标指定挂载设备
-U 'UUID': 以UUID指定要挂载的设备
查看内核追踪到的已挂载的所有设备 cat /proc/mounts
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式
sync:同步模式,内存更改时,同时写磁盘
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载,是否支持-a选项
exec/noexec:是否支持将文件系统上运行应用程序
dev/nodev:是否支持在此文件系统上使用设备文件
loop: 使用loop设备——正常情况下,无法将文件挂载在挂载点(目录) 因此使用loop功能来实现——
suid/nosuid:是否支持suid和sgid权限——在挂载过程中,有时候如果加上suid权限,那么普通用户会继承权限,然后对文件进行修改甚至是破坏。因此必要时应该加上nosuid来保护文件
remount:重新挂载——mount -o remount rw /mnt/sdc5重新挂载恢复读写功能
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备,/etc/fstab使用
acl:启用此文件系统上的acl功能——在centos6中,后分的分区没有acl功能。通过mount -o remount ,acl /dev/sdc2 给该分区增加acl权限。取消: mount -o remount,noacl /dev/scd2
但是此方法会消耗loop设备,消耗完后,无法在使用该方法
当loop设备消耗完后,可以通过mknod的方式来创建新的loop设备
在centos7中自动生成loop设备,并且会根据用户的需求来创建loop设备
在centos6中,以后可以事先就准备好多个loop设备来实现文件挂载到目录上——vim /boot/grub/gurb.conf
defaults:相当于rw, nosuid, dev, exec, auto, nouser, async——这些都是默认功能
四.卸载命令
(1)看挂载情况 findmnt MOUNT_POINT|device
findmnt /dev/sdc2 echo $?或是 findmnt /mnt echo $
查看正在访问指定文件系统的进程
lsof MOUNT_POINT
fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程 fuser -km MOUNT_POINT
卸载 umount DEVICE umount MOUNT_POINT
(2)挂载点和/etc/fstab
配置文件系统体系
被mount、fsck和其它程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a 命令挂载/etc/fstab中的所有文件系统
(3)文件挂载配置文件
/etc/fstab每行定义一个要挂载的文件系统
要挂载的设备或伪文件系统
设备文件
LABEL:LABEL=""
UUID:UUID=""
伪文件系统名称:proc, sysfs
挂载点
文件系统类型
挂载选项:defaults
转储频率:0:不做备份 1:每天转储 2:每隔一天转储
自检次序: 0:不自检 1:首先自检;一般只有rootfs才用1
五.处理交换文件和分区
交换分区的概念:交换分区是系统RAM的补充——与内存交换数据,当内存空间不够的时候,可以代替内存来临时使用(相当于模拟内存,但不能持续使用,运行速度较慢)。用户不能直接在swap里存数据
基本设置包括:
1 创建交换分区或者文件 2 使用mkswap写入特殊签名 3 在/etc/fstab文件中添加适当的条目 4 使用swapon -a 激活交换空间(1)挂载交换分区
启用:swapon swapon [OPTION]... [DEVICE]
-a:激活所有的交换分区;
-p PRIORITY:指定优先级
/etc/fstab:pri=value
禁用:swapoff [OPTION]... [DEVICE]
当给虚拟机增加1G内存的时候,根据计算规则swap分区相应也也增加一倍,但是swap内存大小是无法改变的,因此只能通过增加swap的数量来到目的
实现步骤:1.创建一个新的分区,fdisk /dev/sdb1, 分两个G的空间,文件类型为swap
[root@centos7 ~]#mkswap /dev/sdb1——用swap的方式格式化
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=375d5eb3-eccc-40a6-bd10-ef608f5661c2
[root@centos7 ~]#blkid——查看是否生效
/dev/sda1: UUID="6557897d-1496-4f78-ae5e-752fc7144b88" TYPE="xfs"
/dev/sda2: UUID="x33BZA-DiXm-yA9v-Yo76-cOya-0AQ3-ZqC1eX" TYPE="LVM2_member"
/dev/sr0: UUID="2016-12-05-13-52-39-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/cl-root: UUID="a90515e3-934d-44bc-9af5-7c944741e496" TYPE="xfs"
/dev/mapper/cl-swap: UUID="90c6521e-424f-4135-a851-1ae0f65cd661" TYPE="swap"
/dev/mapper/cl-app: UUID="a8322ecd-0d0a-4f80-9899-141c3873f4b8" TYPE="xfs"
/dev/sdb1: UUID="375d5eb3-eccc-40a6-bd10-ef608f5661c2" TYPE="swap"
2.写入/ect/fstab
3.保存后,通过swapon -a 来激活交换空间,此时swap的内存成功增加一倍
(2)SWAP的优先级
可以指定swap分区0到32767的优先级,值越大优先级越高
如果用户没有指定,那么核心会自动给swap指定一个优先级 ,这个优先级从-1开始,每加入一个新的没有用户指定优先 级的swap,会给这个优先级减一
先添加的swap的缺省优先级比较高,除非用户自己指定一个 优先级,而用户指定的优先级(是正数)永远高于核心缺省指定 的优先级(是负数)
优化性能:分布存放,高性能磁盘存放- 例:对于上述刚刚增加的swap分区,我们就可以来看看其优先级大小
对此我们可以认为指定优先级的大小
六.移动介质
(1)初步介绍
挂载意味着使外来的文件系统看起来如同是主目录树的一部分
注意事项:访问前、介质必须被挂载 摘除时,介质必须被卸载
按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软 盘、USB等等)
挂载点通常在/media 或/mnt下
(2)使用光盘
在图形环境下自动启动挂载/run/media//