磁盘管理与磁盘卷--红帽Linux操作系统<>

 分区的两种格式

1、MBR分区

MBR(Master Boot Record,主引导记录)是传统的分区机制,使用BI0S引导PC设备,寻址空间只有32bit长。

分区空间最大支持2.2TB

支持的分区数量:4个主分区或者3个主分区1个扩展分区

为什么MBR最多只能有4个主分区?

因为分区表占据64个字节,其中每个分区的信息占用16个字节分区表里面可以记录四个分区信息描述。

2、GPT分区

GPT(GUID Partition Table,全局唯一标识分区表)是一种比MBR分区更先进、更灵活的磁盘分区模式

在默认情况下,GPT最多可支持128个分区

支持大于2.2TB的总容量及大于2.2TB的分区,最大支持

18EB(1EB=1024PB,1PB=1024TB,1TB=1024GB)

GPT分区表自带备份

向后兼容MBR,GPT分区表上包含保护性的MBR区域

查看磁盘信息(块设备)

[root@kongd ~]# lsblk   (block的缩写)

虚拟磁盘类型

IDE(I)(推荐) 磁盘文件名为/dev/hd[a-d]

SCSI(S)  磁盘文件名为/dev/sd[a-z]

SATA(A)  磁盘文件名为/dev/sd[a-z]

NVMe(V)  磁盘文件名为/dev/nvme0n[1-10..](固态硬盘)

只有在虚拟机电源处于关闭状态时,才能添加 IDE 磁盘。

只有在虚拟机电源处于关闭状态时,才能添加 NVMe磁盘。

#示例1:创建gpt格式的分区

[root@xxx ~]# fdisk  /dev/nvme0n2

Welcome to fdisk (util-linux 2.37.4).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Device does not contain a recognized partition table.

Created a new DOS disklabel with disk identifier 0xbbf5e9a9.

Command (m for help): p   #打印

Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors

Disk model: VMware Virtual NVMe Disk

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos    #dos代表的是mbr。fdisk 默认分区为mbr。

Disk identifier: 0xbbf5e9a9

Command (m for help): g   #创建gpt格式分区

Created a new GPT disklabel (GUID: 317F64E5-AE7A-FF4A-8DD1-BF52D70E4F73).

Command (m for help): p

Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors

Disk model: VMware Virtual NVMe Disk

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt    #gpt代表的是gpt分区

Disk identifier: 317F64E5-AE7A-FF4A-8DD1-BF52D70E4F73

Command (m for help): n   #添加分区

Partition number (1-128, default 1):   #分区编号,默认是1

First sector (2048-41943006, default 2048):  #从哪里开始,默认从2048开始

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943006, default 41943006): +5g  #选择大小。

Created a new partition 1 of type 'Linux filesystem' and of size 5 GiB.

Command (m for help): p  #打印

Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors

Disk model: VMware Virtual NVMe Disk

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: 317F64E5-AE7A-FF4A-8DD1-BF52D70E4F73

Device         Start      End  Sectors Size Type

/dev/nvme0n2p1  2048 10487807 10485760   5G Linux filesystem

Command (m for help): w   #保存并退出

The partition table has been altered.

Calling ioctl() to re-read partition table.

Syncing disks.

[root@xxx ~]# lsblk -p   #查看

NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS

/dev/sr0                   11:0    1  9.8G  0 rom  /run/media/root/RHEL-9-3-0-BaseOS-x86_64

/dev/nvme0n1              259:0    0   20G  0 disk

├─/dev/nvme0n1p1          259:1    0  600M  0 part /boot/efi

├─/dev/nvme0n1p2          259:2    0    1G  0 part /boot

└─/dev/nvme0n1p3          259:3    0 18.4G  0 part

  ├─/dev/mapper/rhel-root 253:0    0 16.4G  0 lvm  /

  └─/dev/mapper/rhel-swap 253:1    0    2G  0 lvm  [SWAP]

/dev/nvme0n2              259:4    0   20G  0 disk

└─/dev/nvme0n2p1          259:5    0    5G  0 part

[root@xxx ~]# fdisk -l /dev/nvme0n2   #查看

Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors

Disk model: VMware Virtual NVMe Disk

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: 317F64E5-AE7A-FF4A-8DD1-BF52D70E4F73

Device         Start      End  Sectors Size Type

/dev/nvme0n2p1  2048 10487807 10485760   5G Linux filesystem

[root@xxx ~]#

[root@xxx ~]#

[root@xxx ~]#

[root@xxx ~]#

Command (m for help): d    #删除分区

Selected partition 1 #选择分区1删除

Partition 1 has been deleted. #分区1已删除

