何谓LVM
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
本文中说的PM就是物理卷
VG就是卷组
LV就是逻辑卷
不了解的可以提前百度以下
如何为KALI安装LVM
目前绝大多数的Linux都已经支持了LVM,在安装界面就可以选择LVM卷的类型进行系统安装,所以本教程同样适用Debian系的其他系统甚至更多系的Linux下面来说以下如何安装
创建必要分区
首先是为启动安装介质,这里就不过多赘述,启动安装介质后,在对磁盘进行分区之前都按照自己的直觉走就可以了
到达对磁盘进行分区这一步后,如过是想使用整个磁盘,而不是使用部分磁盘(一部分给linux,一部分给windows),就可以直接直接选择使用整个磁盘并配置LVM,后面的一路确定就可以了
如果不想使用整个硬盘,可以先选择使用最大空间(是这个意思的选项就可以了),让他先把主要EFI分区和boot分区建立好,因为这俩分区不需要也不推荐放到LV里面,我这里因为是一个空的虚拟磁盘,所以没有使用最大空间那个选项。
点击使用最大空间后选择你想要装KALI的那个磁盘
然后选择将所有文件放在同一个分区中(先不用管你是不是要将home分配到其他分区,因为后面会把这些分区都删掉)
点击继续
到这里后,你会看见已经分配好分区了,你们的分区数量可能会比我的多一些。因为你们的硬盘上面可能还会有一一些windows分区和引导分区,这些分区我们不需要进行任何操作,我们主要操作的是图片里面的这两个分区。
然后我们双击挂载在根目录的分区
然后删除此分区
同样把挂载在swap的分区也删除掉
其他分区千万别动。这个时候如果你还想保留一些空间留给windows,那么你就需要先提前创建一个分区,注意一定不要创建到硬盘的最后,硬盘的最后是用来当pm的,因为pm放中间可能会导致磁盘空间读取不准确的问题,所以最好还是放在磁盘的最后。
创建保留分区(可选)
演示一下创建给windows保留的分区
双击空闲空间,创建一个新分区
然后填写分区大小,再点击继续
这里需要选择开始
然后双击用于
选择不使用此分区,再点击继续,然后双击设定结束
这样就创建好了一个物理分区。当然这个分区是为windows保留的,kali创建好后只需要在windows里把这个分区格式化并挂载上就行了
创建boot分区(如果已经有boot分区了,并且是挂载在boot目录下的,则可以跳过)
双击空闲空间,然后创建一个新分区,分配512MB
继续,后面分区的位置要放在开始
用于:那里我们选择Ext2文件系统(也可以选择Ext4)
挂载点:挂载到/boot
点击分区设定结束完成boot分区的设定
创建VG(卷组)
然后创建我们的PM
我们双击配置逻辑卷管理器,然后提示我们将修改写入磁盘并配置LVM,我们点击是就可以了
然后点击创建卷组
选择空闲空间,继续,然后会提示将修改写入磁盘并配置LVM,我们点击是就可以了
创建LV(逻辑卷)
然后创建逻辑卷
先创建一个swap分区,分配1G(1024M),也可以结合自己的需要多分配或者少分配
然后再创建一个挂载根目录的分区,名字为root(自己命名也行),然后可以将所有的或者部分空间;分配给这个分区,默认是分配全部空间,如果后面还想要创建快照,则需要留下至少是root分区一半的空间作为快照分区
点击完成
个性化创建非必要分区(可选)
如果你想把home,var 等目录单独分配分区,则可以以上面相同的方式创建更多的逻辑分区,因为方法向多,不再过多赘述
为逻辑分区分配挂载目录
然后我们需要为逻辑分区分配挂载的目录,这一步是必须的
然后我们可以看见我们刚才创建的root逻辑分区
双击用于
为root分区使用Ext4 日志文件系统
然后将挂载点选择为根目录(/ – 根文件系统),其他默认,然后双击分区设定结束,完成这个分区的设置
下面我们双击swap_1逻辑分区
让他用于交换空间
然后双击分区设定结束,完成这个分区的设定
分区设置完成
至此我们完成了所有的分区设置,接着我们点击完成分区操作并将修改写入磁盘就行了
然后就开始安装了
看,已经安装好了
LVM 快照 — snapshot
创建LVM快照
下面我们就来说一下如何创建快照以及设置动态快照
首先就是打开终端,并进入root模式,我们 lvs
以下可以看见现在有的LV(逻辑卷)
创建快照的指令 lvcreate -L 30G --snapshot --name snap_root /dev/vg0/root
-L #后面接快照的大小,最好能达到快照对象的一半以上,如果快照空间满了,快照就会立即失效
--snapshot #指明类型是快照
--name #后面接快照的名字
/dev/vg0/root #是快照的对象,也就是需要拍摄快照的那个LV
创建好后再 lvs
以下就可以看见新创建好的快照卷了
vgdisplay
可以查看卷组的信息(Alloc是已经使用的空间,Free是还剩余的空间)
配置快照卷的动态扩增
快照卷的动态括在扩增需要快照卷为可读写状态,只读状态的快照卷不能进行扩增
需要修改配置文件: sudo vim /etc/lvm/lvm.conf
在这个文件的最下面填加上这两行
snapshot_autoextend_threshold = 70 #配置快照卷自动增加容量的阈值,当快照卷使用达到70%的时候就会自动增加快照容量
snapshot_autoextend_percent = 20 #配置快照卷自动增加的容量,每次都会增加当前卷大小的百分之20的容量
然后重启一下就可以生效了
看,是不是生效了
快照恢复(文件拷贝和快照合并)
快照恢复对于根目录来说会有点困难,因为根目录是不能卸载的,如果只是很少的文件需要还原,你可以直接挂载上快照卷,去里面找你需要的文件就行了
mount /dev/vg0/snap_root /mnt #挂载快照卷,后的 /mnt 是挂载点,可以自己创建(mkdir)一个挂载点
如果是大量文件丢失或者系统损坏这种的,我们不可能一个一个去替换文件,但又因为根目录不能卸载,所以我们需要另一个Linux系统进行恢复,可以在U盘中创建一个小型Linux,也可以使用微软的WSL(需要自己编译支持snapshot的内核才行),这里以U盘中的小型Linux作为演示
在U盘启动的Linux中也可以看见LV卷,然后激活VG(卷组)(这里有一个问题,就是在WSL里面可能会出现合并快照卷报错,这个时候可以手动取消激活VG,他会在下一次激活VG的时候自动恢复快照(重启进系统的时候)
命令: vgchange -ay /dev/vg0 #/dev/vg0 是卷组的地址,一般是 /dev/(卷组名)
取消激活的命令是 vgchange -an /dev/vg0
接下来就是一条指令合并快照卷 lvconvert --merge /dev/vg0/snap_root
注意后面接的是的快照卷的地址
再一次 lvs
查看逻辑卷,如果快照卷已经没了,则代表快照恢复成功了,然后只需要重启到系统就可以了
快照卷的删除
删除快照卷也同样简单
lvremove /dev/vg0/snap #这里注意对应自己的快照卷,如果不知道快照卷可以用 lvdisplay查看
结束语
就这些了,大家新年快乐牙,祝新的一年里永远不宕机,白白
错别字可能有点多,没办法,linux的输入法不好用⌇●﹏●⌇
祝大家的linux都不要嘎()