文章目录
磁盘基本概述
磁盘分类
- 固态硬盘
- 机械硬盘
- 服务器硬盘
固态硬盘的优缺点
- 优点:
- 读写速度快
- 防震抗摔性强
- 低功耗
- 无躁音
- 体积小,携带方便
- 缺点:
- 容量比机械硬盘小
- 寿命比机械硬盘短
- 制造成本高所以价格比机械硬盘高
Linux磁盘命名方式
- 传统IDE接口硬盘:/dev/hd[a-z]
- SCISI接口硬盘:/dev/sd[a-z]
- 虚拟化硬盘:/dev/vd[a-z]
- 系统中分区由数字编号表示, 1-4留给主分区使用和扩展分区, 逻辑分区从5开始
MBR与GPT
MBR
- MBR是Master Boot Record的简称,也就是主引导记录,是位于磁盘最前边的一段引导(Loader)代码,主要用来引导操作系统的加载与启动
- 特点:
- MBR支持最大2TB磁盘,无法处理大于2TB容量的磁盘
- 只支持最多4个主分区。需要更多的分区,则需要创建拓展分区,并在其中创建逻辑分区
GPT
- GPT磁盘是指使用GUID分区表的磁盘,GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准
- 特点:
- GPT对磁盘的大小没有限制
- 最多可以创建128个分区
- 注意:MBR与GPT之间互相转换会导致数据丢失
- 磁盘容量检查
df
- 查看磁盘容量,不加参数以k为单位
- 用法:
df
[选项] - 常用选项:
-i
查看inode使用情况-h
显示单位-T
查看文件类型
lsblk
- 查看分区情况
du
-
查看目录或文件的容量,不加参数以k为单位
-
用法:
du
[选项] -
常用选项:
-s
列出总和-h
显示单位
一般sh连用
磁盘分区
fdisk分区(MBR)
-
fdisk -l
查看当前磁盘分区信息 -
fdisk 硬盘绝对路径
进入磁盘管理 -
常用选项:
m
显示帮助菜单
n
新建分区
d
删除分区
p
显示分区表的信息
u
修改容量单位,磁柱或扇区
w
保存退出
l
显示分区类型
t
修改分区ID,可以通过l查看id
q
不保存退出 -
不常用的选项:
a
切换分区启动标记
b
编辑sdb磁盘标签
c
切换dos兼容模式
o
创建新的空白分区表
s
创建新的Sun磁盘标签
v
检验分区表
x
拓展功能
//创建主分区
Command (m for help): n //新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free) //主分区
e extended //扩展分区
Select (default p): p //选择主分区
Partition number (1-4, default 1): //默认回车
First sector (2048-2097151, default 2048): //默认扇区回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M //分配50MB
//创建扩展分区
Command (m for help): n //新建分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e //创建扩展分区
Partition number (2-4, default 2):
First sector (104448-2097151, default 104448):
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): //默认划分所有空间给扩展分区
//创建逻辑分区
Command (m for help): n //新建分区
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l //创建逻辑分区
Adding logical partition 5
First sector (106496-2097151, default 106496):
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +100M //分配100MB空间
Command (m for help): p //查看分区创建
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 2097151 996352 5 Extended
/dev/sdb5 106496 311295 102400 83 Linux
Command (m for help): w //保存分区
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
fdisk -l /dev/sdb | grep type
检查磁盘是否是MBR分区方式
yum -y install parted
安装parted
partprobe /dev/sdb
重载分区表
gdisk(GPT)
yum -y install gdisk
安装gdisk工具
gdisk /dev/sdb //gdisk管理磁盘
Command (? for help): n //创建新分区
Partition number (1-128, default 1):
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M //分配500M大小
Command (? for help): p //打印查看
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
Command (? for help): w //保存分区
Do you want to proceed? (Y/N): y //确认
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
fdisk /dev/sdb -l|grep type
检查磁盘是否是gpt格式
partprobe /dev/sdb
重载分区表
磁盘格式化
mkfs
- 格式化磁盘,创建文件系统
- 用法:
mkfs
[选项] - 常用选项:
-t
用来指定什么类型的文件系统,可以是ext3,ext4, xfs-i
设定inode的大小-b
设定数据区块占用空间大小,目前支持1024、2048、4096 bytes每个块-N
设定inode数量,防止Inode数量不够导致磁盘不足-L
预设该分区的标签label
mkfs.ext4 /dev/sdb1
格式化磁盘格式为ext4文件系统
mkfs -t ext4 /dev/sdb1
格式化磁盘格式为ext4文件系统
磁盘挂载
-
临时挂载磁盘
-
mount
挂载磁盘,实质是为文件系统指定访问入口 -
用法:
mount
[选项] -
常用选项:
-t
指定文件系统挂载分区-a
重新读取/etc/fstab配置文件的所有分区-o
指定挂载参数
-
永久挂载磁盘
[root@wj ~]# blkid |grep "sdb1" //使用blkid命令获取各分区的UUID
/dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
[root@wj ~]# vi /etc/fstab //将UUID写入配置文件,永久挂载, 开机自动挂载
[root@wj ~]# tail -1 /etc/fstab
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
[root@wj ~]# mount -a //通过配置文件挂载
使用UUID挂载磁盘sdb1分区至于db1, 临时挂载
[root@wj ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1
[root@wj ~]# mount –a //加载fstab配置文件, 同时检测语法是否有错误
- fstab配置文件
分区标识(UUID或设备名) 挂载点 文件类型 挂载参数 不检查 不备份
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
卸载挂载光盘
umount -lf
强制卸载umount /db1
使用站点卸载
交换分区swap
- Linux下的虚拟内存分区,交换分区一般指定虚拟内存的大小为实际内存的1~1.5倍
创建swapfile
[root@wj ~]# dd if=/dev/zero of=/opt/newdisk bs=5M count=1024
//if:指定源 一般写/dev/zero
//of:指定目标
//bs:定义块大小
//count:数量
格式化swap分区
[root@wj ~]# mkswap -f /opt/newdisk //格式化swap分区
//检测当前swap分区情况
[root@wj ~]# free -m
//开启新建的swap分区
[root@wj ~]# swapon /opt/newdisk
[root@wj ~]# free -m
//关闭新建的swap分区
[root@wj ~]# swapoff /opt/newdisk
[root@wj ~]# free -m
清理日志
rm -rf access.log
会删除文件,但是此程序继续占用文件,不是放空间> access.log
清空文件,释放空间
LVM磁盘管理
- 物理卷(PV):把常规的块设备(硬盘,分区等可以读写数据的设备)通过
pvcreate
命令对其进行初始化,就成了物理卷 - 卷组(VG):把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量
- 逻辑卷(LV):从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用
LVM磁盘管理是RHCSA中必考的题目,所以这里也必须要掌握,如果打算考RHCSA的话,这里一定不能丢分。其实是比较简单的。
LVM管理
- 创建lvm步骤:
- 添加物理磁盘,创建物理卷
- 创建卷组,将物理卷加入卷组
[root@wj ~]# pvcreat /dev/sdb //将磁盘加入物理卷
[root@wj ~]# pvs //检查pv创建情况
[root@wj ~]# vgcreate vg0 /dev/sdb //创建名为vg0的卷组
[root@wj ~]# vgs //检查卷组
在卷组中划分逻辑卷
[root@wj ~]# lvcreate -L 500M -n lv0 vg0 //创建逻辑分区,分区名称、指定大小,指定卷组
[root@wj ~]# lvscan //检查逻辑卷
格式化逻辑卷
[root@wj ~]# mkfs.ext4 /dev/vg0/lv0 //格式化逻辑卷,指定文件系统为ext4文件系统
挂载使用
- 临时挂载
[root@wj ~]# mkdir /lv0 //创建挂载点
[root@wj ~]# mount /dev/vg0/lv0 /lv0 //临时挂载
[root@wj ~]# df -h //查看挂载情况
- 永久挂载
[root@wj ~]# blkid | grep "lv0" //查看lv0的UUID
/dev/mapper/vg0-lv0: UUID="df4360c5-ba72-4e5c-8d7d-ab3b0bfc9acc" TYPE="ext4" //硬盘的UUID
[root@wj ~]# vi /etc/fstab //将UUID及相关配置信息加入到配置文件中
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /lv0 ext4 defaults 0 0
[root@wj ~]# mount -a //通过配置文件挂载
卷组管理
- 拓展卷组,将新磁盘加入卷组
[root@wj ~]# pvcreate /dev/sdc //新硬盘加入pv
[root@wj ~]# vgextend vg0 /dev/sdc //使用vgextend拓展
- 缩减卷组,将指定磁盘从卷组中删除(只有etx4可以缩减)缩减前后一定要强制检查文件类型
[root@wj ~]# vgreduce vg0 /dev/sdb //将sdb从卷组中删除
- 数据迁移卷组,同一卷组的磁盘才可以进行在线迁移(学习中用到的较少,实际工作中遇到的较多)
[root@wj ~]# pvs //检查当前逻辑卷VG中pv使用情况
[root@wj ~]# pvmove /dev/sdb //将sdb在线数据迁移至其他pv
[root@wj ~]# pvs //检查是否将sdb数据迁移至sdc
逻辑卷管理
- 逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量
扩展lv逻辑卷
[root@wj ~]# vgs //查看卷组情况
[root@wj ~]# lvextend -L +500M /dev/vg0/lv0 //给lv0增加500M,不带+号表示指定大小
[root@wj ~]# lvextend -l +50%FREE /dev/vg0/lv0 //分配磁盘池中50%给逻辑卷
- 扩展fs文件系统
[root@wj ~]# xfs_growfs /dev/vg0/lv0 //xfs扩容
[root@wj ~]# resize2fs /dev/vg0/lv0 //ext扩容
- 对ext4文件系统的逻辑卷剪裁容量
[root@wj ~]# lvcreate -n lv1 -L 1G vg0 //创建逻辑卷名称为lv1、大小1G、指定卷组vg0
[root@wj ~]# mkfs.ext4 /dev/vg0/lv1 //将lv1格式化为ext4的文件系统
[root@wj ~]# mkdir /lv1 //创建挂载点
[root@wj ~]# mount /dev/vg0/lv1 /lv1 //临时挂载
[root@wj ~]# cp /etc/host* /finance/uplooking/
[root@wj ~]# umount /dev/vg0/lv1 //如果已经挂载,必须先卸载
[root@wj ~]# e2fsck -f /dev/vg0/lv1 //检测文件系统
[root@wj ~]# resize2fs /dev/vg0/lv1 512M
[root@wj ~]# lvreduce -L 512M /dev/vg0/lv1 //指定大小
[root@wj ~]# e2fsck -f /dev/vg0/lv1 //裁剪后,再次检测文件系统
挂载测试。如果能够挂载,一般说明裁剪成功,文件系统没有损坏
[root@wj ~]# mount /dev/vg0/lv1 /mnt //挂载
- 缩减逻辑卷注意事项:
- 不能在线缩减,得先卸载;
- 确保缩减后的空间大小依然能存储原有的所有数据;
- 在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态。使用命令
e2fsck -f
逻辑卷路径
以上内容均属原创,如有不详或错误,敬请指出。
本文链接: https://blog.csdn.net/qq_45668124/article/details/104602513
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!