一、磁盘的构成:
组成:磁盘盘(数据存储,有扇区、柱面、最小存储单元:一个扇区,)、机械手臂、磁头、转动马达
作用:存储数据
磁盘分区表的两种格式:
MBR格式:四个主分区
GPT格式
1、磁盘文件名:
实体磁盘(U盘)的文件名: /dev/sd[a-p] [1-128] (数字表示分区号)
IDE磁盘的文件名: /dev/hd[a-d]
虚拟磁盘的文件名:/dev/vd[a-d] [1-128]
2、磁盘构成:
盘面:
硬盘上有一个或者多个盘片,每个盘片可以有两个面,第一个盘片的正面称为0面,反面称为1面;第二个盘片的正面称为2面,反面称为3面…以此类推。
磁头:
每一个盘面都有两个磁头,第一块盘片 正面的磁头称为0磁头,反面的称为1磁头;第二块盘片的正面称为2磁头,背面称为3磁头…以此类推,在盘面读取数据。(磁头数与盘面数是一样的)
磁道:
由圆心开始向外画圆,每个圆环称为磁道,用于存储数据。当电脑关机时磁头放在离盘心近的位置,称为着陆区,着陆区不存储任何数据。(离盘心最远的磁道称为0磁道)
扇区:
每个磁道上划分多个块(像一个弧断),这些弧段称为扇区,每个扇区可以存放512个字节。扇区上有编号,顺序为:磁盘,磁道,第几扇区(磁道从0开始,依次递增)
数据存放顺序: 不是扇区编号存储数据,是交叉存储数据,避免空转现象。(软盘的磁道上扇区号是按序排列的,而硬盘的磁道上的扇区号是按照某种间隔跳跃编排的)
柱面:
是抽象的逻辑概念,实际上数据读取是按照柱面顺序读取的。
寻道时间:
各不相同,划过扇区读取数据的时间。硬盘寻道采用CHS的方式:柱面,磁头,扇区
硬盘容量=柱面数(磁道数) * 磁头数 * 单磁道扇区数 * 单个扇区容量大小(一般为512字节)
Linux文件系统: 权限和属性数据存放在 inode 中,实际上数据存放在 data block 中,文件系统的整体信息放在 superblock 中。
3、MBR:
MBR信息:位于整个硬盘的0磁道0柱面1扇区,共512个字节
446个字节:主引导记录(加载启动项,分区信息,加载信息位置)
64个字节:分区信息
4个主分区(最小有1个,最大有4个):引导分区的信息和数据
主1,主2,主3,主4(第四个主分区可分为:扩展分区(最大有1个),逻辑分区(最小0个,最大无数个))
2个字节:结束标志
注: 引导分区的信息:16字节。它包括:1引导标志,2-4分区的起始位置,5分区类型,6-8分区结束位置,9-12逻辑起始扇区号,13-16总的扇区数
二、磁盘分区命令:
1、fdisk:查看系统分区详细信息
[root@localhost ~]# fdisk /dev/sd*
//*指的是对哪个硬盘进行分区,就写哪个硬盘。eg:fdisk /dev/sda 表示对a这一块磁盘进行分区
eg:
[root@localhost ~]# partx -a /dev/sda
//表示对硬盘进行更新
[root@localhost ~]# fdisk -l
[root@localhost ~]# mkfs.ext4 /dev/sda4
[root@localhost ~]# mount /dev/sda4 /mnt
//进行挂载使用
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 19G 12G 6.8G 64% /
devtmpfs 223M 0 223M 0% /dev
tmpfs 235M 0 235M 0% /dev/shm
tmpfs 235M 5.7M 229M 3% /run
tmpfs 235M 0 235M 0% /sys/fs/cgroup
/dev/sda1 497M 149M 349M 30% /boot
tmpfs 47M 0 47M 0% /run/user/0
//查看挂载情况,根下,boot,swap不能动
-a:设置启动分区
-b:编辑分区标签
-d:删除一个分区
-l:列出已知分区
-m:打印这个菜单
-n:新增分区
-o:新建新的空白DOS分区表
-p:打印分区表
-q:退出不保存
-t:修改分区类型
-u:改变显示单位
-v:校验分区表
-w:保存退出
格式化:
[root@localhost ~]# mkfs.ext4 /dev/sda*
//只有格式化后才能进行挂载使用
[root@localhost ~]# mkfs.xfs /dev/sda*
2、文件系统管理类命令:
mkfs:查看属性工具
mkfs.ext2,mkfs.ext3,mkfs.ext4,
xfs
btrfs
mkfs.ext2 分区
-t:指定创建的文件系统类型
mkfs -t ext4 =mkfs.ext4
-b:创建文件系统指明块大小
1024 2048 4096
-L label标签:指明卷标
-j:创建有日志功能的文件系统
-i:指明 inode 与字节的比率
-N:直接指定创建的文件系统的 inode 数量
-m:指定预留空间
e2label:设定与查看卷标
设定 :e2label device label
查看 :e2label device
[root@localhost ~]# e2label /dev/sdb TEST
[root@localhost ~]# e2label /dev/sdb
fsck.ext2:检查文件系统的工具
-c:显示检查进度
3、查看属性的工具:
dumpe2fs:显示ext系列文件系统的属性信息
格式: dumpe2fs device
tune2fs 修改文件系统属性(ext系列)
文件系统的块大小
-l:查看块内容
-j:修改指定的文件系统类型
-L:修改卷标
-m:调整预留空间的百分比
resize2fs:调整 ext 系列的文件系统的大小
-f:强制执行
-M:将文件系统缩小至最小值
-P:直接显示文件系统可以缩小的最小值
e2fsck:磁盘修复(修复前需要卸载挂载点)
-a:检查分区,若发现问题可自动修复
-b:设定superblock的位置
-B size:设定区块大小
-c:检查分区是否有坏道
-f:强制检查
blkid:获取文件系统类型,UUID,卷标
blkid device
-U UUID,根据 UUID 定位设备
-L label:根据 label 定位设备
[root@localhost ~]# blkid -U 22b94295-e3e7-4111-927b-0b6d6ed64e40
/dev/sdb1
//查看当前分区挂在哪里
4、交换分区: swap
作用:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
fdisk device
t 82
1.准备分区
[root@localhost ~]# fdisk /dev/sdb
//输入t,将转换分区的ID为 82
[root@localhost ~]# partprobe /dev/sdb
[root@localhost ~]# ll /dev/sdb
mkswap:格式化
2.初始化
[root@localhost ~]# mkswap /dev/sdb1
3.挂载
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="b8e2b21c-40c7-4d83-97e1-2deeefa8a5c6" TYPE="swap"
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# swapon -a
[root@localhost ~]# swapon -s
dd: if=/dev/zero of=/dir/filename bs=1【K,M,G】 count=N
(bs表示1个快大小)
/etc/fstab
UUID="4a3d5ab7-4e3e-4baa-a3a3-f0386901a12f" swap swap defaults 0 0
swapon -a:根据文件挂载swap分区(查看当前分区)
swapoff device:关闭
swapon -s:显示激活的swap分区
[root@localhost ~]# dd if=/dev/zero of=/mnt/swap bs=1M count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 14.0015 s, 38.3 MB/s
[root@localhost ~]# ls /mnt/
swap user3
[root@localhost ~]# ls -l /mnt/
total 524288
-rw-r--r--. 1 root root 536870912 Aug 5 15:36 swap
drwx------. 2 user4 user3 62 Jul 28 16:06 user3
[root@localhost ~]# mkswap /mnt/swap
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=b8e2b21c-40c7-4d83-97e1-2deeefa8a5c6
[root@localhost ~]# vi /etc/fstab
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sr0 /media iso9660 defaults 0 0
UUID=22b94295-e3e7-4111-927b-0b6d6ed64e40 swap swap 0 0
/mnt/swap swap swap defaults 0 0
[root@localhost ~]# swapon -a
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 1048572 0 -2
/mnt/swap file 524284 0 -3
5、磁盘挂载等相关核心工具:
mount:查看当前系统的挂载情况
mount -t 系统类型 -o 选项 设备 挂载点
ro:只读
rw:读写
acl:支持ACL功能
-n:默认情况下,设备挂载或卸载的操作会同步更新到/etc/mtab文件中;-n用于禁止此操作。
-L label:挂载时以卷标的方式指明设备
-U UUID:挂载时以UUID的方式指明设备
mount -o ro:只读挂载
umount :卸载挂载点
umount 设备
umount 挂载点
查看哪些进程占用挂载点:
lsof 挂载点
fuser -v 挂载点
终止挂载点使用:
fuser -km 挂载点
lsof:列出所有被打开的文件,指进程
lsof -c process :显示进程打开的文件
losf -p 进程号(eg:1234):列出进程1234打开的文件
losf -i :显示符合条件的进程
losf -u 用户名:某一用户打开
[root@localhost ~]# lsof -c crond
[root@localhost ~]# lsof /proc
//列出某一目录或文件正在被谁使用
[root@localhost ~]# lsof -u root
//列出root用户打开的文件
[root@localhost ~]# lsof -i
//打开所有网络连接
[root@localhost ~]# lsof -i tcp
//通过tcp打开的网络连接
[root@localhost ~]# lsof -i :8080
//列出通过端口8080打开的文件
df:显示磁盘分区上可使用的空间
-h:原本以字节显示,加上-h后以KB,MB,GB单位显示,以1024为单位
-H:以1000为单位,而不是1024
-i:显示 inode 使用情况
[root@localhost a]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 19G 13G 6.2G 67% /
devtmpfs 223M 0 223M 0% /dev
tmpfs 235M 0 235M 0% /dev/shm
tmpfs 235M 5.7M 229M 3% /run
tmpfs 235M 0 235M 0% /sys/fs/cgroup
/dev/sr0 11G 11G 0 100% /media
/dev/sda1 497M 149M 349M 30% /boot
tmpfs 47M 0 47M 0% /run/user/0
[root@localhost a]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 9703424 57703 9645721 1% /
devtmpfs 56996 400 56596 1% /dev
tmpfs 59977 1 59976 1% /dev/shm
tmpfs 59977 774 59203 2% /run
tmpfs 59977 16 59961 1% /sys/fs/cgroup
/dev/sr0 0 0 0 - /media
/dev/sda1 256000 334 255666 1% /boot
tmpfs 59977 1 59976 1% /run/user/0
du:显示文件大小
-h:以K,M,G为单位显示
-a:显示目录中的文件大小
-c:显示目录中文件大小,并且显示总和
-S:显示文件大小,并且显示当前目录大小
-s:只显示当前目录大小
-k:以KB形式显示
-m:以MB形式显示
[root@localhost a]# du -a
0 ./file1
0 ./file2
0 ./file3
0 ./file4
0 ./file5
0 .
[root@localhost a]# du -s
4
挂载配置文件:/etc/fstab
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
1.fstab文件中的参数
第一列:device 设备文件(UUID 或 设备文件 或 卷标),建议使用UUID
第二列:挂载点
第三列:filesystem磁盘文件格式,xfs ext4 swap iso9660
第四列:文件系统的参数(默认defaults)
第五列:能不能备份
0:不备份
1:每天都要备份
2:不定期备份
第六列:是否校验扇区
0:不校验
1:最先校验
2:在1之后校验
2.挂载限制:
根目录必须挂载,而且比其他挂载点优先挂载。
挂载点必须是已经存在的目录。
每一个分区只能挂载一次
所有挂载点在同一时间只能挂载一次。
所有分区在同一时间只能挂载一次。
卸载挂载时,必须将工作目录退出挂载点(及其子目录)之外