起因
关于我因强迫症想修改/dev/mapper目录下映射文件而导致linux系统启动不起来的那些事。
安装完系统以后我其实是打算挂载磁盘来着,但是原本打算使用 fdisk -l 命令来看看现有磁盘的我,发现了两个以 /dev/mapper/rl_miwifi-ra80-srv-xxx 开头的磁盘,我当时就忍不住了,因为GUI安装界面在我机器上死活打不开,于是我就使用VNC远程进行了linux的安装,结果没想到啊,这个hostname就是miwifi-ra80,然后生成的映射文件就引用了hostname,于是我决定把 /dev/mapper/rl_miwifi-ra80-srv-xxx 这个映射分卷给改个名,结果一改就是4个小时,我从晚上十一点一直搞到次日三点才改完,过程可以说是触目惊心。
在安装时设置
如果你看着强迫症而且机器还没有部署环境和投入生产的话,可以尝试重新安装,在安装时的磁盘设置中就可以设置卷组名称,这是我近期才发现的 = v =。
使用mv命令修改
起初,我以为mapper目录下的文件就只是个软链接文件,然后我就使用了mv命令来修改名称,随后也跟着修改了/etc/fstab文件(用来自动挂载磁盘的配置文件),结果不出意料,没有成功,反而启动时开始提示创建swap文件了,重启后我发现我原来修改的内容全部都复原了(?),在百度和google上也搜索不到相关结果(关键词没搜索对了属于是)的我,抱着试一试的心态向微软copilot提问。
重命名卷组名称
我向微软copilot询问后得知,mapper目录下的映射文件是自动生成的,我要去修改一个叫做”逻辑卷卷组”的东西,于是我就跟着copilot操作,成功修改了逻辑卷卷组的名称,过程如下:
[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/rl_miwifi-ra80-srv/root LV Name root VG Name rl_miwifi-ra80-srv LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx LV Write Access read/write LV Creation host, time MiWiFi-RA80-srv, 2024-02-08 01:26:34 +0800 LV Status available # open 1 LV Size 525.00 GiB Current LE 134400 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Path /dev/rl_miwifi-ra80-srv/swap LV Name swap VG Name rl_miwifi-ra80-srv LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx LV Write Access read/write LV Creation host, time MiWiFi-RA80-srv, 2024-02-08 01:26:35 +0800 LV Status available # open 2 LV Size <31.86 GiB Current LE 8155 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 [root@localhost ~]# lvrename rl_miwifi-ra80-srv <old_lv> <new_lv>
其中,lvdisplay用来展示当前系统中的所有逻辑卷,lvrename <vgname> <old_lv> <new_lv>用来修改逻辑卷名称。
此时我还没有意识到事情的严重性。因为修改卷组名称以后,还需要修改系统启动时的引导文件。
因卷组名称导致的无法启动
修改完成后,很快啊,直接就重启服务器了,然而,等待我的不是已经重命名完成的卷组,而是,启动错误。放几张图。
哦吼,完蛋了,直接进紧急模式了。
修改Grub引导文件
说冷静都是假的,不知所措的我脑海中翻江倒海,突然意识到,可能是引导文件的问题!就像Windows系统一样,我把盘符改了,但是启动引导还是之前的盘符,那当然是找不到的。于是我就开始疯狂的搜索,发现了Linux中一个叫grub的东西。
翻阅了RedHat的文档后,我发现我应该在完成修改卷组名称时同时修改Grub引导文件以确保系统能正确的,正常的被引导启动。于是我就又开始自己摸索,发现在系统启动时的选系统界面,按下E可以手动配置本次启动的引导文件,但这并不是永久的,仅限本次启动,如果也有小伙伴和我一样因引导问题无法启动,可以尝试一下这个操作。
于是我就成功的进入了系统,开始研究Grub引导文件的修改,过程如下:
[root@localhost ~]# vim /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="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/xxxx-swap rd.lvm.lv=xxxx/root rd.lvm.lv=xxxx/swap" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true :wq [root@localhost ~]# grub2-mkconfig [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
我通过编辑 “/etc/default/grub” 文件,再使用grub2-mkconfig生成了新的引导文件。
Reboot以后发现可以正常启动了,这事儿才算彻底解决了!