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, 说人话就是分区的序号是和安装手法有关!!!!!!!!!!)


目录
相关文章
|
3月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
1499 2
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
Kubernetes Linux 容器
如何在centos中关闭swap分区
在CentOS中,关闭swap分区可以通过临时关闭和永久禁用两种方式实现。临时关闭swap分区适用于临时测试和故障排除,而永久禁用swap分区则需要修改 `/etc/fstab`文件。通过遵循上述步骤,可以确保系统在没有swap的情况下稳定运行。这对于某些应用场景(如Kubernetes集群)是必要的配置步骤。
1463 3
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
641 1
KVM虚拟机的热迁移
|
存储 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 版本的命令。
2409 0
虚拟机centos7.9一键部署docker
|
KVM 虚拟化
KVM虚拟机的冷迁移
这篇文章详细描述了KVM虚拟机的冷迁移过程,包括无依赖环境迁移、有链接克隆虚拟机迁移、多块磁盘迁移的案例,以及可能遇到的错误和解决方案。
561 3
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
410 0
|
Linux 开发工具 网络协议
Centos7之系统优化方案
修改ip地址、网关(修改配置文件) vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@server ~]# service network restart //激活服务Restarting networ.
1245 0
|
4月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
950 69
|
4月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
435 78