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











目录
相关文章
|
6月前
|
Linux 测试技术
非LVM磁盘分区根目录扩容操作参考
在操作系统部署时,根目录使用的是非LVM分区,后期空间不足又无法扩容。 提供一个思路是新增一块硬盘,创建为逻辑卷,把根目录迁移过去,然后引导以新分区启动。 迁移完成后,旧的根目录可以再格式化为逻辑卷,合并到新磁盘分区。 本操作仅在CentOS Linux release 7.9.2009实验过,其他环境可能不支持。
540 0
|
6月前
|
Linux
生产环境Linux服务器磁盘分区、无损扩容根分区以及挂载磁盘到目录实战
生产环境Linux服务器磁盘分区、无损扩容根分区以及挂载磁盘到目录实战
218 0
|
Linux
Centos7 系列:磁盘挂载和磁盘扩容(新加硬盘方式)
在Centos 7 系统中,新添加硬盘,并将其挂载到自定义的新目录下;新添加硬盘,并为已有硬盘扩容。
2401 0
Centos7 系列:磁盘挂载和磁盘扩容(新加硬盘方式)
|
Linux
CentOS7下动态调整LVM分区大小的操作步骤
CentOS7下动态调整LVM分区大小的操作步骤
724 0
CentOS7下动态调整LVM分区大小的操作步骤
|
弹性计算
LVM重启后分区无法识别挂载
LVM重启后分区无法识别挂载
|
弹性计算 Linux
快照创建的磁盘挂载提示文件系统错误
快照创建的磁盘挂载提示文件系统错误
|
Linux
Linux 查看分区、未挂载分区
ls /dev 然后挂载 df -T 只可以查看已经挂载的分区和文件系统类型。 fdisk -l 可以显示出所有挂载和未挂载的分区,但不显示文件系统类型。
3276 0
|
弹性计算
LVM重启后找不到文件分区
LVM重启后找不到文件分区
3416 0
LVM重启后找不到文件分区
|
机器学习/深度学习 Shell Linux
linux LVM 一键分区脚本自动扩容
lv 分区,vg 卷,pv 硬盘;加s 列出,remove 删除 ;如:lvs和 lvremove 需要fdisk -l 查看LVM硬盘目录,如删除分区:lvremove /dev/mapper/eisc-b
1739 0