阅读 95

linux磁盘与逻辑卷

磁盘管理

磁盘管理有关概念

磁盘分区:对硬盘物理介质的逻辑划分。
磁盘分成多个分区,可以在不同的分区建立不同的文件系统。
磁盘格式化:创建文件系统的工作,会导致现有的分区中所有的数据被清除。
对磁盘进行分区和格式化将会导致数据丢失,分区格式化前需要对数据进行备份。
复制代码

linux中一切皆文件,硬盘、分区等设备均表示为文件

以如下磁盘为例

# /dev/sda5
/dev 硬件设备文件所在的目录
sd 表示串行设备, 除了sd外还有hd,表示IDE设备
a 硬盘的顺序号,以字母表示
5 分区的顺序号,以数字表示
复制代码

传统的MBR分区方式

主引导记录

主引导扇区: 硬盘的0柱面、0磁头、1扇区称为主引导扇区

磁盘分区表: 含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4

结束标记: 偏移地址01FE--01FF的2个字节值为结束标志0xAA55或0x55AA,称为“魔数”(magic number)。如果该标志错误系统就不能启动

/dev/hdXX

传统的IDE并口硬盘,现在被串口SATA硬盘取代

PC主机中的第1个IDE硬盘表示为hda,第二个IDE硬盘为/dev/hdb,依此类推 IDE硬盘中的4个主分区可表示为hda1至hda4

/dev/sdXX

使用SATA的串口硬盘,传输速率快,主流硬盘

主分区,一个硬盘允许4个主分区
扩展分区:一个硬盘允许3个主分区,一个扩展分区
逻辑分区:在扩展分区上创建
复制代码

1.扩展分区只用于容纳逻辑分区,并不建立文件系统,因此也不能直接向扩展分区中保存文件和目录。

2.存储在扩展分区中的分区称为逻辑分区( Logic Partition)。每一个逻辑分区都可以存储一个文件系统。

3.逻辑分区的编号始终从5开始,因为1~4已经预留给主分区和扩展分区使用

4.与硬盘一样,每一个分区也会有象征该分区的设备文件;指定硬盘的设备文件后,再根据分区的识别号码命名。

5.主要分区与扩展分区:使用1-4的识别号码。

6.逻辑分区:一律使用5-63的识别号码。例如,/dev/hda的第一个主要分区,其设备文件便是/dev/hdal;而/dev/sdb硬盘的第1号逻辑分区,则会使用/dev/sdb5的设备文件。

GUID分区表

简称GPT。使用GUID分区表的磁盘称为GPT磁盘。是源自EFI标准的一种较新的磁盘分区表结构的标准。与普遍使用的主引导记录(MBR)分区方案相比,GPT提供了更加灵活的磁盘分区机制。它具有如下优点:

1、支持2TB以上的大硬盘.
2、每个磁盘的分区个数几乎没有限制。为什么说“几乎”呢?是因为Windows系统最多只
允许划分128个分区。不过也完全够用了。 
3、分区大小几乎没有限制。又是一个“几乎”。因为它用64位的整数表示扇区号。夸张
一点说,一个64位整数能代表的分区大小已经是个“天文数字”了,若干年内你都无法见
到这样大小的硬盘,更不用说分区了。
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破
坏后,可以通过另一份恢复。
5、每个分区可以有一个名称(不同于卷标)。
复制代码

为什么要提出新的分区方案

(1)主分区数目不能超过4个的限制,很多时候4个主分区并不能满足需要。
(2)MBR分区方案无法支持超过2TB容量的磁盘。因为这一方案用4个字节存储分区的总
扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能
超过2TB。磁盘容量超过2TB以后,分区的起始位置也就无法表示了。在硬盘容量突飞猛
进的今天,2TB的限制将很快被突破。
复制代码

分区管理工具

# fdisk 分区管理工具
    fdisk -l 列出硬盘分区信息
    fdisk /dev/sda 交互模式操作sda设备
    m 显示所有可用命令
    p 显示硬盘分区信息
    n、e、p 创建新、扩展、主分区
    t 更改分区文件系统
    d 删除硬盘分区
    w、q 保存、不保存退出
磁盘分区设备名
Boot:表示引导分区
Start:表示一个分区的开始扇区
End:表示一个分区的结束扇区
Blocks:表示分区容量,单位是块,默认一个块是1KB
Id:一个两位的十六进制,表示分区类型
System:ID所定义分分区类型

# 创建一个大小为300M的主分区
root@computer: ~# fdisk /dev/sdb
命令(输入m获取帮助):m
命令(输入m获取帮助):n
Select (default p):
Using default response p
分区号(2-4,默认2):
起始扇区(19555689 - 16777296,默认为 1955859):
将使用默认值 1955859
Last扇区,+扇区 or +size(K, M, G)
# 保存退出,按照要求同步磁盘
# 需要系统重新启动才可以生效,如果不想重启系统,可以使用partprober /dev/sdb
复制代码

建立和管理文件系统

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。 Linux中默认使用的文件系统类型

EXT4, 第4代扩展(Extended)文件系统
SWAP,交换文件系统
复制代码

Linux支持的其它文件系统类型

