Linux系统的分区概念
分区格式:
磁盘的常见分区格式:MBR分区和GPT分区:
MBR 分区,
MBR 的意思是 “主引导记录”。MBR 最大支持 2TB 容量,在容量方面存在着极大的瓶颈。
MBR分区最多可以分4个分区
硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。
一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。
扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。
由于扩展分区只能有一个,所以这4个分区可以是4个主分区(P + P + P + P)或者3个主分区加1个扩展分区(P + P + P + E)
注意:
(1)实际上,不建议用户将硬盘分为4个主分区.这是因为,假如一个20GB的硬盘,若4个主分区占据了15GB的空间,则剩下的5GB空间完全不能使用,因为已经没有多余的分区表可以记录这些空间了.
(2)考虑到磁盘的连续性,一般建议将扩展分区放在最后面的柱面内.
(3)理论上允许一个硬盘只有1个主分区,其它空间都分配给扩展分区.(P + E)
参考:https://blog.csdn.net/weixin_48345177/article/details/131287556
GPT 分区,
GPT 意为 GUID 分区表,它支持的磁盘容量比 MBR 大得多。
这是一个正逐渐取代 MBR 的新标准,它是由 UEFI 辅住而形成的,将来 UEFI 用于取代老旧的 BIOS,而 GPT 则取代老旧的 MBR。
GPT分区最多可以分128个分区。
MBR、GPT分区的不同
gpt类型的分区有主分区吗?
答:GPT(GUID Partition Table)类型的分区是可以有主分区的,但与MBR(Master Boot Record)类型的分区不同的是,GPT允许创建最多128个主分区。此外,GPT还提供了一个保护分区和一个备份分区。保护分区包含硬盘的分区表,而备份分区则是对保护分区的备份,以防分区表损坏。因此,GPT类型的分区比MBR更灵活和可靠。
gpt类型的分区有扩展分区的概念吗?
答:GPT类型的分区没有扩展分区的概念。扩展分区是MBR类型的分区中的一种特殊分区,它可以包含其他逻辑分区。但在GPT分区方案中,每个分区都是独立的主分区,没有扩展分区的概念。因此,可以在GPT分区中直接创建多个主分区来满足需要。这也是GPT与MBR分区方案的另一个不同之处。
MBR磁盘分区工具fdisk:
fdisk工具:常用命令含义
fdisk工具用于 MBR格式
命令:fdisk
fdisk分区:
1、最多只有4个分区
2、 第一步:创建分区
fdisk /dev/sdb
n : 创建一个分区
d : 删除一个分区
p : 打印分区列表
w : 写入磁盘
第二步:保存分区
w : 写入磁盘
3、制作文件系统
mkfs.xfs /dev/sdb1
4、挂载使用
mount /dev/sdb1 /opt
5、查看
lsblk
fdisk工具:常用命令含义
适用于磁盘小于2T的磁盘,分区类型MBR,主分区4或者主分区3+扩展分区,分区后需要保存才能生效。
操作步骤如下:
fdisk /dev/sdb
Command (m for help): m #输入m列出常用的命令
Command action
a toggle a bootable flag #切换分区启动标记
b edit bsd disklabel #编辑sdb磁盘标签
c toggle the dos compatibility flag #切换dos兼容模式
d delete a partition #删除分区
l list known partition types #显示分区类型
m print this menu #显示帮助菜单
n add a new partition #新建分区
o create a new empty DOS partition table #创建新的空白分区表
p print the partition table #显示分区表的信息
q quit without saving changes #不保存退出
s create a new empty Sun disklabel #创建新的Sun磁盘标签
t change a partitions system id #修改分区ID,可以通过l查看id
u change display/entry units #修改容量单位,磁柱或扇区
v verify the partition table #检验分区表
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能
n #新建分区
p #显示分区表的信息
d # 删除一个已有的分区,保存退出后需要执行partprobe命令刷新一下分区表
w #保存退出
fdisk创建分区:
操作步骤如下:
fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x12c57921 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
命令(输入 m 获取帮助):
#####
重复上述步骤,创建4个1G的主分区
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 8390655 1048576 83 Linux
####
之后再创建新的分区就会失败。即使有足够的空间。
命令(输入 m 获取帮助):
命令(输入 m 获取帮助):n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.
命令(输入 m 获取帮助):
#####
删除主分区4,把剩余的空间都给他
命令(输入 m 获取帮助):d # 删除主分区4
分区号 (1-4,默认 4):4
分区 4 已删除
命令(输入 m 获取帮助):p # 查看
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
命令(输入 m 获取帮助):n # 新建扩展分区
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e # 选择创建扩展分区
已选择分区 4
起始 扇区 (6293504-41943039,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039): # 直接回车,剩余空间都给它
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 17 GiB
命令(输入 m 获取帮助):p # 查看
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 41943039 17824768 5 Extended
命令(输入 m 获取帮助): w # 保存
#######
查看sdb分区。
[root@test ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 1G 0 part
├─sdb2 8:18 0 1G 0 part
├─sdb3 8:19 0 1G 0 part
└─sdb4 8:20 0 1K 0 part
GPT磁盘分区工具gdis:
gdis工具用于 GPT格式
[root@egon ~]# yum install gdisk -y
[root@egon ~]# gdisk /dev/sdc
......
Command (? for help): m
b back up GPT data to a file #将GPT数据备份到文件中
c change a partition's name #更改分区的名称
d delete a partition #删除分区
i show detailed information on a partition #显示分区的详细信息
l list known partition types #列出已知的分区类型
n add a new partition #添加一个新的分区
o create a new empty GUID partition table (GPT) #创建一个新的空GUID分区表(GPT)
p print the partition table #打印分区表
q quit without saving changes #没有保存更改就退出
r recovery and transformation options (experts only) #恢复和转换选项(仅限专家使用)
s sort partitions #年代分类分区
t change a partition's type code #不要更改分区的类型代码
v verify disk #验证磁盘
w write table to disk and exit #将表写入磁盘并退出
x extra functionality (experts only) #额外功能(仅限专家使用)
? print this menu #打印菜单
gdisk创建分区
Command (? for help): n # 新建
Partition number (1-128, default 1): # 直接回车,默认分区号为1
First sector (34-5242879966, default = 2048) or {+-}size{KMGTP}: #直接回车,使用默认的起始位置
Last sector (2048-5242879966, default = 5242879966) or {+-}size{KMGTP}: +1G # 设定1G的空间
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L # 列出所有文件系统
......会看到一系列文件系统信息,默认的8300编号代表Linux filesystem,用它就好
Hex code or GUID (L to show codes, Enter = 8300): # 直接回车用默认8300就好
Changed type of partition to 'Linux filesystem'
Command (? for help): p # 打印查看
......
Number Start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
Command (? for help): w # 保存
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y # 输入y保存
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.
格式化制作文件系统与挂载
磁盘必须格式化文件系统才能挂载使用
格式化文件系统
针对一个硬盘 /dev/sdb
可以不分区,直接格式化制作文件系统。
mkfs.xfs /dev/sdb
也可以基于MBR或者GPT分区方式完毕后,针对某一分区,比如/dev/sdb2制作文件系统。
[root@test ~]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, 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
centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。
挂载与卸载:
以/dev/sdb2 为例子演示
挂载
[root@test ~]# mkdir /opt2
[root@test ~]# mount /dev/sdb2 /opt2
卸载
[root@test ~]# umount /dev/sdb2 或者 umount /opt2
强制卸载
umount -l /dev/sdb2 # 或者umount -l /opt2
开启开机自动挂载
编辑文件/etc/fstab
[root@test~]# sed -i '$a /dev/sdb1 /opt xfs defaults 0 0' /etc/fstab
[root@test~]# tail -1 /etc/fstab
/dev/sdb1 /opt xfs defaults 0 0
补充:磁盘挂载mount
-t 指定文件系统
-a 挂载/etc/fstab中配置的所有
[root@egon ~]# mount -t xfs /dev/sdb1 /db1
可以查看到文件系统的uuid并挂载
[root@egon ~]# blkid | grep sdb1
/dev/sdb1: UUID="10a939a8-d17c-4a0f-9a89-8066ac013855" TYPE="xfs"
[root@egon ~]# mount UUID="10a939a8-d17c-4a0f-9a89-8066ac013855" /opt
建议配置文件/etc/fstab用uuid
[root@egon ~]# tail -1 /etc/fstab # 编辑文件,新增一行
UUID="10a939a8-d17c-4a0f-9a89-8066ac013855" /opt xfs defaults 0 0
[root@egon ~]# mount -a
[root@egon ~]# df # 查看挂载情况
LVM
LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘
可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。
实际的物理磁盘及其划分的分区和其上的物理卷(PV)。
一个或多个物理卷可以用来创建卷组(VG)。
然后基于卷组可以创建逻辑卷(LV)。
只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。
文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。
通过LVM技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提过一个卷的概念,然后在这些卷上简历文件系统,:
物理卷(PV):(physical volume),把常规的磁盘设备通过pvcreate命令对其进行初始化,形成了物理卷。其实就是硬盘或分区。(面粉)
卷组(VG):(volume group),把多个物理卷组成一个逻辑的整体,这样卷组的大小就是多个硬盘之和。或者理解就是由一个或多个PV组成的整体。(面团)
逻辑卷(LV):(logical volume),从卷组中划分需要的空间大小出来。用户仅需对其格式化然后即可挂载使用。从VG中切割出的空间用于创建文件系统。(切成馒头)
基本单元(PE):(physical extend),分配的逻辑大小的最小单元,默认为4MB的基本块。(假设分配100MB逻辑空间,则需要创建25个PE)
lvm优缺点总结:
# 优点:
# 1、可以在系统运行的状态下动态的扩展文件系统的大小。
# 2、文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
# 3、可以增加新的磁盘到LVM的存储池中。
# 4、可以以镜像的方式冗余重要的数据到多个物理磁盘。
# 5、可以方便的导出整个卷组到另外一台机器。
# 缺点:
# 1、因为加入了额外的操作,存取性能受到影响。
# 2、当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
解释:LVM如果有一个磁盘损坏,整个lvm都坏了,lvm只有动态扩展作用,
方案:底层用RAID + 上层LVM = 既有冗余又有动态扩展
# 2、在从卷组中移除一个磁盘的时候必须使用reducevg命令(该命令要求root权限,并且不允许在快照卷组中使用)
LVM使用:
下载软件包
1、yum install -y lvm2
# 制作
[root@egon ~]# pvcreate /dev/sdb1 # 对分区做
[root@egon ~]# pvcreate /dev/sdb2 # 对分区做
[root@egon ~]# pvcreate /dev/sdb3 # 对分区做
[root@egon ~]# pvcreate /dev/sdc # 对整块盘做
# 查看
[root@egon ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 1.00g 1.00g
/dev/sdc lvm2 --- 20.00g 20.00g
[root@egon ~]# pvscan
PV /dev/sdb1 lvm2 [1.00 GiB]
PV /dev/sdc lvm2 [20.00 GiB]
PV /dev/sdb2 lvm2 [1.00 GiB]
PV /dev/sdb3 lvm2 [1.00 GiB]
Total: 4 [23.00 GiB] / in use: 0 [0 ] / in no VG: 4 [23.00 GiB]
####
制作vg:将pv划入vg中
# 制作一个vg1:
[root@egon ~]# vgcreate vg1 /dev/sdb1 /dev/sdc # 包含/dev/sdb1与/dev/sdc两个pv
Volume group "vg1" successfully created
[root@egon ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 20.99g 20.99g
# 也可以再制作一个vg2:
[root@egon ~]# vgcreate vg2 /dev/sdb2 /dev/sdb3 # 包含/dev/sdb2与/dev/sdb3两个pv
Volume group "vg2" successfully created
[root@egon ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 20.99g 20.99g
vg2 2 0 0 wz--n- 1.99g 1.99g
[root@egon ~]#
3创建逻辑卷lvm
选项
-L #逻辑卷大小
-n #逻辑卷名字
# 从vg1中分出来逻辑卷lv1_from_vg1、lv2_from_vg1
[root@egon ~]# lvcreate -L 100M -n lv1_from_vg1 vg1
[root@egon ~]# lvcreate -L 200M -n lv2_from_vg1 vg1
# 从vg2中分出来一个建逻辑卷lv1_from_vg2、lv1_from_vg2
[root@egon ~]# lvcreate -L 300M -n lv1_from_vg2 vg2
[root@egon ~]# lvcreate -L 400M -n lv2_from_vg2 vg2
# 查看
[root@egon ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1_from_vg1 vg1 -wi-a----- 100.00m
lv2_from_vg1 vg1 -wi-a----- 200.00m
lv1_from_vg2 vg2 -wi-a----- 300.00m
lv2_from_vg2 vg2 -wi-a----- 400.00m
# 把vg的100%空间都给lv
lvcreate -l 100%VG -n lv的名字 vg的名字
格式与挂载:
[root@egon ~]# mkfs.xfs /dev/vg1/lv1_from_vg1
[root@egon ~]# mkfs.xfs /dev/vg1/lv2_from_vg1
[root@egon ~]# mkfs.xfs /dev/vg2/lv1_from_vg2
[root@egon ~]# mkfs.xfs /dev/vg2/lv2_from_vg2
[root@egon ~]# mount /dev/vg1/lv1_from_vg1 /test1/
[root@egon ~]# mount /dev/vg1/lv2_from_vg1 /test2/
[root@egon ~]#
[root@egon ~]# mount /dev/vg2/lv1_from_vg2 /test3/
[root@egon ~]# mount /dev/vg2/lv2_from_vg2 /test4/
# 查看
[root@egon ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
...
/dev/mapper/vg1-lv1_from_vg1 98980 5344 93636 6% /test1
/dev/mapper/vg1-lv2_from_vg1 201380 10464 190916 6% /test2
/dev/mapper/vg2-lv1_from_vg2 303780 15584 288196 6% /test3
/dev/mapper/vg2-lv2_from_vg2 406180 20704 385476 6% /test4
[root@egon ~]#
示例:
[root@test ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@test ~]#
[root@test ~]# pvcreate /dev/sdb2
WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: ^C Interrupted...
Aborted wiping of xfs.
1 existing signature left on the device.
Interrupted...
[root@test ~]#
[root@test ~]#
[root@test ~]# pvcreate /dev/sdb3
WARNING: swap signature detected on /dev/sdb3 at offset 4086. Wipe it? [y/n]: y
Wiping swap signature on /dev/sdb3.
Physical volume "/dev/sdb3" successfully created.
[root@test ~]#
[root@test ~]#
[root@test ~]#
[root@test ~]#
[root@test ~]#
[root@test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 512M 0 part /boot
└─sda2 8:2 0 99.5G 0 part
├─centos-root 253:0 0 99G 0 lvm /
└─centos-swap 253:1 0 512M 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 1G 0 part
├─sdb2 8:18 0 1G 0 part
├─sdb3 8:19 0 1G 0 part
└─sdb4 8:20 0 1K 0 part
sr0 11:0 1 1024M 0 rom
[root@test ~]#
[root@test ~]#
[root@test ~]#
[root@test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.50g 0
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 1.00g 1.00g
[root@test ~]#
[root@test ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<99.50 GiB / 0 free]
PV /dev/sdb3 lvm2 [1.00 GiB]
PV /dev/sdb1 lvm2 [1.00 GiB]
Total: 3 [<101.50 GiB] / in use: 1 [<99.50 GiB] / in no VG: 2 [2.00 GiB]
[root@test ~]#
[root@test ~]#
[root@test ~]# vgcteate vg1 /dev/sdb1 /dev/sdb3
-bash: vgcteate: command not found
[root@test ~]# vgcreate vg1 /dev/sdb1 /dev/sdb3
Volume group "vg1" successfully created
[root@test ~]#
[root@test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.50g 0
vg1 2 0 0 wz--n- 1.99g 1.99g
[root@test ~]#
[root@test ~]#
[root@test ~]# lvcreate -L 100M -n 1v1_from_vg1 vg1
Logical volume "1v1_from_vg1" created.
[root@test ~]# lvcreate -L 100M -n 1v1_from_vg1 vg1
Logical Volume "1v1_from_vg1" already exists in volume group "vg1"
[root@test ~]# lvcreate -L 100M -n 2v1_from_vg1 vg1
Logical volume "2v1_from_vg1" created.
[root@test ~]#
[root@test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <99.00g
swap centos -wi-ao---- 512.00m
1v1_from_vg1 vg1 -wi-a----- 100.00m
2v1_from_vg1 vg1 -wi-a----- 100.00m
[root@test ~]# mkfs.xfs /dev/vg1/1v1_from_vg1
meta-data=/dev/vg1/1v1_from_vg1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@test ~]# mkfs.xfs /dev/vg1/2v1_from_vg1
meta-data=/dev/vg1/2v1_from_vg1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@test ~]#
[root@test ~]#
[root@test ~]# ls
2.sh anaconda-ks.cfg date file2 init.sh nginx-1.8.0 nginx-1.8.0.tar.gz passwd
[root@test ~]# mkdir /test123
[root@test ~]#
[root@test ~]#
[root@test ~]# mount /dev/vg1/1v1_from_vg1 /test1/
mount: mount point /test1/ does not exist
[root@test ~]# mount /dev/vg1/1v1_from_vg1 /test123/
[root@test ~]#
[root@test ~]#
[root@test ~]#
[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 979M 0 979M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 18M 973M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root 99G 2.8G 97G 3% /
/dev/sda1 509M 157M 353M 31% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/mapper/vg1-1v1_from_vg1 97M 5.3M 92M 6% /test123
动态在线扩容:
再不用卸载的情况下完成扩容
lvextend -L [+]MGT /dev/VG_NAME/VL_NAME
# 注意:-L 100M 与 -L +100M不是一个意思,或者代表在原有的基础上扩容
# 1、新增一块盘或者一个分区
fdisk /dev/sdb ......
partprobe
ls /dev/sdb4
# 2、新增一个pv
[root@egon ~]# pvcreate /dev/sdb4
# 3、把新增的pv扩到vg2里
[root@egon ~]# vgextend vg2 /dev/sdb4
[root@egon ~]# vgs # 可以看到vg2扩容了
# 4、接下来对lv1_from_vg2扩容
[root@egon ~]# lvextend -L +1000M /dev/vg2/lv1_from_vg2
[root@egon ~]# xfs_growfs /dev/vg2/lv1_from_vg2 # 扩展逻辑卷后需要更新fs文件系统
动态缩容:
(不要缩容,容易出问题。数据无法找回)
删除:
# 删除lv之前需要先卸载挂载点
[root@egon ~]# umount /test3
[root@egon ~]# lvremove /dev/vg2/lv1_from_vg2
# 删vg
[root@egon ~]# vgremove vg2
# 删pv:只能删掉那些不属于任何vg的pv
[root@egon ~]# pvremove /dev/sdb2
[root@egon ~]# pvremove /dev/sdb3
将新的磁盘添加到CentOS中的LVM存储池中的步骤:
打开终端并运行lsblk命令以查看所有可用的磁盘和分区。
插入新的磁盘并运行以下命令来查看新的磁盘和其分区:
sudo fdisk -l
- 运行以下命令来创建一个新的物理卷(PV):
sudo pvcreate /dev/[新磁盘]
例如,如果新的磁盘是/dev/sdb,那么命令将是:
sudo pvcreate /dev/sdb
- 运行以下命令来查看当前的物理卷:
sudo pvs
确认新创建的物理卷是正确的。
- 运行以下命令来将新的物理卷添加到现有的卷组(VG):
sudo vgextend [现有VG的名称] /dev/[新物理卷名称]
例如,如果现有VG的名称为vg01,而新的物理卷名称为/dev/sdb,那么命令将是:
sudo vgextend vg01 /dev/sdb
- 运行以下命令来查看当前的卷组:
sudo vgs
确认卷组扩展成功。
- 运行以下命令来将卷组中新的物理卷添加到现有的逻辑卷(LV):
sudo lvextend -l +100%FREE [现有LV的名称]
例如,如果您要将新的磁盘添加到logical_vol卷,则命令将是:
sudo lvextend -l +100%FREE /dev/vg01/logical_vol
- 运行以下命令来扩展文件系统以使用新的可用空间:
sudo resize2fs [现有LV的名称]
例如,如果现有LV的名称为/dev/vg01/logical_vol,则命令将是:
sudo resize2fs /dev/vg01/logical_vol
现有的逻辑卷现在应该扩展到包含新的磁盘空间。
其它
linux的磁盘类型和分区简介
linux的磁盘分为IDE和SCSI,目前以后者居多。
1. IDE磁盘的分区:hd+盘号+分区数字
盘号
|-a:基本盘
|-b:基本从属盘
|-c:辅助主盘
|-d:辅助从属盘
分区数字
|-1~4:主分区或扩展分区
|-5+:逻辑分区
例如,hda3表示第一块IDE磁盘的第3个主分区或扩展分区,hdb5表示第二块IDE磁盘的逻辑分区。
2. SCSI磁盘的分区:sd+盘号+分区数字
盘号
|-a:基本盘
|-b:基本从属盘
|-c:辅助主盘
|-d:辅助从属盘
分区数字
|-1~4:主分区或扩展分区
|-5+:逻辑分区
例如,sda1表示第一块SCSI磁盘的第1个主分区,sdc2表示第三块SCSI磁盘的第2个主分区或扩展分区。
linux的挂载和卸载
1. 挂载和卸载的概念
挂载类似于windows系统给U盘分配盘符,是将新磁盘跟已经存在的系统目录之间建立联系,让新磁盘”拥有”根目录/下面的某个目录,以便于在命令行中操作它。例如,新添加了一块磁盘分区sdb1,将它挂载到/home/data1目录,则以后操作/home/data1目录就相当于操作sdb1分区。挂载后,/home/data1目录下的子目录和文件也会保存到sdb1分区,而不是原来的分区。
卸载类似于windows退出U盘,切断磁盘分区与目录之间的联系。卸载后,/home/data1目录下的子目录和文件会重新回到原来的分区。
2. 查看系统的挂载情况
lsblk [-l] [-f]
其中,-l表示列表方式显示,-f可以显示分区的uuid。
3. 挂载
mount equipment path
其中,equipment为设备位置,path为挂载点。例如,mount /dev/sdb1 /home/dubhlinn。
4. 永久挂载
用上述命令只是临时挂载,重启系统后会失效,要想永久生效,需要改一个配置文件:/etc/fstab,加一行:
/dev/sdb /home xfs defaults 0 0
其中,第一项为设备未知,第二项为挂载点,第三项为分区类型,后面固定不变。
5. 卸载
umount equipment
umount path
即卸载时既可以写磁盘分区,也可以写挂载点目录。例如umount /home/dubhlinn。
磁盘管理
产看文件系统类型
df -T
磁盘和目录使用查看
查询磁盘整体的使用情况
df -h查询指定目录的使用情况
du [-a] [-c] [-h] [–max-depth=n] path
其中,-a表示包含文件,-c表示显示汇总值,-h表示显示计量单位,–max-depth=n表示统计子目录的深度,path为要查询的目录路径。查询指定目录下的文件,即以-开头的内容
ls -l [-r] [path] | grep “^-“
其中,-r表示包含子目录下的,path如果不指定则默认为当前目录。查询指定目录下的子目录,即以d开头的内容
ls -l [-r] [path] | grep “^d”
其中,-r表示包含子目录的子目录,path如果不指定则默认为当前目录。查询指定目录下的文件数量
ls -l [-r] [path] | grep “^-“ | wc -l
其中,-r表示包含子目录下的,path如果不指定则默认为当前目录。查询指定目录下的子目录数量
ls -l [-r] [path] | grep “^d” | wc -l
其中,-r表示包含子目录的子目录,path如果不指定则默认为当前目录。以树状结构显示目录下的内容
tree [path]
其中,path为要显示的目录路径,如果不指定默认为当前目录。
df -h #查看每个根路径的分区大小;查看硬盘剩余空间
du -sh [目录名] #返回该目录的大小;查看目录占用空间
du -sm [文件夹] #返回该文件夹总M数
du -h [目录名] #查看指定文件夹下的所有文件大小(包含子文件夹)
查看硬盘的分区 sudo fdisk -l
查看IDE硬盘信息 sudo hdparm -i /dev/hda
查看STAT硬盘信息 sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id
参考:
参考:
Linux中磁盘的管理(分区、格式化、挂载)、LVM:https://blog.csdn.net/wangxu_190/article/details/119968080