RH134-第十六节-磁盘管理

来源:互联网 发布:网络乞丐mc吴迪伴奏 编辑:程序博客网 时间:2024/06/03 13:44

名词解释

mbr:Master Boot Record,我们将包含MBR引导代码的扇区称为主引导扇区,主引导扇区由三个部分组成(共占用512个字节):

1.主引导程序即主引导记录(MBR)(占446个字节)
可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。

2.磁盘分区表项(DPT,Disk Partition Table)
由四个分区表项构成(每个16个字节)。
负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。

3.结束标志(占2个字节)
其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。
win7以前的系统分区方式都为mbr,磁盘最大为2T,具有很多的限制,由此gpt分区方式应运而生。

gpt:GUID Partition Table,可以分出很多的分区,它是可扩展固件接口(EFI)的一部分,被用于替代BIOS系统中的一个扇区来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。对于那些扇区为512字节的磁盘,MBR分区表不支持容量大于2.2TB(2.2 × 10^12字节)的分区,然而,一些硬盘制造商(诸如希捷和西部数据)注意到了这个局限性,并且将他们的容量较大的磁盘升级到了4KB的扇区,这意味着MBR的有效容量上限提升到了16 TB。 这个看似“正确的”解决方案,在临时地降低了人们对改进磁盘分配表的需求的同时,也给市场带来了关于在有较大的块(block)的设备上从BIOS启动时,如何最佳的划分磁盘分区的困惑。GPT分配64bits给逻辑块地址,因而使得最大分区大小在2^64-1个扇区成为了可能。对于每个扇区大小为512字节的磁盘,那意味着可以有9.4ZB(9.4 x 10^21字节) 或 18,446,744,073,709,551,615(2^64-1)个扇区 x 512(=2^9)字节每扇区)。win8以后的系统都是默认gpt分区格式。

*物理存储介质(PhysicalStorageMedia)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。

*物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

*卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

*逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

*物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

*逻辑块(Logical Extent,LE)
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
图所示LVM抽象模型,展示了PV、VG、LV三者之间关系:
和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。
系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。

磁盘查看命令

fdisk -l ##系统中的所有磁盘设备
df -TH ##系统正在挂载的磁盘设备类型
blkid ##系统可以挂载的磁盘设备id

分区划分

fidsk /dev/vdb (enter之后会得到提示按照提示操作就ok)
Command (m for help): m ##获得帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ##删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
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
t change a partition’s system id ##修改分区功能id
u change display/entry units
v verify the partition table
w write table to disk and exit ##保存更改到分区表中
x extra functionality (experts only)