FAT16、FAT32、NTFS
XFS(高性能的日志文件系统,RHEL7默认使用的文件系统类型)、JFS(集群文件系统)
VFAT(虚拟文件分配表)
复制代码
# mkfs 创建文件系统
mkfs –t 文件系统类型 文件系统名
root@computer: ~# mkfs  -t ext4 /dev/sdb5  # 在/dev/sdb5上建立一个ext4分区
复制代码

文件系统的挂载

在Linux操作系统中,整个系统只有一个根目录中,因此在Linux中使用某个磁盘空间的根目录与其中的所有文件,就必须将文件系统挂载到根文件系统的某一个目录下。

# mount 挂载文件系统、ISO镜像到指定文件夹
mount [ -t 类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件  挂载点目录
user@computer: ~$ mount /dev/cdrom /mnt/cdrom  # 将/dev/cdrom挂载到/mnt/cdrom下
复制代码
# umount 卸载已挂载的文件系统
umount 存储设备位置
umount 挂载点目录
user@computer: ~$ unmount /dev/cdrom # 卸载已挂载的/dev/cdrom
复制代码

文件系统开机自动挂载

若想实现文件系统开机自动挂载,需要在/etc/fstab配置文件中进行配置

user@computer: ~$ cat /etc/fstab
LABEL=cloudimg-rootfs   /        ext4   defaults        0 0
设备位置             挂载点   文件系统类型
复制代码

逻辑卷管理

逻辑卷有关概念

Logical Volume Manager,逻辑卷管理。它是Linux环境下对磁盘分区进行管理的一种机制,屏蔽了底层磁盘布局,便于动态调整磁盘容量。需要注意:/boot分区用于存放引导文件,不能应用LVM机制

物理存储介质Physical Media:这里指系统的存储设备,硬盘或者分区,如/dev/sda5,/dev/hdb1等,是存储系统最底层的存储单元

PV(Physical Volume,物理卷):整个硬盘,或使用fdisk等工具建立的普通分区 ,包括许多默认4MB大小的PE(Physical Extent,基本单元)

VG(Volume Group,卷组):一个或多个物理卷组合而成的整体LV(Logical Volume,逻辑卷)从卷组中分割出的一块空间,用于建立文件系统

# LV,PV,PE与VG的关系
(1)物理磁盘被格式化为PV,空间被划分为一个个的PE
(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
(4)LV直接可以格式化后挂载使用
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
复制代码

管理逻辑卷

创建逻辑卷

创建步骤

(1)新建空分区
(2)初始化分区(创建PV)
(3)创建卷组
(4)创建逻辑卷
复制代码
# 新建空分区
使用分区工具(fdisk)创建LVM分区,方法和创建其他一般分区的方式是一样的,需要
注意通过t命令将LVM的分区类型改为8e
# 创建物理卷
pvcreate 设备名
root@computer: ~$ pvcreate /dev/sdb5  # 将空分区/dev/sdb5创建为物理卷
# 创建卷组 卷组的名字唯一,并且不能与/dev中的文件名冲突
vgcreate –s 块大小(默认4MB) 卷组名 物理卷设备名
root@computer: ~$ vgcreate -s 8MB vg0 /dev/sdb5
# 创建逻辑卷
lvcreate -n [逻辑卷名] –L [逻辑卷大小] [已存在卷组名]
选项
    -n 指定逻辑卷卷名,从卷组中划分一块空间作为逻辑卷
    -L 指定逻辑卷的大小(如果指定逻辑卷的时候使用参数l,表示设置的逻辑卷的大
    小是以PE的块数为单位的)
root@computer: ~# lvcreate -L 200MB -n lv0 vg0  # 建立一个200MB的名字叫做lv0的逻辑空间
# 格式化逻辑卷
mkfs –t 文件系统类型 逻辑卷设备名
选项 
    –t 指定文件系统类型
root@computer: ~$ mkfs -t ext4 /dev/vg0/lv0
将其挂载后即可使用
复制代码

查看卷信息

# pvdisplay 查看物理卷
pvdisplay 设备名
root@computer ~# pvdisplay /dev/sdb1
复制代码
# vgdisplay 查看卷组
vgdisplay 卷组名
root@computer ~# vgdisplay /dev/vg0
复制代码
# lvdisplay 查看逻辑卷
lvdisplay 逻辑卷名
root@computer ~# pvdisplay /dev/vg0/lv0
复制代码

更改容量

# lvextend 扩展逻辑卷的容量大小
lvextend –L [扩展大小] [逻辑卷设备名]
root@computer ~# lvextend -L 300M /dev/vg0/lv0
复制代码
# resize2fs 扩展文件系统大小
resize2fs 逻辑卷设备名
root@computer ~# resize2fs /dev/vg0/lv0
复制代码
# lvreduce 缩小逻辑卷容量
lvreduce -L 100M 逻辑卷名
root@computer: ~# lvreduce -L 100M /dev/vg0/lv0  # 将逻辑卷/dev/vg0/lv0缩小到100M
复制代码

卸载卷

卸载卷时,需要注意两个事项

1)卸载逻辑卷前,得先卸载逻辑卷所在的目录挂载点
2)卸载卷组前,必须先卸载所有使用到该卷组的逻辑卷
复制代码
# pvremove 卸载物理卷
pvremove 物理卷名
复制代码
# vgremove 卸载卷组
vgremove 卷组名
复制代码
# lvremove 卸载逻辑卷
lvremove卷组名
复制代码
关注下面的标签,发现更多相似文章
评论