Linux磁盘管理

fdisk

查看磁盘使用情况和磁盘分区(不适用于高于 2TB 的硬盘分区,高于2TB的分区使用 parted命令)

fdisk -l                  # 列出所有设备的分区表信息
fdisk -l /dev/sdb         # 列出指定设备的分区表信息

# 使用fdisk命令分区
fdisk /dev/sdb

# 这时可以有多个选项,主要是p、n、d、w
p选项:打印分区表
n选项:设置分区
d选项:删除分区(按下后可主动选择分区删除)
w选项:保存配置

# 按n设置分区,出现如下提示
Partition type:
   p   primary (0 primary, 0 extended, 4 free)    # 设置主分区,0个主分区(primary),0个扩展分区,4个空闲(最多只能有4个)
   e   extended                                   # 设置扩展分区
   
# 如果有多余的空闲主分区,则可以直接按p添加主分区,如果已有3个主分区了就分个扩展分区按e
# 这里按p直接添加一个主分区
分区号 (1-4,默认 1):                              # 设置分区号,回车默认就行
起始 扇区 (2048-10485759,默认为 2048):             # 回车默认
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):          # 设置分区大小,回车默认将所有空间分给该分区

# 以上到这里就已经分好区了,可以按p打印查看,按w保存退出

# 逻辑分区,逻辑分区是建立在扩展分区上的,是为了突破4个主分区的限制       
# 按n后,选择e,添加一个扩展分区,重复上述分配操作,在有了扩展分区后再次使用n建立分区,就没有e选项了,转而是l选项
Partition type:
   p   primary (0 primary, 1 extended, 3 free)
   l   logical (numbered from 5)                        # 添加逻辑分区,因为4个主分区的限制,逻辑分区默认编号5起步
   
# 逻辑分区的使用空间是直接从扩展分区中划分,划分的操作都是一致的。

通知内核重读分区表

分区后centos6需要通知内核重读

# 内核记录分区表的文件
cat /proc/partitions
# 或者使用ls直接查看分区文件是否存在
ls /dev/sd

# 如果不存在,通知内核重读分区表
partx -a /dev/sdb
或
partprobe /dev/sdx

创建文件系统(格式化)

分区需要创建文件系统才能使用

# 查看系统支持的文件系统,通常用xfs或者ext4
ll /lib/modules/`uname -r`/kernel/fs

# 创建文件系统
mkfs.xfs /dev/sdb5
或
mkfs.ext4 /dev/sdb5

mount -- 挂载

# 挂载语法
mount /dev/sdc1 /mnt
# 解除挂载,同过挂载设备或者挂载点均可
umount /dev/sdc1 或 umount /mnt


# 开机挂载

# 方法一,将挂载命令写入/etc/rc.d/rc.local文件中,同时给该文件执行权限
echo mount /dev/sdc1 /mnt/sdb1 >> /etc/rc.d/rc.local
chmod a+x /etc/rc.d/rc.local

# 方法二,/etc/fstab,开机挂载的专用文件
vim /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
# 含义
第1列:/dev/mapper/centos-root    # 可以写设备文件名,也可以使用设备的uuid,uuid是唯一建议使用uuid(查看指定设备的uuid使用:blkid /dev/sdc1)
第2列:/                          # 挂载点
第3列:xfs                        # 文件系统类型
第4列:defaults                   # 文件系统的属性
第5列:0                          # 供备份程序确定上次备份距现在的天数
第6列:0                          # 在系统引导时检测文件系统的顺序

交换分区

系统交换分区是作为系统虚拟存储的一块区域。

# 格式化成swap分区
mkswap /dev/sdb2
# 激活swap分区
swapon /dev/sdb2
# 查看swap分区
swapon -s
# 开机挂载
vim /etc/fstab
/dev/sdb2 swap swap defaults 0 0

# 卸载swap
swapoff /dev/sdb2
# 删除/etc/fstab配置文件内的设置

parted

可创建,查看,删除和修改磁盘分区

# 列出所有设备的分区表信息
parted -l
# 列出/dev/sdb/分区表信息
parted /dev/sdb print

# 创建gpt类型分区表
parted /dev/sdb mklabel gpt        # 有交换,输入yes
parted /dev/sdb print

# 创建分区,起始值为1,后面指定分区大小,如剩余空间全部划过去则'1 -1',分区号自动从1开始
# 如空间没分配完,则第二次分配时从第一次分配空间的结束大小开始
parted /dev/sdb mkpart primary '1 1G'
parted /dev/sdb mkpart primary '1G -1'

# 创建分区后同样通知内核重读分区表(centos6),创建文件系统,挂载

# 删除分区,末尾是分区号,如不指定会有交互提示让输入分区号
parted /dev/sdb rm 1

逻辑卷

逻辑卷可以将聚合多块磁盘空间到一个逻辑卷分区,同时支持扩容

# 逻辑卷相关命令pvs、vgs、lvs等,如果没有的话安装一下
yum -y install lvm2

# 创建逻辑卷分为3步,创建物理卷,创建卷组,创建逻辑卷

# 一、创建物理卷
pvcreate /dev/sdb1
# 如一块磁盘有多个分区都需要创建物理卷
pvcreate /dev/sdb{1..4}
# 查看物理卷
pvs

# 二、创建卷组
# 语法:vgcreate [-s 大小] 卷组的名字 物理卷的设备路径
# -s 指定PE(物理扩展单元)大小,默认是4M
vgcreate -s 8M 卷组名 /dev/sdb{1..4}
# 查看卷组
vgs

# 三、创建逻辑卷,指定分配空间大小
lvcreate -n 逻辑卷名 -L 1500M 卷组名
# 取卷组全部空间创建逻辑卷
lvcreate -n 逻辑卷名 -l 100%VG 卷组名   

# 创建文件系统、挂载
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt/

逻辑卷扩容

# 第1种情况:卷组内有空闲空间,直接从卷组取空间
lvextend -L +500M /dev/卷组名/逻辑卷名
# 或者直接取卷组全部空间
lvextend -l +100%FREE /dev/vg0/lv0 
# 对文件系统扩容
xfs_growfs /dev/vg0/lv0


# 第2种情况:卷组内没有空间
# 根据分区创建物理卷
pvcreate /dev/sdc1
# 加入卷组(vg扩容)
vgextend vg0 /dev/sdd5
# 对逻辑卷扩容,取卷组全部空间
lvextend -l +100%FREE /dev/vg0/lv0
# 对文件系统扩容
xfs_growfs /dev/vg0/lv0

/扩容实例,添加一块新磁盘sdb

# 创建分区并创建物理卷
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary '1 -1'
pvcreate /dev/sdb1

# 查看/卷组名称,将新建物理卷加入卷组
vgs
VG     #PV #LV #SN Attr   VSize   VFree
centos   1   2   0 wz--n- <19.00g    0        # 卷组名为centos

vgextend centos /dev/sdb1                     # 将新建物理卷加入卷组

# 对/的逻辑卷进行扩容,通过df -h查看/的挂载设备全路径为/dev/mapper/centos-root
lvextend -l +100%FREE /dev/mapper/centos-root

# 对文件系统扩容
xfs_growfs /dev/mapper/centos-root
# 再次通过df -h查看扩容已完成
posted @ 2022-12-28 11:53  待满茶杯  阅读(53)  评论(0编辑  收藏  举报