Command (m for help): n   #添加分区

   l   logical (numbered from 5) #l代表逻辑分区

   p   primary (1 primary, 0 extended, 3 free)   #p代表主分区

   e   extended (container for logical partitions)   #e代表扩展分区

Partition number (2-4, default 2): #分区编号

First sector (4196352-41943039, default 4196352): #开始位置

Last sector, +/-sectors or +/-size{K,M,G,T,P} (4196352-41943039, default 41943039): +4g #选择大小,设置为4g

Created a new partition 2 of type 'Extended' and of size 4 GiB.

注意:硬盘也可以不分区

分区格式化(创建文件系统)

格式化的目的: 是为了形成文件系统,文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。

理解为:画格子

文件系统的类型:ext2、ext3、ext4、xfs

文件系统

优点

缺点

ext2

简单和稳定,是最早的Linux文件系统之一。 资源消耗较低,适合在资源有限的环境下使用。

不支持日志功能,文件系统崩溃后恢复数据的能力较差。 不适合大容量存储或者需要频繁写入的场景,容易产生碎片。

ext3

支持日志功能,提高了文件系统的稳定性和可靠性。 能够在崩溃时快速恢复文件系统,减少数据损失。

对大文件的性能表现不如其他文件系统,因为其设计时考虑了更多的数据一致性而非性能优化。

ext4

改进了性能和可靠性,特别是针对大容量存储和大文件操作进行了优化。 支持更大的文件和分区大小。 提供更高的文件系统检查和恢复能力。

在某些情况下可能会牺牲一些数据一致性来获得更高的性能。

xfs

非常适合大文件和大容量的存储需求,有着出色的性能表现。 支持高达16 EB的文件系统和文件大小。 有效地管理大容量的数据,并具有良好的扩展性和高并发性能。

在处理大量小文件时,性能可能不如其他文件系统。

mkfs :用来创建文件系统

blkid : 打印块设备属性,默认打印所有

示例1: 给上面的mbr格式分区中的主分区创建ext4的文件系统。逻辑分区创建xfs的文件系统。

[root@xxx ~]# mkfs.ext4 /dev/nvme0n2p1   #给/dev/nvme0n2p1创建ext4类型的文件系统

[root@xxx ~]# mkfs.xfs /dev/nvme0n2p5   #给/dev/nvme0n2p5创建xfs类型的文件系统

[root@xxx ~]#

[root@xxx ~]# blkid   #查看信息

[root@xxx ~]#

注意:一块硬盘中不可以同时有mbr和gpt分区,也就是说一个硬盘只能是一种分区格式。但是不同的硬盘中可以是不同的文件系统。

【面试笔试】常见的文件系统类型?

答:ext2、ext3、ext4、xfs

分区挂载

挂载:将文件系统的内容(通常是存储设备上的内容)映射到指定的目录,使得可以访问这些内容。

mount :挂载一个文件系统

示例:将上面的ext4类型的文件系统的主分区挂载到/tmp/test1目录,并写入文件内容为 "this is xixi" 文件名为xixi.txt的文件。xfs类型的文件系统的逻辑分区挂载到/tmp/test2目录,并写入文件内容为 "this is haha" 文件名为haha.txt的文件。

[root@xxx ~]# mkdir /root/test1    #创建/root/test1文件

[root@xxx ~]# mkdir /root/test2    

[root@xxx ~]# mkdir /root/test3

[root@xxx ~]# mount /dev/nvme0n2p1 /root/test1  #把/dev/nvme0n2p1 挂载到/root/test1

[root@xxx ~]# mount  #查看挂载

[root@xxx ~]# cd /root/test1  #去到挂载目录

[root@xxx test1]# echo this is test1 > 1.txt   #在挂载目录里面创建一个文件内容为this is test1 文件名为1.txt的文件

[root@xxx ~]# umount /dev/nvme0n2p1   #umount 取消挂载。把/dev/nvme0n2p1取消挂载。以分区来取消挂载

[root@xxx ~]# umount /root/test2   #umount取消挂载。以挂载的目录取消

#注意:不要在挂载目录里面去取消挂载

[root@xxx ~]# mount /dev/nvme0n2p5 /root/test3

[root@xxx ~]# cd /root/test3

[root@xxx test3]# ls

[root@xxx test3]# umount /dev/nvme0n2p5

umount: /root/test3: target is busy.

[root@xxx test3]# cd

[root@xxx ~]# umount /dev/nvme0n2p5

[root@xxx ~]#

【注意】

单一文件系统不应该被重复挂载在不同的挂载点(目录)中

单一目录不应该重复挂载多个文件系统

作为挂载点的目录,应为空目录,否则原有数据会隐藏

