新闻详情

新闻详情

首页 / 资讯中心 / 详情

网心云OES Plus迁移Armbian系统盘:从eMMC到SATA硬盘完整教程

发布时间:2026/9/25 4:29:06来源:尧图网络
网心云OES Plus迁移Armbian系统盘:从eMMC到SATA硬盘完整教程
1. 从 eMMC 到 SATA为什么非要折腾这次迁移网心云 OES Plus 这台小机器原厂系统跑在板载 eMMC 上容量通常只有 8GB 到 16GB。刷完 Armbian 之后系统本身加上 Docker、常用工具链再塞几个容器eMMC 很快就见底了。我最初也是抱着“凑合用”的心态结果一次apt upgrade直接报磁盘空间不足连内核都没更新成功机器重启后卡在登录界面进不去。那一刻我就下定决心必须把系统盘迁到 SATA 硬盘上。这件事的核心价值在于OES Plus 本身带一个 SATA 接口可以接 2.5 寸硬盘或通过转接线接 3.5 寸盘。把 Armbian 的根文件系统从 eMMC 迁移到 SATA 硬盘带来的好处不只是容量变大。SATA 硬盘的读写寿命远高于 eMMC尤其是跑 Docker 容器、日志频繁写入的场景eMMC 的擦写次数很快就会被消耗掉。迁移之后系统盘容量可以做到 128GB、256GB 甚至更大想装什么装什么再也不用天天盯着df -h发愁。适合看这篇内容的人是已经给 OES Plus 刷好 Armbian、正在被 eMMC 容量困扰、手里又正好有闲置 SATA 硬盘的玩家。如果你还没刷机建议先把 Armbian 跑起来确认网络、SSH 都正常再来看迁移的事。整个迁移过程不算复杂但有几个关键点如果搞错了机器会直接起不来所以我会把每一步的原理和踩坑点都讲清楚。提示迁移前请务必确认你的 SATA 硬盘已经被系统正确识别并且没有重要数据。迁移过程会格式化这块硬盘。2. 迁移前的硬件确认与系统状态检查2.1 SATA 硬盘的识别与供电问题OES Plus 的 SATA 接口供电能力有限如果你接的是 2.5 寸机械盘或 SSD一般可以直接带动。但如果是 3.5 寸盘必须外接供电否则会出现硬盘反复掉线、识别不稳定甚至根本认不到的情况。我一开始图省事直接拿了一根 SATA 转接线接 3.5 寸盘结果dmesg里全是ata1: link is slow to respond的报错换了带独立供电的硬盘盒才稳定下来。确认硬盘识别的方法很简单SSH 登录后执行lsblk你会看到类似这样的输出NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 14.6G 0 disk ├─mmcblk0p1 179:1 0 256M 0 part /boot └─mmcblk0p2 179:2 0 14.3G 0 part / sda 8:0 0 238.5G 0 disk这里mmcblk0就是 eMMCsda就是你的 SATA 硬盘。如果sda没出现先检查供电和线材别急着往下走。2.2 当前系统盘的使用情况与迁移必要性评估在执行迁移之前先看一眼当前根分区的占用df -h /如果使用率已经超过 70%那迁移的紧迫性就很高了。另外还要确认一下当前系统是不是纯 eMMC 启动有些玩家可能之前已经把/boot放在别的地方了这种情况迁移步骤会略有不同。还有一个容易被忽略的点检查 eMMC 的健康状态。虽然 eMMC 不像 SSD 那样有完整的 SMART 信息但你可以通过内核日志看看有没有 I/O 错误dmesg | grep -i mmc\|error如果已经有大量读写错误说明 eMMC 寿命快到了迁移更是刻不容缓。2.3 备份当前系统的关键配置迁移过程中如果操作失误系统可能无法启动。虽然我们可以通过重新刷机来恢复但之前配置好的网络、Docker 容器、各种服务都会丢失。所以迁移前建议把关键配置备份到 U 盘或另一台机器上。需要备份的内容包括/etc/network/interfaces或 NetworkManager 的配置文件/etc/fstabDocker 的容器和卷数据如果放在系统盘上的话你自己写的脚本和配置文件我一般会直接打包整个/etc目录tar czf /tmp/etc-backup.tar.gz /etc然后把文件传到电脑上存着。这个习惯救过我好几次尤其是折腾分区表的时候。3. 用 dd 把 eMMC 系统完整克隆到 SATA 硬盘3.1 为什么选择 dd 而不是重新安装把 Armbian 迁移到新硬盘常见做法有两种一是重新在 SATA 硬盘上刷一遍 Armbian二是用dd把当前 eMMC 上的系统完整克隆过去。我强烈推荐第二种原因很直接你当前系统里已经配置好的所有东西——网络设置、SSH 密钥、Docker 环境、各种依赖——全都会原样保留。重新刷机意味着你要从头再来一遍时间成本太高。dd的原理是逐扇区复制它不管文件系统里有什么直接把整个块设备的内容原样搬到另一个块设备。对于 eMMC 到 SATA 这种场景只要目标硬盘容量大于等于源设备就能完整克隆。3.2 确认设备路径与容量匹配这一步非常关键搞错设备路径会把数据写到错误的地方。再次确认lsblk -o NAME,SIZE,TYPE,MOUNTPOINT假设 eMMC 是/dev/mmcblk0SATA 硬盘是/dev/sda。你需要确保/dev/sda的容量大于/dev/mmcblk0。如果 SATA 硬盘容量更小克隆会失败或者截断系统肯定起不来。注意执行 dd 之前确保 SATA 硬盘没有被挂载。如果已经挂载了先umount掉。3.3 执行克隆与同步写入克隆命令本身很简单dd if/dev/mmcblk0 of/dev/sda bs4M statusprogress convfsync这里解释一下参数选择。bs4M是块大小设大一点可以提升复制速度4M 在大多数场景下是比较均衡的选择。statusprogress让你能看到进度不然 dd 默认静默运行你不知道它是在干活还是卡死了。convfsync确保数据真正写入磁盘后才返回避免缓存导致的数据不完整。整个克隆过程取决于 eMMC 的容量和 SATA 硬盘的速度一般 16GB 的 eMMC 大概需要几分钟到十几分钟。完成后执行一次sync确保所有缓存落盘sync3.4 克隆后的分区表检查克隆完成后SATA 硬盘的分区表应该和 eMMC 一模一样。用fdisk看一下fdisk -l /dev/sda你会看到和 eMMC 相同的分区结构比如一个/boot分区和一个根分区。但此时根分区的大小还是原来 eMMC 的大小比如 14GB而硬盘实际有 238GB。多出来的空间还没有被利用这就是下一步要解决的问题。4. 根分区扩容把剩余空间吃干净4.1 理解分区表类型对扩容的影响扩容之前要先搞清楚你的分区表是 MBR 还是 GPT。这决定了你能用的工具和操作方式。查看方法parted /dev/sda print如果显示Partition Table: msdos就是 MBR如果显示gpt就是 GPT。OES Plus 原厂 Armbian 镜像一般是 MBR 分区表但如果你之前自己改过就另当别论了。MBR 分区表有个限制主分区最多四个而且单个分区最大支持 2TB。对于大多数 SATA 硬盘来说够用了。GPT 则没有这些限制但操作上稍微复杂一点。4.2 使用 parted 调整分区大小假设你的根分区是/dev/sda2这是最常见的情况。操作步骤如下parted /dev/sda进入 parted 交互界面后(parted) resizepart 2 100% (parted) quitresizepart 2 100%的意思是把第 2 号分区的结束位置扩展到磁盘的 100% 处。执行完之后分区表已经更新但文件系统还不知道自己变大了。注意如果你的根分区是/dev/sda1就把数字改成 1。操作前务必确认分区编号改错了分区会导致数据丢失。4.3 resize2fs 扩展文件系统分区扩大之后需要用resize2fs让 ext4 文件系统感知到新的空间resize2fs /dev/sda2这个命令会自动把文件系统扩展到分区的大小。执行完成后再df -h看一下根分区应该已经变成接近硬盘总容量的数值了。如果你的文件系统是 btrfs命令换成btrfs filesystem resize max /。如果是 xfs则需要先挂载再执行xfs_growfs /。Armbian 默认一般是 ext4所以resize2fs是最常用的。4.4 扩容后的验证与常见报错处理扩容完成后验证一下df -h / lsblk /dev/sda如果df显示的容量还是原来的大小可能是文件系统没有正确扩展。常见原因有两个一是分区没有真正扩大用parted print再确认一次二是resize2fs执行时分区处于挂载状态但内核没有重新读取分区表这时候可以尝试partprobe /dev/sda然后重新执行resize2fs。还有一种情况是resize2fs报The filesystem is already X blocks long. Nothing to do!这说明文件系统已经和分区一样大了问题出在分区本身没有扩大回头检查parted的操作。5. 让系统从 SATA 硬盘启动bootloader 与 fstab 调整5.1 修改 fstab 中的根分区标识系统能不能从 SATA 硬盘启动关键看 bootloader 和/etc/fstab的配置。先看当前 fstabcat /etc/fstab你可能会看到类似这样的行/dev/mmcblk0p2 / ext4 defaults,noatime 0 1或者用 UUID 标识UUIDxxxx-xxxx / ext4 defaults,noatime 0 1如果是设备路径方式需要改成 SATA 硬盘对应的路径比如/dev/sda2。但更推荐用 UUID因为设备路径可能会变。获取 SATA 根分区的 UUIDblkid /dev/sda2然后把 fstab 里的 UUID 替换成新的。这一步如果搞错系统启动时会找不到根分区直接进入紧急模式。5.2 更新 bootloader 的启动参数Armbian 在 OES Plus 上一般使用 U-Boot 作为 bootloader。U-Boot 的启动参数通常写在/boot/armbianEnv.txt或/boot/boot.cmd里。你需要确认rootdev指向的是 SATA 硬盘。查看/boot/armbianEnv.txtcat /boot/armbianEnv.txt如果里面有rootdevUUIDxxxx这样的行把它改成 SATA 根分区的 UUID。如果没有这一行可能需要修改boot.cmd并重新编译成boot.scr。具体命令mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr不过大多数 Armbian 镜像已经自动处理了这部分你只需要确保 UUID 正确即可。5.3 处理启动顺序与设备识别的不确定性有个很实际的问题OES Plus 的 U-Boot 默认可能优先从 eMMC 启动。即使你把系统克隆到了 SATA 硬盘如果 eMMC 上还有可启动的系统机器还是会从 eMMC 起来。解决办法有两个一是把 eMMC 上的 bootloader 清掉或者改掉二是通过 U-Boot 环境变量调整启动顺序。我个人的做法是迁移完成并确认 SATA 启动正常之后直接把 eMMC 的前几个扇区清空dd if/dev/zero of/dev/mmcblk0 bs1M count16这样 eMMC 就不再具备启动能力机器只能从 SATA 硬盘启动。但这一步有风险如果你还没确认 SATA 能正常启动千万别先清 eMMC否则两个都起不来就麻烦了。提示清空 eMMC 前务必先用 SATA 硬盘单独启动测试成功并且准备好刷机工具作为后路。6. 迁移后的实测表现与几个容易翻车的细节6.1 启动速度与 I/O 性能的实际对比迁移完成后我用systemd-analyze对比了一下启动时间。eMMC 启动大概在 18 秒左右SATA SSD 启动缩短到了 12 秒左右。如果是 SATA 机械盘启动时间可能反而比 eMMC 慢因为机械盘的随机读写性能差。所以如果你追求启动速度建议用 SATA SSD如果只是要容量机械盘也能用但系统响应会明显变慢。顺序读写方面eMMC 大概在 150MB/s 左右SATA SSD 能到 400MB/s 以上机械盘则在 100MB/s 上下。Docker 容器启动、软件包安装这些操作SSD 的体验提升非常明显。6.2 内核日志里那些让人紧张的报错迁移后第一次启动dmesg里可能会出现一些关于ata的报错比如ata1: SError: { RecovComm }或者ata1.00: failed to read native max address。这些报错不一定代表有问题很多时候是 SATA 链路协商过程中的正常现象。但如果报错持续出现并且伴随 I/O 错误那就要检查线材和供电了。另一个常见现象是mmcblk0相关的报错因为你可能已经清空了 eMMC内核还在尝试初始化它。这些报错可以忽略不影响系统运行。6.3 系统更新时 bootloader 被覆盖的风险Armbian 的系统更新有时候会包含 bootloader 的更新如果更新过程中把 bootloader 写回了 eMMC可能会导致启动顺序又变回去。为了避免这个问题可以在更新前先确认一下armbianEnv.txt里的配置更新后再检查一遍。如果发现 bootloader 被覆盖重新执行一遍 bootloader 配置步骤即可。我一般会在迁移完成后把关键的启动配置文件也备份一份到 SATA 硬盘的/root目录下万一哪天配置丢了直接复制回来就行。6.4 长期运行的温度与稳定性观察OES Plus 的散热设计比较紧凑SATA 硬盘尤其是机械盘发热不小。迁移后建议用smartctl监控硬盘温度smartctl -A /dev/sda | grep Temperature如果温度长期超过 50 度建议加个小风扇或者改善通风。我自己是在机器底部垫了两个橡胶脚垫把机器抬高一点空气流通好了很多硬盘温度从 52 度降到了 45 度左右。稳定性方面迁移后连续跑了两个月没有出现掉盘或者系统崩溃的情况。Docker 容器、定时任务、网络服务都正常。唯一一次异常是某次断电后系统没有自动启动后来发现是 U-Boot 的启动延迟设置太短SATA 硬盘还没初始化完就开始引导了。解决办法是在armbianEnv.txt里加一行bootdelay5给硬盘多一点准备时间。7. 关于这套方案还能怎么继续折腾迁移到 SATA 之后系统的存储瓶颈基本解决了。接下来可以考虑的事情不少。比如把 Docker 的数据目录也迁到 SATA 硬盘上进一步减少 eMMC 的写入。或者用剩下的 eMMC 空间做一个小的交换分区虽然性能一般但应急够用。如果你手里有多个 SATA 硬盘还可以考虑用mdadm做软 RAID把系统盘做成冗余的。不过 OES Plus 只有一个 SATA 接口要做 RAID 得通过 USB 转接稳定性和速度都会打折扣这个就看个人取舍了。另外迁移完成后建议把noatime挂载选项加上减少不必要的写入。在/etc/fstab里把根分区的挂载选项改成defaults,noatime对延长硬盘寿命有好处。这个改动很小但长期来看收益不小。我自己在实际操作中的体会是整个迁移过程最关键的其实就是前三步确认硬盘识别、正确克隆、正确扩容。这三步做对了后面启动配置的调整基本不会出大问题。最容易翻车的地方是设备路径搞混和 UUID 写错所以每次操作前多敲一次lsblk和blkid确认清楚了再动手比事后救火省事得多。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Atlas 300V 24G推理卡部署YOLO:从环境配置到性能优化实战 2026/9/25 5:00:44

