KVM虚拟机管理工作二(虚拟机磁盘优化,Centos进入dracut模式,报 /dev/centos/swap does not exist,如何恢复)

简介: KVM虚拟机管理工作二(虚拟机磁盘优化,Centos进入dracut模式,报 /dev/centos/swap does not exist,如何恢复)

前言:


  • KVM虚拟机的安装其实不是一个简单的事情,为什么要这么说呢?因为,KVM虚拟机在安装完毕后,我们可能会有很多定制化的需求,比如,更改虚拟机的root密码,安装一些常用软件,或者常用的软件环境。也会有扩容,缩容,增加逻辑盘以及打快照等等扩展需求。
  • 那么,KVM虚拟机的操作系统安装一般是什么要求呢?
  • 我想,第一,是需要最小化安装,这里最小化安装是为了降低KVM镜像的大小,使得镜像轻量化。第二,是关闭swap,因为很多环境是不能有swap的,相对于生产服务器来说,通常swap都是一个鸡肋的存在,并且像k8s这样的软件是禁止swap的,而关于swap 这就要求我们需要从底层开始设计操作系统了。第三,适当的内核优化。第四,KVM镜像安装的时候不能也不应该划分多个分区,应该是只划分一个根分区,这里的原因在于,扩容操作的时候只会从最后一个分区号后开始,而我们扩容通常是想扩容根分区,如果,根分区不是最后一个分区序号,那么,是无法扩容成功的(比如,一个KVM镜像会认为第一个磁盘是vda,而划分多个分区后,可能根分区是vda1,还存在其它分区,比如vda2,vda3,扩容操作的时候,将只能扩容vda3,扩容vda1或者2并不会成功的。)。

问题复现:


一,

安装操作系统的时候安装程序强制要求划分swap分区,因此,划分了一个swap分区,并且该分区是lvm格式的,导致后期想扩容根分区的时候扩容失败。

KVM虚拟机的分区划分如下:

image.png

现在的情况就是,vda1根目录并不是顺位最后一个而是swap分区,并且该swap分区还是lvm格式,因此,希望将该swap分区卸载。

二,

卸载lvm格式的swap分区的步骤:

(1)

首先,我们通过三个命令得到lvm格式的swap详细信息,三个命令分别是lsblk,blkid和cat  /etc/fsatab

第一个命令知道了swap分区名字是/dev/vda2,第二个命令知道了这个lvm的pv名字是 /dev/mapper/centos-swap,挂载时使用的时pv名称,default模式挂载的。

image.png

(2)

开始卸载了,卸载步骤如下:

  • 卸载swap挂载

swapoff 卸载swap分区,通过free命令验证。

image.png

  • 删除lv

先查询出lv的名字,然后删除,中间需要输入y确认一下。

image.png

  • 删除vg

同样的步骤,先查询vg的名字,然后删除vg

image.png

  • 删除pv

同样的配方,先查询出pv的名字,然后删除之。

image.png

  • 通过fdisk彻底删除分区

先查出磁盘分区情况,然后使用fdisk删除/dev/vda2,最后partprobe刷新磁盘状态,reboot。

95ccc7e07d48452c91d71f50f7c11a60.png

好了,恭喜你,即将进入dracut模式啦(重启时间比较长,5 6分钟吧)。报错如下图:

7c38684e76d0468390ebc9aa02e62dd1.png

WAIT!!!/etc/fstab里的挂载没有去掉的原因?

(3)

挂载根目录,找到 /etc/fsata文件注释掉最后那一行,这该OK了吧?

image.png

其实是年轻啦,reboot后并没有卵用。WHY???因为grub里还有swap哦。重启后,仍然建立一个tmps ,仍然挂载根目录到此新目录上。

image.png

image.png

image.png

45abf3547b1740e989df9a8d70297cee.png

 这三个文件都修改完了,就可以愉快的重启啦,速度非常快的就进入系统啦。在重申一次,这三个文件的路径是 /tmps/etc/fstab ,   /tmps/default/grub   ,            /tmps/boot/grub2/grub.cfs

vim /boot/grub2/grub.cfg 
 vim /etc/default/grub 
vim /etc/fstab 

至此,lvm格式的swap就彻底删除了,当然了,不管任何时候删除前都需要查询清楚,我的分区很可能是和你的不一样的(根本原因在于,我安装KVM镜像的时候,是先划分的根分区,然后划分的swap分区,如果次序对调,根分区应该是/dev/vda2,而swap分区应该是/dev/vda1, 说人话就是分区的序号是和安装手法有关!!!!!!!!!!)


目录
相关文章
|
2月前
|
Kubernetes Linux 容器
如何在centos中关闭swap分区
在CentOS中,关闭swap分区可以通过临时关闭和永久禁用两种方式实现。临时关闭swap分区适用于临时测试和故障排除,而永久禁用swap分区则需要修改 `/etc/fstab`文件。通过遵循上述步骤,可以确保系统在没有swap的情况下稳定运行。这对于某些应用场景(如Kubernetes集群)是必要的配置步骤。
283 3
|
4月前
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
7月前
|
关系型数据库 MySQL Linux
通过虚拟机进行安装Centos7.0并且安装MySQL
通过虚拟机进行安装Centos7.0并且安装MySQL
115 0
|
3月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
262 0
虚拟机centos7.9一键部署docker
|
8月前
|
关系型数据库 MySQL Linux
一次虚拟机centos7系统崩溃恢复记录
一次虚拟机centos7系统崩溃恢复记录
454 0
|
3月前
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
|
5月前
|
Linux 虚拟化
成功解决:Xshell 无法连接虚拟机。如何使用Xshell连接CentOS7虚拟机(详细步骤过程)
这篇文章提供了使用Xshell连接CentOS 7虚拟机的详细步骤,包括编辑VMware的网络设置以启用桥接模式、检查个人电脑适配器虚拟网络的连接情况,以及通过Xshell新建并建立连接的过程。文章还提到了在虚拟机可以访问外网的情况下成功连接的后语,暗示了网络配置的重要性。
成功解决:Xshell 无法连接虚拟机。如何使用Xshell连接CentOS7虚拟机(详细步骤过程)
|
4月前
|
Linux
centos 安装etcd|待优化
centos 安装etcd|待优化
|
5月前
|
JavaScript Linux 应用服务中间件
如何将Vue项目打包丢入虚拟机CentOS 7中运行
好的,我会按照你的要求,以"这篇文章"四个字开头,用一句话为你摘要每篇文章的主要内容。让我们开始吧。如果你现在就发给我链接,我会立即为你解读。
|
5月前
|
Linux
如何查看CentOS 7 虚拟机的IP地址
这篇文章介绍了如何在CentOS 7虚拟机中查看IP地址的方法。虽然具体内容没有提供,但通常在CentOS系统中,可以通过打开终端并使用`ifconfig`命令(或在最新版本中使用`ip addr`命令)来查看网络接口的IP地址。如果需要查看特定网络接口的详细信息,可以使用`ifconfig 接口名称`或`ip addr show 接口名称`。
如何查看CentOS 7 虚拟机的IP地址