查看磁盘空间使用量:df,du

df : 查看磁盘空间的使用情况(-h)

du : 某个文件或者目录所占用的磁盘空间情况。(-h)

[root@xxx ~]# df -h

[root@xxx ~]# du -h

lvm逻辑卷

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将若干个磁盘或者磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上任意创建逻辑卷,并进一步在逻辑卷上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

假设有三块磁盘/dev/sdb、/dev/sdc和/dev/sdd用来划分逻辑卷,LVM模型如图所示:

创建逻辑卷(lvm)

创建逻辑卷(lvm)流程:pv -> vg -> lv

1、创建物理卷(pv)

#创建pv,命令:pvcreate 要创建为物理卷的设备或分区
[root@localhost ~]# pvcreate /dev/sda1 /dev/sdb1

WARNING: ext4 signature detected on /dev/sda1 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sda1.
  Physical volume "/dev/sda1" successfully created.
  Physical volume "/dev/sdb1" successfully created.
  
  
[root@localhost ~]# pvscan       #列出所有物理卷(pv),简写pvs
  PV /dev/nvme0n1p3   VG rhel            lvm2 [18.41 GiB / 0    free]
  PV /dev/sda1                           lvm2 [5.00 GiB]
  PV /dev/sdb1                           lvm2 [2.00 GiB]
  Total: 3 [25.41 GiB] / in use: 1 [18.41 GiB] / in no VG: 2 [7.00 GiB]

[root@localhost ~]# pvdisplay    #显示物理卷(pv)的各种属性

2、创建卷组(vg)

# 命令:vgcreate 卷组名称    物理卷名称
[root@localhost ~]# vgcreate vg01 /dev/sda1 /dev/sdb1
  Volume group "vg01" successfully created
  
  
[root@localhost ~]# vgs        #搜索所有的卷组
  VG   #PV #LV #SN Attr   VSize  VFree
  rhel   1   2   0 wz--n- 18.41g    0 
  vg01   2   0   0 wz--n-  6.99g 6.99g
[root@localhost ~]# vgdisplay         #展示卷组的信息

3、创建逻辑卷(lv)

# 命令:lvcreate -n 逻辑卷名称 -L 逻辑卷大小    卷组名称
[root@localhost ~]# lvcreate -n lv01 -L 3G vg01        #大小不能大于vg的大小。
  Logical volume "lv01" created.
  
[root@localhost ~]# lvs        #展示逻辑卷的信息
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rhel -wi-ao---- 16.41g                                                    
  swap rhel -wi-ao----  2.00g                                                    
  lv01 vg01 -wi-a-----  3.00g                                                    
[root@localhost ~]# lvdisplay         #展示逻辑卷的详细信息

4、格式化

#lsblk -p 或者fdisk -l  查看lvm的完整设备文件名
[root@localhost dev]# fdisk -l

....

Disk /dev/mapper/vg01-lv01: 3 GiB, 3221225472 bytes, 6291456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


#格式化
[root@localhost ~]# mkfs.xfs /dev/mapper/vg01-lv01 
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=4, agsize=196608 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1
data     =                       bsize=4096   blocks=786432, 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 ~]# 

注意:mkfs.xfs /dev/mapper/vg01-lv01 可以换成mkfs.xfs /dev/vg01/lv01,因为都是dm-2的软链接。
[root@localhost ~]# ll /dev/mapper/vg01-lv01 
lrwxrwxrwx. 1 root root 7 Apr 15 15:21 /dev/mapper/vg01-lv01 -> ../dm-2
[root@localhost ~]# ll /dev/vg01/lv01 
lrwxrwxrwx. 1 root root 7 Apr 15 15:21 /dev/vg01/lv01 -> ../dm-2
[root@localhost ~]# 

5、挂载

[root@localhost ~]# mkdir test4
[root@localhost ~]# ll test4
total 0
[root@localhost ~]# mount /dev/mapper/vg01-lv01 test4
[root@localhost ~]# df -h | grep test4
/dev/mapper/vg01-lv01  3.0G   54M  3.0G   2% /root/test4
[root@localhost ~]# 

删除逻辑卷(lvm)

创建逻辑卷(lvm)流程:lv -> vg -> pv

#卸载
[root@localhost ~]# umount test4
[root@localhost ~]# df -h | grep test4

[root@localhost ~]# lvremove /dev/mapper/vg01-lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
  Logical volume "lv01" successfully removed.
  
[root@localhost ~]# vgremove vg01 
  Volume group "vg01" successfully removed
  
[root@localhost ~]# pvremove /dev/sda1
  Labels on physical volume "/dev/sda1" successfully wiped.
[root@localhost ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
[root@localhost ~]# 

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值