管理磁盘分区与文件系统
一:创建磁盘分区
1:了解磁盘分区的概念和规则
1)磁盘分区的格式
主要分为2中mbr和gpt格式
mbr格式:(最常用的)
主要有4个主分区或者3个主分区和一个扩展分区,扩展分区上面又可以划分多个逻辑分区
gpt格式:
没有主分区和扩展分区的概念,可以定义128个主分区
2)磁盘的分区的类型
主分区:可以直接在上面写数据
扩展分区:不能在上面写数据
逻辑分区:在扩展分区上面划分的,可以写数据
3)磁盘分区的原则
主分区最多有4个
扩展分区最多一个,加上主分区最多有4个,不能写入数据,包含逻辑分区
逻辑分区:可以写数据
2:了解磁盘命令的规则
ide设备 | /dev/hd[a-d] |
scsi/sata设备 | /dev/sada-d] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
sda1就是sda的第一个主分区
3:查看系统中的块设备与分区lsblk命令
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─rhel-root 253:0 0 15.5G 0 lvm / └─rhel-swap 253:1 0 4G 0 lvm [SWAP] sdb 8:16 0 5G 0 disk sr0 11:0 1 3.5G 0 rom /run/media/root/RHEL-7.3 Server.x86_64 [root@localhost ~]#
4:磁盘分区的命令:fdisk命令
1)创建分区的的流程
新添加一个硬盘,然后重启,找到硬盘的名字,才能进行后面的操作
然后使用fdisk命令来创建分区,使用fdisk命令来使用
完成分区后,刷新这个分区,partprobe /dev/sdb 就能看的到创建好的分区的列表
有一个起始扇区和一个结束扇区,前面还有一个0号扇区,用于存储磁盘的信息,或者打印磁盘列表的信息
fdisk -l 就是查看磁盘的分区列表
fdisk格式:
fdisk 磁盘
常见的选项:
d | 删除磁盘分区 |
l | 列出所有支持的分区类型 |
m | 获取帮助(列出所有命令) |
n | 创建新的分区 |
p | 列出磁盘分区的情况 |
q | 退出磁盘分区(不做任何的修改) |
t | 更改分区的类型 |
w | 将更改写入磁盘,并退出 |
常见的操作就是,将一块磁盘分为3个主分区,1个逻辑分区
下面就来操作一下
命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 5 起始 扇区 (1232896-10485759,默认为 1232896): 将使用默认值 1232896 Last 扇区, +扇区 or +size{K,M,G} (1232896-10485759,默认为 10485759):+200M 分区 5 已设置为 Linux 类型,大小设为 200 MiBh
划分三个主分区,剩下的空间全给扩展分区,然后在上面划分逻辑分区
二:创建文件系统
1:了解文件系统
分好了磁盘的分区,就要将磁盘变成文件系统,因为磁盘就是存储数据的,就相当于格式化
常见的文件系统:
ext2,ext3,ext4(常见的),nfs,iso9660,swap
2:创建文件系统的命令 mkfs
格式: mkfs 选项 文件系统
选项:
-t 类型 指定创建文件系统
-c 建立文件系统之前先检查坏块
-V 输出建立文件系统的详细信息
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
3:修复文件系统的命令:fsck命令
选项:
-a 如果有问题,则自动修复
-t 指定文件系统的类型
-s 逐个进行检查
三:手动挂载与卸载文件系统
1:mount命令
t ;指定文件系统的类型
r:以只读的方式挂载
w:以可写的方式挂载
a:挂载/etc/fstab中所有记录的设备
[root@localhost ~]# mount /dev/sdb1 /mnt [root@localhost ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/rhel-root xfs 16G 3.0G 13G 20% / devtmpfs devtmpfs 977M 0 977M 0% /dev tmpfs tmpfs 993M 88K 993M 1% /dev/shm tmpfs tmpfs 993M 9.0M 984M 1% /run tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 148M 350M 30% /boot tmpfs tmpfs 199M 12K 199M 1% /run/user/0 /dev/sr0 iso9660 3.6G 3.6G 0 100% /run/media/root/RHEL-7.3 Server.x86_64 /dev/sdb1 ext4 190M 1.6M 175M 1% /mnt [root@localhost ~]#
2:卸载文件系统 umount命令
[root@localhost ~]# umount /dev/sdb1 [root@localhost ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/rhel-root xfs 16G 3.0G 13G 20% / devtmpfs devtmpfs 977M 0 977M 0% /dev tmpfs tmpfs 993M 88K 993M 1% /dev/shm tmpfs tmpfs 993M 9.0M 984M 1% /run tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 148M 350M 30% /boot tmpfs tmpfs 199M 12K 199M 1% /run/user/0 /dev/sr0 iso9660 3.6G 3.6G 0 100% /run/media/root/RHEL-7.3 Server.x86_64 [root@localhost ~]#
四:LVM(逻辑卷管理)
1:为什么会出现逻辑卷原因
因为基本的磁盘分区一但设置好了的话,一但磁盘的的空间满了之后,再想往里面写入数据,就不能写入了,所以磁盘的空间是是固定的,不能随意的改变,所以逻辑卷就应运而生,逻辑卷可以随意的扩大磁盘的空间,很方便扩容
2:LVM的概念
lvm就是管理磁盘和分区的一种管理机制,传统的磁盘分区机制,就是上层直接访问磁盘,而lvm就是将磁盘封装成一个逻辑层,上层访问的是这个逻辑层,提高了磁盘的灵活性,
3:LVM的术语
pv(物理卷 Physical Volume)
将磁盘变成物理卷,可以是一块磁盘,也可以是一个磁盘的分区
vg(卷组 Volumne Group)
就是建立在物理卷之上,一个物理卷上面有可以有多个卷组,设置好卷组后,可以动态的添加物理卷到卷组中
lv(逻辑卷 Logical Volume)
就是在卷组里面划分逻辑卷,卷组中的剩余空间可以划分逻辑卷
4:扩容的流程
就是先将一个磁盘变成物理卷,然后划分卷组,在卷组里面划分多个逻辑卷,如果逻辑卷的空间满了之后,逻辑卷不能从卷组里面拿空间,添加一个磁盘,将这个磁盘变成物理卷加入到卷组里面,这样卷组的空间就会增加,所以逻辑卷就能增加空间,就能继续往里面写入数据了
5:lvm的一些命令
1)pv的操作
pvcreate | 创建物理卷 | pvcreate /dev/sdb |
pvscan | 扫描物理卷(有几个物理卷) | pvscan |
pvdisplay | 显示物理卷的详细信息 | pvdisplay /dev/sdb |
pvremove | 删除物理卷 | pvremove /dev/sdb |
2:vg的操作
vgscan | 扫描卷组 | vgscan |
vgcreate | 创建卷组 | vgcreate vg1 /dev/sdb |
vgdisplay | 显示卷组的详细信息 | vgdisplay 卷组名 |
vgextend | 扩展卷组的大小 | 就是将另外的一个物理卷添加到卷组中 |
vgreduce | 缩小卷组的大小 | 就是将另外的一个物理卷移走 |
vgremove | 删除卷组 | vgremove vg1 |
3:lv的操作
lvscan | 扫描逻辑卷 | lvscan |
lvdisplay | 显示逻辑卷 | lvdisplay /dev/卷组/逻辑卷 |
lvcreate | 创建逻辑卷 | lvcreate -L 300M -n 逻辑卷名 卷组名 |
lvextend | 扩展逻辑卷的大小 | lvextend -L +200M /dev/卷组名/逻辑卷名 |
lvreduce | 缩小逻辑卷的大小 | lvreduce -L -300M /dev/卷组名/逻辑卷名 |
lvremove | 删除逻辑卷 | lvremove /dev/vg/lv1 |
6:lvm的操作
1:逻辑卷的扩容
操作:
1:将磁盘变成物理卷
[root@localhost /]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. [root@localhost /]#
2:将物理卷变成卷组
[root@localhost /]# vgcreate vg1 /dev/sdb Volume group "vg1" successfully created [root@localhost /]#
3:在卷组里面划分逻辑卷
[root@localhost /]# lvcreate -L 300M -n lv1 /dev/vg1 Logical volume "lv1" created. [root@localhost /]# lvscan ACTIVE '/dev/vg1/lv1' [300.00 MiB] inherit ACTIVE '/dev/rhel/swap' [4.00 GiB] inherit ACTIVE '/dev/rhel/root' [15.51 GiB] inherit [root@localhost /]#
4:逻辑卷的扩容
(不需要卸载文件系统)
思路:
现将另外的一个磁盘变成物理卷,然后加入到卷组中
[root@localhost /]# pvcreate /dev/sdb2 [root@localhost /]# vgextend vg1 /dev/sdb2 [root@localhost /]# lvextend -L +200M /dev/vg1/lv1
5: 格式化
[root@localhost /]# mkfs -t ext4 /dev/vg1/lv1
6:挂载
[root@localhost /]# mount /dev/vg1/lv1 /mnt/ [root@localhost /]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/rhel-root xfs 16G 3.0G 13G 20% / devtmpfs devtmpfs 977M 0 977M 0% /dev tmpfs tmpfs 993M 144K 993M 1% /dev/shm tmpfs tmpfs 993M 8.9M 984M 1% /run tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 148M 350M 30% /boot tmpfs tmpfs 199M 16K 199M 1% /run/user/0 /dev/sr0 iso9660 3.6G 3.6G 0 100% /run/media/root/RHEL-7.3 Server.x86_64 /dev/mapper/vg1-lv1 ext4 2.1G 6.6M 2.0G 1% /mnt
如果使用df -hT没有刷新磁盘的空间的话,就要使用resize2fs 逻辑卷的绝对路径--针对的是ext4文件系统
xfs的文件系统的话,使用xfs_grows 挂载点的路径
2:逻辑卷的缩容(需要卸载文件系统)
缩容有风险,所以要做好数据的备份
1)直接查看逻辑卷的大小pvs
[root@server /]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root rhel -wi-ao---- 15.51g swap rhel -wi-ao---- 4.00g lv1 vg1 -wi-a----- 10.00g [root@server /]#
2)缩容5G
[root@server /]# lvreduce -L -5G /dev/vg1/lv1 WARNING: Reducing active logical volume to 5.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce vg1/lv1? [y/n]: y Size of logical volume vg1/lv1 changed from 10.00 GiB (2560 extents) to 5.00 GiB (1280 extents). Logical volume vg1/lv1 successfully resized.
3)格式化和挂载
[root@server /]# mkfs -t ext4 /dev/vg1/lv1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310720 blocks 65536 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done [root@server /]# mount /dev/vg1/lv1 /mailbox/
4)查看挂载点
[root@server /]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/rhel-root xfs 16G 3.1G 13G 20% / devtmpfs devtmpfs 977M 0 977M 0% /dev tmpfs tmpfs 993M 88K 993M 1% /dev/shm tmpfs tmpfs 993M 9.0M 984M 1% /run tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 148M 350M 30% /boot tmpfs tmpfs 199M 12K 199M 1% /run/user/0 /dev/sr0 iso9660 3.6G 3.6G 0 100% /run/media/root/RHEL-7.3 Server.x86_64 /dev/mapper/vg1-lv1 ext4 4.8G 20M 4.6G 1% /mailbox
7:关于逻辑卷的扩容和缩容的总结
使用这些命令来查看
pvs和vgs和lvs这些命令能够查看逻辑卷的使用情况
就是缩容之后还要格式化一下,如果之前的是另外的一种文件系统(XFS),那就更加需要格式化一下了
ext4文件系统,可以扩容也可以缩容,使用resize2fs 来刷新一下文件系统
xfs文件系统,只能扩容,不能缩容,使用xfs_grows /挂载点路径 来刷新一下
五:交换分区的管理
1:交换分区的概念
就是当编辑一个文件时,出现了意外的终止,就会出现该文件的备份,也就是缓存文件,会影响到使用者编辑文件,就是一个备份的东西
2:管理交换分区的操作
1)创建交换分区(就是将其他的磁盘加入了这个交换分区)
mkswap /dev/磁盘名字
[root@localhost /]# mkswap /dev/sdb 正在设置交换空间版本 1,大小 = 5242876 KiB 无标签,UUID=7cc93681-d642-4edc-b72f-873d2c96e044 [root@localhost /]#
但是,这个查看分区的内存还是那个原样的,因为没有开启交换分区,所以,需要开启交换分区
2)开启交换分区
[root@localhost /]# free -th total used free shared buff/cache available Mem: 1.9G 566M 963M 10M 453M 1.2G Swap: 4.0G 0B 4.0G Total: 5.9G 566M 4.9G [root@localhost /]# swapon /dev/sdb [root@localhost /]# free -th total used free shared buff/cache available Mem: 1.9G 570M 959M 10M 453M 1.2G Swap: 9.0G 0B 9.0G Total: 10G 570M 9.9G [root@localhost /]#
开启后,交换分区的总空间就增加了
3)关闭交换分区后,空间的大小就会恢复原样
[root@localhost /]# swapoff /dev/sdb [root@localhost /]# free -th total used free shared buff/cache available Mem: 1.9G 568M 962M 10M 453M 1.2G Swap: 4.0G 0B 4.0G Total: 5.9G 568M 4.9G [root@localhost /]#
4:查看交换分区的内容
[root@localhost /]# cat /proc/meminfo MemTotal: 2032156 kB MemFree: 985572 kB MemAvailable: 1236304 kB Buffers: 1048 kB