修改根目录所在VG名称

1 情况描述

第三方工程师修改 vg 名称导致系统无法启动

检查结果为系统进入维护模式(当前模式下无网络连接,第三方无法远程连接)

通过云平台控制台登录,修改回 vg 名称,此时重启系统应当无问题

帮忙修改 vg 名称为 vgdata,直接使用了 vgrename 修改,同时修改了 /etc/fstab 文件 但是系统无法启动,报错如下:

报错

2 解决思路

根据报错可以看到,grub 引导的时候找不到引导的 lvm 卷导致启动失败,那么除了 /etc/fstab 配置文件外还需要修改 grub 的相关配置

系统目前进入了 dracut 工具的紧急 shell 界面

通过 livedvd chroot 到当前根目录,修改 grub 配置文件,重启

dracut :

dracut创建虚拟磁盘映像,提供给内核,预加载块设备模块(例如 IDE,SCSI或者RAID),通过加载这些设备模块访问根文件系统

紧急 shell 界面的操作 man -7 dracut.cmdline

3 操作流程

3.1 vgrename 正确操作流程

3.1.1 使用 vgrename 修改 VG 名称

# vgs

VG #PV #LV #SN Attr VSize VFree

centos 1 1 0 wz--n- <19.51g 0

# vgrename centos vgtest

3.1.2 修改 fstab 文件

# grep -v \# /etc/fstab

/dev/mapper/vgtest-root / xfs defaults 0 0 UUID=6747911d-d990-4169-bc40-45ff91c9f3a0 /boot ext4 defaults 1 2

# sed 's/centos-root/vgtest-root/g' /etc/fstab | grep vgtest

/dev/mapper/vgtest-root / xfs defaults 0 0

3.1.3 grub2 修改内容说明

# vi /etc/default/grub

GRUB_TIMEOUT=5 # 指定默认倒数读秒的秒数

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

GRUB_DEFAULT=saved # 指定默认由哪一个菜单来开机,默认开机菜单之意

GRUB_DISABLE_SUBMENU=true # 是否要隐藏次菜单,通常是藏起来的好

GRUB_TERMINAL_OUTPUT="console" # 指定数据输出的终端机格式,默认是通过文字终端机

GRUB_CMDLINE_LINUX="rd.lvm.lv=vgtest/root rhgb quiet" # 就是在 menuentry 括号内的 linux16 项目后续的核心参数

GRUB_DISABLE_RECOVERY="true" # 取消救援菜单的制作

修改 GRUB_CMDLINE_LINUX="rd.lvm.lv=vgtest/root rhgb quiet" 行,系统重启后可以使用 grub2-mkconfig -o /boot/grub2/grub.cfg 重建引导程序。

# vi /boot/grub2/grub.cfg

#

# DO NOT EDIT THIS FILE

…… ## 略

### BEGIN /etc/grub.d/10_linux ###

menuentry 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-7513d5e4-7cf6-427b-be9b-6f5afdfc255d' {

load_video

set gfxpayload=keep

insmod gzio

insmod part_msdos

insmod ext2

set root='hd0,msdos1'

if [ x$feature_platform_search_hint = xy ]; then

search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 6747911d-d990-4169-bc40-45ff91c9f3a0

else

search --no-floppy --fs-uuid --set=root 6747911d-d990-4169-bc40-45ff91c9f3a0

fi

linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=/dev/mapper/vgtest-root ro rd.lvm.lv=vgtest/root rhgb quiet ## 修改此行

initrd16 /initramfs-3.10.0-693.el7.x86_64.img

}

menuentry 'CentOS Linux (0-rescue-83251c6729fc4a02b763e39714c43a2d) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-83251c6729fc4a02b763e39714c43a2d-advanced-7513d5e4-7cf6-427b-be9b-6f5afdfc255d' {

load_video

insmod gzio

insmod part_msdos

insmod ext2

set root='hd0,msdos1'

if [ x$feature_platform_search_hint = xy ]; then

search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 6747911d-d990-4169-bc40-45ff91c9f3a0

else

search --no-floppy --fs-uuid --set=root 6747911d-d990-4169-bc40-45ff91c9f3a0

fi

linux16 /vmlinuz-0-rescue-83251c6729fc4a02b763e39714c43a2d root=/dev/mapper/vgtest-root ro rd.lvm.lv=vgtest/root rhgb quiet ## 修改此行

initrd16 /initramfs-0-rescue-83251c6729fc4a02b763e39714c43a2d.img

}

if [ "x$default" = 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)' ]; then default='Advanced options for CentOS Linux>CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)'; fi;

### END /etc/grub.d/10_linux ###

…… ## 略

### END /etc/grub.d/41_custom ###

3.1.4 重启系统

重建引导配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

3.2 生产环境问题重现

3.2.1 修改 VG 名称

# vgs

VG #PV #LV #SN Attr VSize VFree

vgtest 1 1 0 wz--n- <19.51g 0

# vgrename vgtest newvg

Volume group "vgtest" successfully renamed to "newvg"

3.2.2 修改 fstab 文件

# sed 's/vgtest-root/newvg-root/g' /etc/fstab | grep newvg

/dev/mapper/newvg-root / xfs defaults 0 0