Atlas 300V 24G推理卡部署YOLO:从环境配置到性能优化实战

最近陆续有好几个朋友在问同一个问题:Atlas 300V 24G 到底是做什么用的卡?能不能直接拿来部署 YOLO?还有人说,这不就是一张“运算加速卡”吗,那装机之后是不是就能像显卡一样跑模型了?这些问题看起来基础&a…

阅读更多 →
90+并行计算实验报告:MPI与OpenMP性能分析全流程 2026/9/25 5:00:44

90+并行计算实验报告:MPI与OpenMP性能分析全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ROS室内自主导航机器人:SLAM建图、路径规划与算法切换实战 2026/9/25 5:00:44

ROS室内自主导航机器人:SLAM建图、路径规划与算法切换实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
树莓派4B安装ROS2 Humble完整指南:从系统烧录到DDS调优 2026/9/25 5:00:44

树莓派4B安装ROS2 Humble完整指南:从系统烧录到DDS调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ESPnet 卡纳达语 Kannada ASR:E-Branchformer + Transformer 联合 CTC/注意力 全流程实战指南(kn_openslr126 配方) 2026/9/25 5:00:43

ESPnet 卡纳达语 Kannada ASR:E-Branchformer + Transformer 联合 CTC/注意力 全流程实战指南(kn_openslr126 配方)

人工智能语音音频深度学习NLP 【免费下载链接】espnet End-to-End Speech Processing Toolkit 项目地址: https://gitcode.com/gh_mirrors/es/espnet 点击查看 免费下载 导读 本文基于 ESPnet 开源仓库中的 egs2/kn_openslr126/asr1 配方,完整讲解如何…

阅读更多 →
微信小程序认证与年审全流程指南:材料准备、操作步骤与避坑经验 2026/9/25 5:00:37

微信小程序认证与年审全流程指南:材料准备、操作步骤与避坑经验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