2.1 磁盘结构
2.2 MBR与磁盘分区表示
2.3 磁盘分区结构
3.1 格式化(mkfs命令)
3.2 创建交换文件系统(mkswap命令)
3.3 挂载、卸载文件系统(mount)
3.4设置文件系统的自动挂载
磁盘基本概念:
每个硬件设备都会以一个文件的形式映射到/dev(设备文件)目录下,SCSI设备时sda、sdb等。
磁盘的分区
每一个硬盘设备,Linux分区分配1-16序列号码;有三个分区,分别为主分区,扩展分区,逻辑分区。
主分区:启动操作系统,存放启动系统和引导程序;
扩展分区:占用一个设备号,sd4;
逻辑分区:是拓展分区的具体表现;
Linux安装时一般选择ext3格式,这个文件格式存取效率高,是一种日志型文件系统,是GUN/Linux系统中标准的文件系统。当一个分区做成了ext3文件系统,使用时需要进行挂载,默认目录为/mnt,若需要再建其他目录为挂载点,光驱为只读系统。
swap分区
swap分区,即交换分区,系统在物理内存不够时,把物理内存中的一部分空间释放出来,以供当前使用;释放出来的空间是一些很长时间没有操作的程序,临时保存在swap分区中,等需要时从swap分区中恢复数据到内存中。
扩充一块swap空间,此操作是在“/”(根目录)下,只是显示操作步骤(尽量避免使用根分区)
硬盘的物理结构:
盘片 硬盘有多个盘面,每盘片有2面
磁头 每面一个磁头
硬盘的数据结构:
扇区:盘片被分为多个扇形区域,每个扇区存放512字节
磁道:同一盘片不同半径的同心圆
磁盘存储容量:
磁盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
磁盘接口类型:
IDE (并口)
SATA(串口)
scsi 服务器专用
主引导记录(MBR:Master Boot Record)GPT最多可分128分区
1、MBR位于硬盘第一个物理扇区处 (第一个扇区一般用于引导,后面的
2、MBR中包含硬盘的主引导程序和硬盘分区表
3、分区表4个分区记录区,每个分区记录区站16个字节
Linux中将硬盘、分区等设备均表示为文件
/dev/hda5 结构:
hd是接口 IDE a是磁盘序列号(第几块磁盘)a往往是逻辑分区 5是分区
/dev 设备文件所在目录,hd表示IDE设备,sd表示scsi设备
磁盘中的主分区数目只有4个
因此主分区和扩展分区的序号也就限制在1-4
扩展分区再分为逻辑分区
逻辑分区的序号将始终从5开始
XFS文件系统:
存放文件和目录数据的分区
高性能的日志型文件系统 PB
centos 7系统中默认使用的文件系统
swap 交换文件系统:
为Linux系统建立交换分区
Linux支持的其他文件系统类型:
EXT4 EXT3 是centos5和6的系统
FAT16 FAT32 NTFS
EXT4 JFS…………
交互模式常用指令:
检查并确认新硬盘:
fdisk命令 (我们先根据需要在虚拟机中添加磁盘)
查看或管理磁盘分区格式:
fdisk -l [磁盘设备] (查看磁盘分区)
或
fdisk [磁盘设备] (管理磁盘分区)
示例:
1、查看磁盘分区 fdisk -l /dev/sda
[root@localhost dev]# fdisk -l /dev/sda (查看sda磁盘分区)
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a2ffa
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 12584959 6291456 83 Linux
/dev/sda2 12584960 54527999 20971520 83 Linux
/dev/sda3 54528000 62916607 4194304 82 Linux swap / Solaris
/dev/sda4 62916608 83886079 10484736 5 Extended
/dev/sda5 62918656 83886079 10483712 83 Linux
带有*的磁盘代表磁盘内有引导文件,可存储数据的分区,分区与逻辑分区
2、管理磁盘分区
新建第一个分区1,分配10G
命令(输入 m 获取帮助):n (创建新分区)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p (选择主分区primary)
分区号 (1-4,默认 1):
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
新建第二个分区,创建分区为FAT格式
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (20973568-83886079,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-83886079,默认为 83886079):+10G
分区 2 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):t (转换分区格式)
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):b (b代表FAT32格式)
WARNING: If you have created or modified any DOS 6.xpartitions, please see the fdisk manual page for additionalinformation.
已将分区“Linux”的类型更改为“W95 FAT32”
创建一个扩展分区,分配10G:
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): e (e代表扩展分区)
分区号 (3,4,默认 3):
起始 扇区 (41945088-83886079,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-83886079,默认为 83886079):+10G
分区 3 已设置为 Extended 类型,大小设为 10 GiB
创建一个逻辑分区 5
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l (l代表逻辑分区)
添加逻辑分区 5
起始 扇区 (41947136-62916607,默认为 41947136):
将使用默认值 41947136
Last 扇区, +扇区 or +size{K,M,G} (41947136-62916607,默认为 62916607):
将使用默认值 62916607
分区 5 已设置为 Linux 类型,大小设为 10 GiB
最后显示配置列表:
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0a286e99
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 41945087 10485760 b W95 FAT32
/dev/sdb3 41945088 62916607 10485760 5 Extended
/dev/sdb5 41947136 62916607 10484736 83 Linux
最后保存配置:
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
格式ID查询命令:L
常用格式类型:
b:FAT32格式
fd:Linux raid 自动
82:swap
83:代表系统默认文件类型 ext4或xfs
(扩展分区Extended ID为5)
需注意:扩展分区不能直接用于存储
三、创建文件系统
Make Filesystem,创建文件系统(格式化)
格式:
mkfs -t 文件类型 分区设备 (-t type 转换成xxx格式,例如xfs。 分区设备常用/del/sdb1)例如:mkfs -t /dev/sdb1
或者
mkfs.xfs /dev/sdb1
示例:
[root@localhost dev]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost dev]#
mkswap命令 (虚拟内存)
mske swap ,创建交换文件系统
swaptotal 虚拟内存
做成swap模式的时候需要对磁盘进行格式转换
格式:mkswap 分区设备
示例:
[root@localhost dev]# mkswap /dev/sdb5
mkswap: /dev/sdb5: warning: wiping old xfs signature.
正在设置交换空间版本 1,大小 = 10484732 KiB
无标签,UUID=86b9dc34-6f52-4933-86e0-d44135577d46
转换/dev/sdb5格式为swap
ps:cat /proc/meminfo 查看cpu、内存信息
我们可以进行过滤 grep -i “swap” /proc/meminfo*
示例:
[root@localhost dev]# grep -i "swap*" /proc/meminfo
SwapCached: 0 kB
SwapTotal: 4194300 kB /swap的总计空间
SwapFree: 4194300 kB
临时添加交换分区
swapon /dev/sdb5
示例:
[root@localhost dev]# swapon /dev/sdb5
[root@localhost dev]# grep -i "swap*" /proc/meminfo
SwapCached: 0 kB
SwapTotal: 14679032 kB /临时增加10G空间
SwapFree: 14679032 kB
临时增加10G空间(增加量为原本sdb5的总计空间大小)
减少交换分区
swapoff /dev/sdb5
示例:
[root@localhost dev]# swapoff /dev/sdb5
[root@localhost dev]# grep -i "swap*" /proc/meminfo
SwapCached: 0 kB
SwapTotal: 4194300 kB
SwapFree: 4194300 kB
减少了10G空间(减少量为原本sdb5的总计的空间大小)
mount命令
挂载文件系统、ISO镜像到指定文件夹
格式:mount [-t 类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
示例:
我们现在/opt目录下创建demo01子目录,然后将sdb1挂载到/opt/demo01下:
[root@localhost dev]# mkdir /opt/demo01 (创建子目录)
[root@localhost dev]# ls /opt/
demo01 rh
[root@localhost dev]# mount /dev/sdb1 /opt/demo01 (将sdb1挂载到opt目录下的子目录demo01上)
[root@localhost dev]# df -hT (查看挂载信息)
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.5G 16G 23% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
/dev/sda5 xfs 10G 38M 10G 1% /home
tmpfs tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 24K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 xfs 10G 33M 10G 1% /opt/demo01
[root@localhost dev]#
umount命令
卸载已挂载的文件系统
格式:umount 存储设备位置
或:umount 挂载点目录
示例:
[root@localhost dev]# cd .. (回到父目录)
[root@localhost /]# umount /dev/sdb1 (接挂载)
[root@localhost /]# df -hT (查看挂在信息)
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.5G 16G 23% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
/dev/sda5 xfs 10G 38M 10G 1% /home
tmpfs tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 24K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
[root@localhost /]#
我们在操作文件挂载后,如果重启可能会导致失效(临时挂载),所以我们需要配置文件系统的自动挂载。
配置文件:/etc/fstab
包含需要开机后自动挂载的文件系统记录
示例:
[root@localhost opt]# vi /etc/fstab 编辑fstab文件
#
# /etc/fstab (文件名)
# Created by anaconda on Sun Oct 27 15:47:27 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1cdaa1f7-8d44-4a00-b153-b0ba1b763ba2 / xfs defaults 0 0
UUID=32aee843-60bd-43b1-94f0-b9af529c2744 /boot xfs defaults 0 0
UUID=07145df9-e2e8-4e89-b08e-1fa3aac7dfc4 /home xfs defaults 0 0
UUID=13e8b5ea-7f99-4459-a180-8c11e6d3e543 swap swap defaults 0 0
/dev/sdb1 /opt/demo01 xfs defaults 0 0
其中“/dev/sdb1 /opt/demo01 xfs defaults 0 0 ”的含义:
dev/sdb1 :代表设备名称(按tab键切到下一个命令输入点)
/opt/demo01:代表挂载点 (按tab键切到下一个命令输入点)
xfs :代表文件系统类型(按tab键切到下一个命令输入点)
defaults:功能权限,rw(可读可写),ro(只读),exec(执行)
noexec(不允许执行)defaults(能都能写能执行)。(按tab键切到下一个命令输入点)
0:代表是否容灾备份(kump,可以被去掉。若为1则开启容灾 0则不开启) (按“空格”键切到下一个命令输入点)
0:启动检查序列 (0 不进行检查 1 优先进行检查 2 检查完1后再检查)
输入完成后保存退出,之后我们有两种方法可以让指令生效,第一种为重启,第二种使用mount -a(将所有的设备和挂载点重新挂载)。
示例:
[root@localhost dev]# vim /etc/fstab (退出保存编辑)
[root@localhost dev]# df -hT (查看挂载信息)
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.5G 16G 23% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 38M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 20K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64 (没有/etc/sdb1的挂载信息)
[root@localhost dev]# mount -a (将所有的设备和挂载点重新挂载)
[root@localhost dev]# df -hT (查询挂载点)
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.5G 16G 23% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 38M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 20K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 xfs 10G 33M 10G 1% /opt/demo01 (最后一条为/dev/sdb1的挂载信息)
分区==》格式化==》挂载 挂载流程
首先我们在虚拟机中添加磁盘,用fdisk对磁盘进行分区。
分区后开始格式化文件系统的类型。
创建挂载点目录,将磁盘的分区进行挂载。
我们可以用df -hT查询挂载信息。
进入/etc/fstab 配置自动挂载,配置完成后使用mount -a 重新加载挂载,最后查询挂点信息。