Command (m for help): n ##新建分区
Partition type:
p primary (1 primary………………
.
.
.
Last sector, +sectors or +size{K,M,G} (206848-20971519, default 20971519): +200M
分区大小,一定要加+后跟分区大小,不然会出问题
Partition 2 of type Linux and of size 200 MiB is set……
Command (m for help): wq
保存并退出,只输入q则表示放弃更改退出
partprobe ##同步分区表
mkfs.xfs /dev/vdb1 ##格式化
mount /dev/vdb1 /mnt/ ##临时挂载

vim /etc/fstab ##永久挂载
编写格式:
device mountpoint ftype defaults(mountpoint) 0 0
/dev/vdb1 /mnt xfs defaults 0(开机不检查) 0(不备份)
mount -a ##使/etc/fastab中记录的挂载生效

删除分区

先使用umount命令解除挂载
注:当挂载点被使用时,无法解除挂载,需要用fuser -kvm结束使用的进程,然后进行解除挂载
解除挂载之后,fdisk /dev/vdb ,按照提示d删除分区

设定分区方式,将(mbr)改为 gpt

更改之前需要把正在使用的分区关闭,才可以进行更改
partoff /dev/vdb2
parted /dev/vdb2
mklabel
gpt
q

添加swap分区

fdisk /dev/vdb ##添加一个分区
新建普通分区,建立完成的时候,t(type),按照提示选择swap分区的编号,建立完成了记得格式化才能挂载使用。
[root@localhost ~]# fdisk /dev/vdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition number (2-128, default 2):
First sector (34-20971486, default 2099200):
Last sector, +sectors or +size{K,M,G,T,P} (2099200-20971486, default 20971486): +4G
Created partition 2

Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: gpt
tart End Size Type Name
1 2048 2099199 1G Linux filesyste
2 2099200 10487807 4G Linux filesyste

Command (m for help): t
Partition number (1,2, default 2): 2
Partition type (type L to list all types): l
。。。。。。。
14 Linux swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
15 Linux LVM E6D6D379-F507-44C2-A23C-238F2A3DF928
。。。。。。。

Partition type (type L to list all types): 14
Changed type of partition ‘Linux filesystem’ to ‘Linux swap’
wq
[root@localhost ~]# partprobe ##同步分区表
[root@localhost ~]# mkswap /dev/vdb2
格式化成swap类型,格式化的过程就是写入文件系统
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=b933737a-1409-48b5-8f92-d663d388134b
[root@localhost ~]# swapon -a /dev/vdb2
开启所有/dev/vdb2的swap分区,swapon开启swap,相对的就有swapoff,代表关闭swap分区
[root@localhost ~]# swapon -s #最简的显示swap分区信息
Filename Type Size Used Priority
/dev/vdb2 partition 4194300 0 -1

更改gpt下的swap 为mkdos下的swap

用文件来添加swap

dd if=/dev/zero of=/swapfile bs=1M count=1000 ##截取一个1G大小的文件
mkswap /swapfile ##格式化为swap类型
swapon -a /swapfile ##开启所有swap分区
-p + 数字 ##更改优先级
vim /etc/fstab ##永久添加swap分区
永久添加格式:
/swapfile swap swap defaults,pri=1 0 0 #pri优先级

删除swap

vim /etc/fstab
删除fstab中添加的开机自启,如果只是简单的删除磁盘中的分去,重启系统启动会报错起不来,因为fstab中启动swap,而系统中没有swap,凡是这个文件中填写出现错误,或者写的跟实际不符合就会系统起不来
swapoff /swapfile ##关闭swap文件系统
swapoff /dev/vdb1 ##关闭/dev/vdb1上所有swap磁盘分区
rm -rf /swapfile ##删除文件
fdisk /dev/vdb ##删除磁盘分区
partprobe ##同步分区表

swap交换分区

建议设定
系统内存(RAM ) 建议最小交换空间
最大4GB 至少2GB
4GB-16GB 至少4GB
16GB-64GB 至少8GB
64GB-256GB 至少16G

磁盘加密(只能暴力破解)

/dev/mapper/是/dev/db1解密后的状态
1 fidisk /dev/dvb ==磁盘分区,出创建设备
2 cryptsetup luksFormat /dev/vdb1 ==安装加密层
3 cryptsetup open /dev/vdb1 peter ==打开加密层
4 mkfs.xfs /dev/mapper/peter ==格式化解密后文件
5 mount /dev/mapper/peter /mnt ==挂载加密设备文件
6 umout /mnt/ ==取消挂载加密设备文件
7 cryptsetup close peter ==关闭加密层

加密的永久性挂载

1 vim /etc/crypttab ==创建并编辑加密文件
解密后的设备管理文件 设备 加密字符存放文件
peter /dev/vdb1 /root/peterpasswd
**这个存放位置随意,但是尽量让普通用户看不到的地方
2 vim /root/peterpasswd ==创建并编辑设备管理文件的解密字符
解密字符
3 chmod 600 /root/hellopasswd ==赋予设备管理文件root的权限
4 cryptsetup luksAddKey /dev/vdb1 /root/hellopasswd
5 vim /etc/fastab ==编辑挂载文件
6 /dev/mapper/hello /mnt xfs defaults 0 0(不检测不备份)
7 reboot ==重启进行验证

加密清除

1 vim /etc/fstab ==删除挂载命令
2 > /etc/crypttab ==清空加密管理文件
3 rm -fr /root/peterpasswd ==删除设备设备管理文件的解密字符
4 umount /mnt/ ==取消挂载(如果出现挂载目录正忙,用fuser -kvm /mnt(挂载目录)杀死进程,再取消挂载)
5 cryptsetup close peter ==关闭加密管理文件
6 mkfs.xfs /dev/vdb1 ==格式化vdb1

磁盘配额

1 mount -o usrquota /dev/vdb1 /mnt ==创建并挂载
2 quotaon -uv /dev/vdb1 ==激活配额功能
3 edquota -u sutent ==给student用户磁盘配置
4 dd if=/dev/zero if=/mnt/file bs=1M count=500
(如果无法打开,先赋予/mnt满权限 ,chmod 777 /mnt)
5 quota -u username ==查看用户的磁盘配额

磁盘阵列

1 fdisk /dev/vdb
2 madadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3} -C创建 -a yes 从没有的创建 -l 级别,只有0(同时录入,吞吐量大,适合网页输出),1(同时分开写速度快,适合贴吧、论坛键入式),5(吞吐量和速度都快) -n 用几块盘创建 -x闲置块数(备用) /dev/vdb{1..3}
3 mkfs.xfs /dev/md0 ==格式化
4 mount /dev/md0 /mnt/ ==挂载
5 watch -n 1 “cat /proc/mdstat ; df -h /mnt” ==监控命令

