LVM 分区自定义镜像无法启动问题记录

简介: 手动添加lvm驱动引导启动

问题现象:

本地设置的镜像系统,使用的是lvm分区,上传后,第一次创建成功后可以启动


ae86972c5c640315541006416164ce24b0404f11



重启后,再也无法进入系统了,显示如截图所示


02090c3a37d54fe74387d8277771ae0c96b3f04f




问题分析

阿里云自有镜像都是非lvm分区,因此重启后没有问题

使用非阿里云镜像,第一次启动时,linux去重新remake initrd,initrd里面原有的lvm模块被移除了,因此需要想办法将lvm驱动来被dracut 来引导识别



解决方法

1.vi /etc/dracut.conf.d/lvm.conf  (如无,新建文件), 加入lvm驱动模块配置,

   add_dracutmodules+=" lvm "


2.lvm 也是建立在磁盘的基础之上的,那么同时要保证 virtio-blk 驱动也要在 ramdisk 里面

  


dracut -f   -add-drivers   'xen-blkfront  xen-blkfront virito_blk  virtio_pci virtio_console '


  

975e220216686fc9431406649de1972f4eaaead3



执行上述操作重启恢复正常



延伸说明


dracut     create initial ramdisk images for preloading modules。  dracut创建虚拟磁盘映像,提供给内核,预加载块设备模块,通过加载这些设备模块访问根文件系统



dracut  官方手册 

https://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html#dracutkernel7

https://www.kernel.org/pub/linux/utils/boot/dracut/


开机流程:Systemd & Dracut

systemd-journal.socket
                                               |
                                               v
                                    dracut-cmdline.service
                                               |
                                               v
                                    dracut-pre-udev.service
                                               |
                                               v
                                     systemd-udevd.service
                                               |
                                               v
local-fs-pre.target                dracut-pre-trigger.service
         |                                     |
         v                                     v
 (various mounts)  (various swap  systemd-udev-trigger.service
         |           devices...)               |             (various low-level   (various low-level
         |               |                     |             services: seed,       API VFS mounts:
         v               v                     v             tmpfiles, random     mqueue, configfs,
  local-fs.target   swap.target     dracut-initqueue.service    sysctl, ...)        debugfs, ...)
         |               |                     |                    |                    |
         \_______________|____________________ | ___________________|____________________/
                                              \|/
                                               v
                                        sysinit.target
                                               |
                             _________________/|\___________________
                            /                  |                    \
                            |                  |                    |
                            v                  |                    v
                        (various               |              rescue.service
                       sockets...)             |                    |
                            |                  |                    v
                            v                  |              rescue.target
                     sockets.target            |
                            |                  |
                            \_________________ |                                 emergency.service
                                              \|                                         |
                                               v                                         v
                                         basic.target                             emergency.target
                                               |
                        ______________________/|
                       /                       |
                       |                       v
                       |            dracut-pre-mount.service
                       |                       |
                       |                       v
                       |                  sysroot.mount
                       |                       |
                       |                       v
                       |             initrd-root-fs.target
           (custom initrd services)            |
                       |                       v
                       |             dracut-mount.service
                       |                       |
                       |                       v
                       |            initrd-parse-etc.service
                       |                       |
                       |                       v
                       |            (sysroot-usr.mount and
                       |             various mounts marked
                       |               with fstab option
                       |                x-initrd.mount)
                       |                       |
                       |                       v
                       |                initrd-fs.target
                       \______________________ |
                                              \|
                                               v
                                          initrd.target
                                               |
                                               v
                                    dracut-pre-pivot.service
                                               |
                                               v
                                     initrd-cleanup.service
                                          isolates to
                                    initrd-switch-root.target
                                               |
                                               v
                        ______________________/|
                       /                       |
                       |        initrd-udevadm-cleanup-db.service
                       |                       |
           (custom initrd services)            |
                       |                       |
                       \______________________ |
                                              \|
                                               v
                                   initrd-switch-root.target
                                               |
                                               v
                                   initrd-switch-root.service
                                               |
                                               v
                                          switch-root











目录
相关文章
|
Linux 数据库 网络协议
Linux环境下安装和配置Informix数据库(多次试错后总结)
本文主要讲解在Centos环境下,Informix数据库的安装和配置方法
3830 0
Linux环境下安装和配置Informix数据库(多次试错后总结)
|
人工智能 Devops 虚拟化
VMware vSphere 8.0 Update 3d 下载 - 企业级工作负载平台
VMware vSphere 8.0 Update 3d 下载 - 企业级工作负载平台
6047 17
|
存储 人工智能
浙江大学与阿里云联合宣布共建人工智能通识课|阿里云云工开物合作动态
浙江大学与阿里云联合共建人工智能通识课,涵盖教育、法律、设计等多学科方向,将产业案例融入课程体系。阿里云开放大模型认证课程资源,提供云服务器、AI算力等支持,并通过“云工开物”计划为学生提供计算资源。双方还将发起“智能体创新大赛”,推动技术创新与人才培养。浙大是国内首批开展全校人工智能通识课的顶尖高校之一,2024年起“人工智能基础”成为全校本科生必修课。
|
存储 安全 Linux
Centos 8系统ext4文件系统类型进行扩容缩容 (LVM)
通过使用这些技术和工具,可以有效管理CentOS 8系统上的存储资源,确保系统在高负载和高并发情况下的稳定运行。
1044 9
|
弹性计算 Linux Windows
共享在阿里云ecs上安装自定义iso的方法
本文关键字:阿里云 自定义iso,阿里云 自定义镜像
2644 0
共享在阿里云ecs上安装自定义iso的方法
|
Ubuntu Linux
【问题复盘】在Ubuntu 20.04下安装OFED驱动 复盘:在Ubuntu 20.04下安装OFED驱动
整个问题主要是由于不同的内核版本导致文件路径不同,进而导致安装过程中某些库无法按预期安装而出现问题。 为什么使用最新的OFED驱动解决了问题呢?推测是最新驱动补充了之前缺失的某些文件,因此后续安装过程能够正常进行。 例如,在OFED 5.4中,某个安装所需的文件F位于A处,但安装程序却在B处查找该文件,导致报错。而在OFED 5.8中,该安装所需的文件F被移回到B处,此时不管去哪里查找都能找到文件F,因此安装可以正常进行。
1759 0
|
存储 运维 供应链
唯一云厂商 I 阿里云高分通过可信云“一云多芯”全部标准测试
在第十届可信云大会上,国内首个《一云多芯技术能力标准体系》由中国信息通信研究院和中国通信标准化协会联合发布。该标准体系涵盖了五大类标准,包括:IaaS平台能力要求、PaaS平台能力要求、PaaS性能要求、云管平台能力要求、稳定性度量评估。在严格的测试标准下,阿里云飞天企业版高分通过全部五项测试,并均获得最高级认证,是首批通过全部标准企业中唯一的云计算厂商。
1436 0
唯一云厂商 I 阿里云高分通过可信云“一云多芯”全部标准测试
|
Unix Linux 程序员
ClickHouse【环境搭建 01】Linux环境单机版在线安装 Code:210.DB::NetException + Init script is already running 问题处理
ClickHouse【环境搭建 01】Linux环境单机版在线安装 Code:210.DB::NetException + Init script is already running 问题处理
733 0