收起左侧

OES设备-将系统迁移到固态硬盘-AI版

0
回复
25
查看
[ 复制链接 ]

2

主题

0

回帖

0

牛值

江湖小虾

📌 适用环境

  • 设备:OES系列(如OES、OES-plus)下面是oes的实操
  • 原系统盘:eMMC(容量约8GB/16GB,挂载在 /
  • 目标盘:SATA SSD(240GB,盘符为 /dev/sda
  • 数据盘:独立存储池(/vol1/vol2),迁移过程中不受影响

注意点

  1. 迁移系统一定要谨慎谨慎谨慎.最好做好备份
  2. 如果过程有不懂的或者流程进行不下去,把步骤贴给AI,问问AI应该怎么做以及为什么这么做
  3. 操作系统相关文件的时候,一定要先备份一份出来.

一、准备SSD硬盘

1. 确认盘符

lsblk -f

确认你的SSD盘符(通常是 /dev/sda),并确保其上数据已备份。

2. 清除旧分区表并创建GPT分区

# 清除旧分区表
sudo wipefs -a /dev/sda 
# 创建GPT分区表
sudo parted /dev/sda mklabel gpt
# 创建系统分区(使用全部容量,你自己选多少)
sudo parted /dev/sda mkpart primary btrfs 0% 100%

3. 格式化为btrfs

sudo mkfs.btrfs -f /dev/sda1 -L ROOT_SSD 

二、挂载并复制系统

1. 挂载新SSD

sudo mount /dev/sda1 /mnt

2. 复制系统(排除数据盘)

sudo rsync -avxHAWXS --numeric-ids --info=progress2 \
    --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
    --exclude="/vol1" \
    --exclude="/vol2" \
    / /mnt/

等待复制完成(约5-15分钟)。

三、配置新系统

sudo blkid /dev/sda1

记下 UUIDPARTUUID 的值,例如:

UUID="3b655a34-7bc9-4233-8a34-e9bf0686ad3f"
PARTUUID="a1b2c3d4-01"

2. 修改新系统的fstab

sudo nano /mnt/etc/fstab

找到 UUID=d184dea7-... / btrfs ... 这一行,将UUID替换为SSD的UUID:

UUID=你的SSD-UUID / btrfs rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0

保存退出Ctrl+O,回车,Ctrl+X

四、配置引导(核心步骤)

你的OES使用U-Boot引导,通过 /boot/fnEnv.txt配置文件控制启动参数。

1. 编辑引导配置文件

sudo nano /boot/fnEnv.txt

2. 在文件末尾添加以下两行

rootdev=/dev/sda1
rootfstype=btrfs

完整文件示例(根据实际情况可能略有不同):

verbosity=1
bootlogo=false
console=both
fdtfile=amlogic/meson-g12b-a311d-oes.dtb
kernelfile=vmlinuz-6.18.18-trim
instdisk_bootuuid=13dc68af-01
instdisk_rootuuid=13dc68af-02
rootdev=/dev/sda1
rootfstype=btrfs

保存退出。如果是nano 操作是ctrl + o 保存 ctrl + x 退出

3. 确认boot.cmd已加载fnEnv.txt(验证性操作)

cat /boot/boot.cmd | grep fnEnv.txt

应该能看到 if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}fnEnv.txt; then 这样的行,说明系统会读取 fnEnv.txt

五、重启验证

1. 重启

sudo reboot

2. 验证根分区

df -h /

根分区应显示为SSD容量(约223G-你的ssd容量)

3. 验证内核参数

cat /proc/cmdline

应显示 root=/dev/sda1

4. 扩容文件系统

sudo btrfs filesystem resize max /
df -h /

六、后续维护提醒

内核升级后更新fnEnv.txt

系统更新内核后,新内核文件会放在SSD的 /boot目录,但 fnEnv.txt中的 kernelfile需要手动更新:

# 查看新内核文件名
ls /boot/vmlinuz-*
# 编辑fnEnv.txt,更新kernelfile
sudo nano /boot/fnEnv.txt

kernelfile=vmlinuz-6.18.18-trim 改为新版本号。

备份配置文件

sudo cp /boot/fnEnv.txt /boot/fnEnv.txt.bak

七、故障恢复(万一无法启动)

如果修改 fnEnv.txt后系统无法启动:

  1. 使用U盘启动救援系统。
  2. 挂载eMMC的 /boot分区。
  3. 恢复备份的 fnEnv.txt或删除添加的 rootdevrootfstype行。
  4. 重启即可恢复原状。
设备 盘符 用途
eMMC /dev/mmcblk1 U-Boot引导 +/boot/fnEnv.txt
SSD /dev/sda1 完整系统根目录
数据盘 /vol1/vol2 用户数据(不受影响)

迁移完成! 🎉

成功后的图

image.png

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则