相关参数
mdadm -D /dev/md0 ==查看磁盘状态
mdadm /dec/md0 -f /dev/vdb2 ==破坏磁盘
mdadm /dev/md0 -r /dev/vdb2 ==删除磁盘
mdadm /dev/md0 -a /dev/vdb2 ==增加磁盘

umont /dev/md0 ==取消挂载
mdadm -S(大写) /dev/md0 ==停止RID
fisk /dev/vdb ==删除分区
partprobe ==同步分区信息表
cat /proc/partitions ==查看分区情况

LVM拓展:

这里写图片描述

这里要说明以下几点:
1),pv被创建后是由很多的PE(physical extension物理盘区)组成的,物理盘区就相当于我们说的block,不过通常比一般的block大,可以是4M,8M,16M等,
2),当VG被创建后,我们才能正常查看PE的数量
3),其实最后的LV就是由这些PE组成的,不过在LV里面这些PE叫做LE
4),一个系统上可以有很多个PV,VG,LV

配置LVM

做实验可以用一个bash来监控逻辑卷的状态

watch -n 1 ‘pvs;echo ====;vgs;echo ======;lvs;echo ====;df -h /data’

准备物理卷

fdisk /dev/vdb

要用t 修改ID为Linux LVM

创建pv

pvcreate /dev/vdb1 ##用物理卷创建pv

3)创建vg

vgcreate vg0 /dev/vdb1 ##用pv创建vg

vgremove vg0 ##删除pv

vgcreate -s 2m vg0 /dev/vdb1 ##创建大小为2M的vg

4)创建逻辑卷

lvcreate -L 100M -n lv0 vg0 ##创建逻辑卷

mkfs.xfs /dev/vg0/lv0 ##格式化逻辑卷

mount /dev/vg0/lv0 /data ##挂载之后就可以使用了

扩展逻辑卷

当组里的空间够

lvextend -L 500M /dev/vg0/lv0 ##将逻辑卷lv0扩大到500M

xfs_growfs /dev/vg0/lv0 ##将挂载点的空间也同步为刚扩大的500M

当组里的空间不够

pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2
lvextend -L 1200M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0

缩小逻辑卷

注意:xfs不能缩减,所以先要将lvm设备格式化为ext4

mkfs.ext4 /dev/vg0/lv0

e2fsck -f /dev/vg0/lv0 先扫,防止缩的太小把数据弄坏了

resize2fs /dev/vg0/lv0 刷新扩展空间

lvreduce -L 500M /dev/vg0/lv0 减小空间

恢复为xfs文件系统

mkfs.xfs /dev/vg0/lv0 -f

重新挂载

mount /dev/vg0/lv0 /data

建立LVM快照

lvcreate -L 40M -n lv0-snap -s /dev/vg0/lv0 建立快照

mount /dev/vg0/lv0-snap /data

如果在快照里删除了某些东西,还可以恢复
先删除快照,在照一遍
lvremove /dev/vg0/lv0-snap
lvcreate -L 40M -n lv0-snap -s /dev/vg0/lv0
mount /dev/vg0/lv0-snap /data

原创粉丝点击