昨天新买的四条服务器内存到了,于是早上去安装一下。
很不幸的是,关机安装完内存条后,系统起不来。第一反应是内存没有插好。 拔下所有新装的内存,先试试能不能开机,结果不能。
系统一直卡在一个光标闪烁的状态。
由于一直就很想重做这个服务器的系统,当时装的时候,忘记做LVM了, 所以这次故障也懒得修了,直接开始重做系统。
花了2个小时,把基础系统做完,重启了几遍看看有没有什么问题,一切正常。
看到内存插满主板达到256G顶值后,心里美滋滋,心想这下可以大开杀戒了。
结果下午回到家,没安装几个服务,主机就挂了。
由于我的服务器电源连接在米家的电源开关上,所以我进行了远程重新断电上电操作。 通过米家可以看到机器自动启动成功了,但是一直连不上,怕是系统又进不去了。
折腾了半天没有成功后,不得不再回去看看是什么情况。
重新接上显示器后,发现跟早上的情况一个样,目测应该是硬盘有问题。打开 BIOS 看了下,果然
一共三块硬盘,只识别出来了两块,最关键的那块带这 grub 引导的硬盘没有识别出来。
考虑到新系统上了 LVM ,我这块没有识别出来的硬盘(金士顿)和另外一块东芝的做成了一个逻辑组, 所以在考虑能不能把金士顿这块从逻辑组里踢出去。
但是我重启引导进U盘里的系统后,发现并没有金士顿那个硬盘
有点慌!既然系统间歇性能启动起来,那看来硬盘坏的不严重。 估计重启几次,肯定会有一次能挂上。在重启了三四次后,终于检测出来了。
好,既然监测出来了,让我先理顺一下目前的情况。
1.当前是金士顿(/dev/sdb1
)和东芝(/dev/sdc1
)做了一个逻辑组 /dev/vssd
2.然后在 /dev/vssd
这个逻辑组上划分了两个逻辑卷 /dev/vssd/vboot
和 /dev/vssd/vmain
3.系统有两个分区,/
挂在 /dev/vssd/vmain
上,/boot
挂在 /dev/vssd/vboot
上。 尝试了挂载 /
和 /boot
,发现 /
挂载成功,/boot
挂载失败,提示磁盘有错误。 系统目前不超过 7G 大。
情况理顺完,我们的思路也就有了。
把 /dev/vssd/vmain
缩小到 /dev/sdc1
的大小以内,
从 /dev/vssd
中把 /dev/vssd/vboot
删除,
把 /dev/sdb1
这个 pv
从 /dev/vssd
逻辑组中删除,这个时候,逻辑组里就没有金士顿硬盘了,
在逻辑组 /dev/vssd
中再新建一个 /dev/vssd/vboot
逻辑卷,
重新调整 /dev/vssd/vmain
的大小,让其把剩余所有的空间占有,
重新挂在 /dev/vssd/vmain
和 /dev/vssd/vboot
,在 /dev/vssd/vboot
上安装内核,
重新生成 fstab
重新安装 Grub
到 /dev/sdc
上,并生成新的 grub.cfg
存储到 /dev/vssd/vboot
上。
开始实施。
1.缩小 /dev/vssd/vmain
,需要先监测才能缩小
1 w2fsck -f /dev/vssd/vmain
执行缩小,由于我的东芝是400多G,那么我只要缩小到400G内就好了,懒得计算,取了个整 300G
1 2 3 4 # 先缩小文件系统 resize2fs /dev/vssd/vmain 300G # 再缩小逻辑卷 lvreduce -L 300G /dev/vssd/vmain
三步操作如下图
2.从 /dev/vssd
中把 /dev/vssd/vboot
删除,
1 lvremove /dev/vssd/vboot
3.从逻辑组中移除金士顿硬盘
操作完可以看到逻辑组(VG)里只有一个 PV 了,并且 VG 的容量跟东芝的硬盘一样大了
4.新建 /dev/vssd/vboot
1 lvcreate -L 200M vssd -n vboot
5.扩容 /dev/vssd/vmain
1 2 # 注意这里参数是小写L lvextend -l +100%FREE /dev/vssd/vmain
6.格式化 /dev/vssd/vboot
后,重新挂载
1 2 mkfs.ext2 /dev/vssd/vboot mount /dev/vssd/vboot /mnt/boot
重新安装内核
1 pacstrap /mnt linux linux-firmware
7.生成新的 fstab
由于 /dev/vssd/vboot
是新创建的,所以原来分区的 UUID
也就不存在了,因此需要更新 fstab
, 否则启动的时候会找不到分区。(通过截图可以看到原来的 UUID
)
1 genfstab -U /mnt > /mnt/etc/fstab
8.重新安装 Grub ,生成新的 grub.cfg
1 2 3 4 5 6 # 进入chroot arch-chroot /mnt # 安装 grub 到 /dev/sdc grub-install --target=i386-pc /dev/sdc # 生成新的 grub.cfg grub-mkconfig -o /boot/grub/grub.cfg
9.所有操作结束后,退出 chroot
,卸载所有已挂载分区,重启。
完美启动!!!!