3.2.3 重启系统

报错完全一致

报错模拟

3.3 问题修复

对 dracut 紧急 shell 不是很了解,这里采用 livedvd 修改 grub.cfg 文件

没有合适的 livedvd 直接下载了 archlinux 的安装镜像来用(体积较小)

重启主机,从 archlinux 的安装镜像启动

挂载系统分区,修改相文件(此处修改 /mnt/boot/grub/grub.cfg 文件和 /mnt/etc/default/grub),修改内容见 3.1

挂载

重启系统,重建 grub 引导 grub2-mkconfig -o /boot/grub2/grub.cfg

linux vg划分目录,修改根目录所在VG名称相关推荐

  1. Linux 将 /home 目录与 / 根目录磁盘合并

    1. Linux 下的 /home 目录与 / 目录 一般情况下进入 Linux 系统下的 / 目录,会看到如下目录列表. [root@localhost /]# ls bin boot dev et ...

  2. Linux迁移home目录到根目录的操作步骤

    目录 迁移home目录到根目录的操作步骤 1. 备份/home中的用户数据 2. 卸载这个/home并删除逻辑卷home 3. 最后再把释放出来多余的空间分配给root卷并xfs_growfs扩展文件 ...

  3. linux vg划分目录,【案例】Linux /根目录空间不足 在线实现linux根目录vg扩展

    [案例]Linux /根目录空间不足 在线实现linux根目录vg扩展 时间:2016-10-17 20:46   来源:Oracle研究中心   作者:网络   点击: 次 天萃荷净 运维DBA反映 ...

  4. 【Linux】/dev 目录中的设备文件名称命名规则

    设备命名规则对应表 设备 文件首名 + [序号] SCSI / SATA / USB 接口 sd [ a~p ] IDE 接口 hd [ a~d ] 软盘 fd [ 0~7 ] CDROM / DVD ...

  5. 【Linux】将Oracle安装目录从根目录下迁移到逻辑卷

    [Linux]将Oracle安装目录从根目录下迁移到逻辑卷 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到 ...

  6. linux创建根目录代码,Linux文件系统之目录的建立

    一:前言 在用户空间中,建立目录所用的API为mkdir().它在内核中的系统调用入口是sys_mkdir().今天跟踪一下 函数来分析linux文件系统中目录的建立过程. 二:sys_mkdir() ...

  7. linux脚本里写进入根目录,Linux重要目录、部分命令及权限

    (Linux下vim的配置,及g++.gdb的安装:http://blog.csdn.net/qq_34021920/article/details/76376837) 一.Linux下根目录的文件 ...

  8. linux安装手动划分目录,Linux目录配置整理

    FHS: 为了规范各种Linux发行版的目录配置方法和目录定义而制定了FHS规范. 在FHS规范的Linux中,所有的文件和目录都由根目录开始,即"/",它是所有文件和目录的起点. ...

  9. Linux LVM学习总结——扩展卷组VG

    Linux服务器由于应用变更或需求的缘故,有可能出现分区空间不足的情况,此时往往需要进行扩容(要增加分区的空间),而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小.如下所示,分区 ...

最新文章

  1. python学习day3
  2. 谁说被吃是鸡的宿命?这只鸡长了个价值三个诺奖的肿瘤
  3. 长沙理工大学第十二届ACM大赛-重现赛 K - 大家一起来数二叉树吧
  4. 如何在生产环境部署K2的流程
  5. 第三周项目三-输出星号图(1)
  6. u9系统的使用方法仓库_HPE产品认证证书查询系统使用方法
  7. 百度地图 使用两条平行线表示路线
  8. day05python
  9. 外包女程序员-----励志段子 留着 等没事的时候看看
  10. clickhouse一键登陆
  11. 德鲁克的《卓有成效的管理者》
  12. jsp篇 之 指令元素和动作元素
  13. 20210612:力扣第244周周赛题解(上)
  14. 一文学会用Python操作Excel+Word+CSV
  15. 安卓手机测评_鲁大师又在找事?一季度安卓系统流畅度排名出炉,小米MIUI吊车尾...
  16. Educational Codeforces Round 137 (Rated for Div. 2)A~D题解
  17. Word课程笔记(秋叶系列课程)
  18. CEST日期格式转换为 年月日时分秒
  19. 巧妙下载校VOD电影
  20. 用CodeGear C++ Builder 2007编写dll程序(一)

热门文章

  1. filter在ios不兼容 js_jq的animate属性不支持transform 和 ios手机上box-shadow兼容性问题 和...
  2. l4d2服务器修改武器伤害,辐射4武器伤害及护甲修改图文教程_快吧单机游戏
  3. Java 并发编程之 ThreadLocal 线程局部变量
  4. 鸿蒙硬件HI3861-MQTT-连接华为云
  5. 中移4G模块-ML302-OpenCpu开发-(MQTT连接阿里云-RRPC通讯)
  6. UNI使用蓝牙连接设备传输数据
  7. python禁用警告
  8. 解决java连接mysql警告:Establishing SSL connection without server‘s identity verification is not recommend.
  9. python根据行名称生成二维数组
  10. Linux 比特币Bitcoin采集节点搭建