安装飞牛到sata5,过程不再赘述
准备一个空u盘,因为需要格式化。插入想作为引导的U盘
安装好系统到sata5后,重新启动gen8,使用supergrub2进入飞牛OS
我这里使用的ventoy启动的supergrub2

进入supergrub2后选择“boot manually"

选择linux

会搜索到刚刚装好的飞牛OS,启动系统

连接好网线做好飞牛的初始化,记录好配置的用户名和密码,为后续进入飞牛后台使用。
登录飞牛管理界面后点击系统设置,选择SSH并启用

使用ssh工具登录fnos后台,然后切换到root用户
我初始化时候的名字是whome 所以先用whome这个名字登录,然后使用sudo命令切换到root用户。
whome@homenas:/$ sudo su -
[sudo] password for whome: #这里输入whome的密码
root@homenas:~# #whome变为root即切换成功

root@homenas:~# lsblk 查看u盘的盘符方便格式化
经过确认sdf是我的u盘,后面所有的sdf都需要按照你实际情况修改盘符

接下来对u盘进行操作
因为u盘被挂载了所以需要卸载,然后格式化优盘
umount /vol00/Cruzer_Fit #卸载U盘,路径需要按具体情况填写
parted /dev/sdf mklabel msdos #创建磁盘分区表
parted /dev/sdf mkpart primary fat32 1M 1024M #创建磁盘分区
mkfs.fat -F32 /dev/sdf1 #格式化分区

挂载u盘到mnt下,并安装grub
mount /dev/sdf1 /mnt
grub-install /dev/sdf --root-directory=/mnt

接下来需要将刚创建好的grub分区激活,否则还是无法自动引导
fdisk /dev/sdf

把 SATA5 上的 /boot/grub/grub.cfg 复制到 /mnt/boot/grub/grub.cfg
cp /boot/grub/grub.cfg /mnt/boot/grub/
重启操作系统测试,经过测试拔数据盘不影响启动。
终于有人发现 在升级后,还是会频繁提示升级内核的这个问题了。
其实就是升级后u盘中的grub文件没有更新。
老早就想搞一个脚本了。趁着周末搞一下
思路很简单每次重启 检查两个grub文件的md5,不一致就将本地磁盘的grub文件替换到u盘中。
但是替换了。也得下次重启 才能生效。也就是每次升级完成重启后再手动重启一下就好。其实也可以再增加个判断,重启完成后如果发生替换,就自动重启一次,但是我担心被不熟悉命令的老铁搞成无限重启就没搞。自己手动重启吧。
脚本名称grub_check.sh,我放到了home目录下。
需要修改的就是"/vol00/Cruzer_Fit/boot/grub/grub.cfg"这个路径(就是前面提到的优盘路径)
DST_FILE="/vol00/Cruzer_Fit/boot/grub/grub.cfg"
脚本如下
#!/bin/bash
# 定义源文件、目标文件路径
SRC_FILE="/boot/grub/grub.cfg"
DST_FILE="/vol00/Cruzer_Fit/boot/grub/grub.cfg"
# 校验文件是否存在
if [ ! -f "$SRC_FILE" ]; then
echo "错误:源文件 $SRC_FILE 不存在!"
exit 1
fi
if [ ! -f "$DST_FILE" ]; then
echo "错误:目标文件 $DST_FILE 不存在!"
exit 1
fi
# 计算MD5值
SRC_MD5=$(md5sum "$SRC_FILE" | awk '{print $1}')
DST_MD5=$(md5sum "$DST_FILE" | awk '{print $1}')
echo "源文件MD5: $SRC_MD5"
echo "目标文件MD5: $DST_MD5"
# 比对并替换文件
if [ "$SRC_MD5" != "$DST_MD5" ]; then
echo "MD5不一致,执行文件替换..."
cp -f "$SRC_FILE" "$DST_FILE"
echo "替换完成"
else
echo "MD5一致,无需操作"
fi
然后修改crontab
crontab 写法如下
@reboot /bin/sh -c "sleep 20 && /bin/sh /home/grub_check.sh >> /home/grub_check.log. 2>&1"
需要增加sleep 延迟,我猜测是系统没有完全启动,u盘未挂载到路径下 所以无法修改grub文件,这个延迟自己测试吧。/home/grub_check.log这个是执行的日志,如果重启后没有替换成功。自己排查下原因吧,大概率是延迟的问题
crotab 截图
