U

U-NAS eMMC空间不够用,用dd命令实现系统迁移

HB 电脑 2022-10-28

本教程,仅供参考。请结合自己机器的实际情况予以调整,如因操作不当造成的数据丢失,恕不负责,请谅解。

引子
四盘位U-NAS hs401p自带的eMMC为16G,安装完一些应用后,剩余的空间在1G以下,经常担心存储空间被爆无法进入web界面。所以开始考虑能不能把eMMC系统迁移复制到其他媒介,一劳永逸地解决空间不足的问题。

工具
用到的工具:

存储媒介 (无需提前格式化,但如果有重要资料请提前备份好)
如果主板有m.2硬盘位,可以考虑把系统迁移到一块nvme硬盘上,哪怕是一块几十块钱的128G的固态硬盘都够用了。
如果不想浪m.2硬盘位,还想让m.2硬盘作为系统缓存或者存储空间,也可以考虑把系统转移到U盘。或者还有一个思路,主板内部还有2个9pin的USB转接口,利用其中1个转接口来转接一个msata硬盘,长时间使用总感觉msata硬盘更可靠(只是个人想法)。虽然是usb2.0接口,但日常使用应该对读写速度要求不会太高。
HDMI线 主要用来连接U-NAS和显示设备,用来调整BIOS设置。
键盘 承接前一个工具,主要用来调整BIOS设置。
软件 SSH工具,比如:puTTY、finalshell、MobaXterm等都可以。
步骤(以刷至m.2固态硬盘为例 )
为了确保万无一失,在进行以下操作时,还是把数据硬盘从硬盘笼取出来。

复制系统
确保系统迁移的目标存储媒介已经插在U-NAS上,并正常开机从默认的eMMC启动系统。ps.如果准备写入U盘,在U-NAS开机状态时插入也是OK的。
查看硬盘名称
用SSH工具连接U-NAS,可以先用lsblk命令查看当前的硬盘设备及对应的名称

lsblk

查看硬盘设备名称

现在能看到的就两块:一块自带的eMMC,对应名称是mmcblk0;另一块就是迁移的目标固态硬盘:nvme0n1,而且可以看到我这块固态硬盘下面有7个分区:从nvme0n1p1到nvme0n1p7。
删除目标存储媒介的分区
输入以下命令,会进入fdisk工具的操作界面

fidsk /dev/nvme0n1

删除目标存储媒介分区

输入p会显示当前硬盘的具体信息
下一步输入d(即delete删除的意思),会提示准备删除分区的代号(直接按回车则代表输入的是最大数字的代号),因为我准备把整块固态都作为系统盘,所以在这里把分区全部删除。
于是依次从7删到1:重复输入d,再接着按回车的动作……
全部删除后,输入w,这代表准备写入和保存新的分区,也代表将格式化这块固态硬盘。按回车执行。
通过dd命令将eMMC中系统复制到固态硬盘

dd if=/dev/mmcblk0 of=/dev/nvme0n1 bs=4M

注意:if后面跟的是eMMC硬盘的设备名称,of后面跟的是目标固态硬盘的设备名称,不要搞反了。

复制的过程会持续一段时间,完成后会有提示

复制完成

再用lsblk命令查看硬盘信息

复制后的硬盘信息

可以看到固态硬盘里现在是分区,两个分区的大小和上面eMMC分区是一模一样的。
但nvme0n1p2(也就是根分区)的大小还是14G,这一部分也是用来安装软件用的空间,目前还差为这块分区的空间进行扩容。
扩容固态硬盘的根分区空间
把固态硬盘剩余空间分配给nvme0n1p2(根分区),依然通过fdisk工具

fdisk /dev/nvme0n1

输入p,查看固态硬盘的具体分区信息,nvme0n1p2是准备进行扩容的分区

复制完成后的固态硬盘分区信息

输入d删除nvme0n1p2

删除固态硬盘的分区

输入n创建新分区,再输入2,确定新分区大小,直接回车的话即即分配剩余所有空间
创建新分区
输入n(即NO)保留原分区的信息

保留原分区信息

输入w写入

写入完成后,再次用fdisk查看完成后的硬盘信息

fdisk /dev/nvmeon1

输入p查看信息,已经不是最开始迁移完成后的14G了

扩展完成后的硬盘信息

屏蔽eMMC 从固态硬盘启动系统
这个时候可以关机,准备重新启动U-NAS
重启前给U-NAS连好显示器和键盘,准备调整BIOS,按开机电源后,狂按键盘的del键,进入BIOS界面。
来到Chipset这一项,选择最后一项

BIOS chipset

选择SCC开头的这一项,禁用eMMC,按F4保存退出

BIOS SCC configuration

BIOS 禁用 eMMC

最后一步,为根分区扩容
前面的操作目前还差最后一步,用btrfs命令扩容

btrfs filesystem resize max /

resize 后也可以把max换成具体的数字比如: +100G

btrfs命令

完成后可以重启U-NAS系统,在web管理界面验证一下是否扩容成功。
最后
在前面用dd命令复制迁移之前,也可以用dd命令把eMMC中的系统打包出来,留做备份。

PREV
Ubuntu22.04安装及初始配置
NEXT
Linux运维:Ubuntu编辑网络配置文件

评论(0)

发布评论