【报错记录】疯狂踩坑之RockyLinux创建Raid1镜像分区,Raid分区在重启后消失了!外加华硕主板使用Raid模式后,硬盘在系统中无法找到问题

前言

为了摆脱对于专业NAS的依赖,我决定专门使用一台Linux服务器安装NAS程序的方式实现NAS功能,这里就需要用到Raid功能,由于目前我只有3块SSD(256G+500G+500G),在ChatGPT的推荐下还是使用一个256G系统盘+2块500G硬盘组Raid1的方式组成一个阵列,结果坑人的事就来了!

使用mdadm创建的raid阵列在重启后不见了!!然后我所有的数据都找不到了!!而且在/dev中甚至找不到md0这个raid磁盘阵列,这还怎么用,难道组成镜像后就不关机了?这肯定不行啊,然后我就踏上了漫漫踩坑路。

坑的来源

由于ChatGPT的信息可能比较落后,它不知道我这个硬盘是GPT分区,组成Raid后会导致分区表出问题,因此给我的答案是:

我说重启后分区找不到了,ChatGPT给我的答复是要在/etc/fstab中增加一条信息:

/dev/md0    /mnt/raid    ext4    defaults    0    0

我还以为这就能把这问题解决了,结果是压根不能解决,因为分区表问题,连md0这个Raid磁盘阵列都不见了,然后开机卡了半天,就是因为这个/dev/md0无法加载成功,我也是等了半天进了系统后才发现的。

然后我怀疑是我心急,没等

cat /proc/mdstat

执行到100%就重启服务器了,然后我借助吃饭时间足足等了1个小时啊!!等它磁盘镜像全部同步完了,再去重启,结果还是老样子,磁盘分区丢失!!这可把我给气坏了!!

解决方法

节约大家时间,我先把解决方法说明吧,后面再将华硕主板Raid的问题

ChatGPT犯了一个严重错误——不能直接对/dev/sdb、/dev/sda这两个磁盘进行操作,而需要对它们各自创建的分区进行操作才可以!!

也就是说先要给/dev/sdb和/dev/sda两个磁盘进行分区后才能执行Raid操作,这是ChatGPT它自己都不知道的事。

执行过程如下:

查看分区情况

先需要lsblk一下,查看自己服务器的磁盘分区情况,我这边是这样的:

/dev/sda:256GB,RockyLinux系统安装盘,包括挂载了根目录和用户目录

/dev/sdb:500GB数据盘

/dev/sdc:500GB数据盘

执行分区操作

fdisk /dev/sdb

建议按一下m,然后回车,查看fdisk的功能

我个人建议先按一下d,然后按一下w

注意!!!!!这一步会清空盘内所有数据,请谨慎操作!!

此步的作用是删除该盘内的分区(特别是只有一个分区的情况会删除所有的内容)

然后再执行

fdisk /dev/sdb

进入fdisk功能后执行

g,然后按n,最后按w

按n的时候需要指定分区大小,我这边直接全部回车过去了,创建的分区大小等于我的磁盘大小。然后就能得到/dev/sdb下又多了一个/dev/sdb1这么一个分区。

同样的对/dev/sdc也执行同样的操作,最后得到如图所示的分区信息:

创建Raid阵列

 剩下的步骤就和ChatGPT说的一样了,只不过命令需要改一下

执行的是:

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1

这里用到的是/dev/sdb1和/dev/sdc1!!而不是整个磁盘,这就是问题的关键所在,被ChatGPT坑了4个小时!!

后续操作

后续的操作为:

# 查看Raid磁盘同步进度
cat /proc/mdstat

# 将Raid阵列格式化为ext4分区
mkfs.ext4 /dev/md0

# 由于我不想将这个分区藏太深,直接在根目录创建了一个/data目录
mkdir /data

# 将Raid阵列分区挂载到/data路径下
mount /dev/md0 /data

# 将Raid信息写入/etc/mdadm.conf中
mdadm --detail --scan | sudo tee -a /etc/mdadm.conf

最后需要将分区信息填入/etc/fstab中

vi /etc/fstab

在最后一行输入:

/dev/md0    /data    ext4    defaults    0    0

然后按:wq保存

其实不用等/proc/mdstat都执行完成就能重启服务器,空的磁盘完全不影响

重启后查看效果

由于重启后各个磁盘的加载顺序是随机的,我这边显示的内容如下:

重启后阵列丢失的问题终于算是解决了!在这种情况下博客是必须要写的,避免以后踩同样的坑。

华硕大坑RAID缺少驱动

当时由于系统内软Raid碰壁了,我就想用华硕主板自带的Raid功能,也就是在主板BIOS中,将SATA类型从AHCI改为RAID,直接搞硬Raid得了。硬Raid可以参考其他同行写得博客吧,我这边就先跳过了。大概的步骤就是

1、在BIOS Advance中将SATA模式从AHCI改成RAID后重启

2、重启后再次进入BIOS,在Advance的最后会多出一个RAID相关设置

3、选择创建阵列后选择需要的磁盘,然后保存即可,最后成果如下:

然后我进入了系统,发现全炸了!直接进入dracut环境了,报

/dev/mapper/rl-root does not exist
/dev/rl/root does not exist
/dev/rl/swap does not exist

也就是我所有分区都丢失了,我通过ls /dev也能看见所有分区都找不到了!我还以为是我分区有问题,或者Raid有问题,我一怒之下在华硕BIOS中将所有分区内容全部删了,重新组Raid,从0开始组,结果我去装RockyLinux时发现进入安装环境后磁盘空空如也,我当时还不信,又拿了一个Windows11的安装包试了一下,发现还是一个磁盘都找不到。

 我当时就怀疑是Raid驱动的问题,即Windows和RockyLinux的安装包中都没有带华硕的Raid驱动,我直接找到了华硕客服,问其缘由,华硕客服很专业啊,直接就说是缺少Raid驱动,让我去华硕官网下驱动,驱动我是找了半天没找到,只能当个伸手党让客服直接发给我。

使用也很简单,将

 解压后放到Windows安装U盘中即可(我的是AMD的主板,这个驱动Intel主板无法使用)

点击“加载驱动程序”,选择目录下的

 

rcraid这个目录即可,加载驱动完成后,我这个Raid分区就出现了,我试了一下也能正常安装Windows11,也能正常重启进入系统

里面的磁盘叫AMD-Raid Array N SCSI Disk Device

本来我想就用硬Raid得了,然后我问华硕客服,这个驱动有CentOS版本的吗,客服说这个驱动没有Linux版本,我当时就长叹一口气,还得去和软Raid较劲,好在最后我还真给搞出来了。

猜你喜欢

转载自blog.csdn.net/DCTANT/article/details/132528510