欢迎光临散文网 会员登陆 & 注册

【瞎折腾】采用Ventoy+Edgeless/systemback成功进行Win10/Ubuntu系统迁移的两次记录

2023-07-09 16:21 作者:Aiello筱郁  | 我要投稿

前言

本篇分享的折腾起因是不期而遇的存储危机和多系统需求。

故事

在2023年初前我一直用的是128G存储的手机、32G的SD卡相机存储和256G的SSD用作电脑的C盘和D盘存储,一直靠着严厉地空间管理勉强过活,有时甚至还能自得其乐。今年4月份的时候,我终于忍受不了一边拍视频一边担忧存储的折磨,趁着华为的活动返厂升级了我用了4年的Honor 20 Pro。存储提升到了256G后,使用下来深深感受到了富裕的存储给人带来的轻松便利(啊嘞,不过是不是好像现在1T的手机也开始在市场上销售了)。所以618的时候我随固态硬盘降价的大流又买了个1T的SSD,配套入手了硬盘盒暂时存放,准备之后再用于装机(虽然可能5、6年后才有需求会装)。此前因为工作的原因有了时不时装一个系统的需求,当时随手买的两个加起来不超过96G的闪迪小U盘用来装系统放工作文件,在装完几个Windows、Linux系统镜像和一个WIN10的VHD后(这个vhd是想用来随时文档办公+摸鱼的)整体也显得局促了起来。用新来的SSD好像又太浪费了,但也开始替代两个小U盘的功能,在上面装了启动盘和一些别的镜像,还帮忙临时存了些个人电脑上存不下的数据。直到上周,我在又一台新机器上安装测试系统时把1TB SSD内的数据不小心清空了,这才反应过来自己在1T的SSD里面放了不少的重要数据,现在没有备份已是追悔莫及。

《书接上回》

随即就有朋友向我推荐NAS,此前我也玩了一段时间的ChatCPT、AI生图和Jellyfin家庭影院,有了自建服务器的想法。但经过1晚上的自我拷打后认为NAS对于自己还是伪需求,说到底还是服务要自己学着建、存储危机要花钱克服,所以把重要的资料保存在固定的安全的环境中,并留有空间做好备份,简单部署一些局域网服务,把钱花到存储上(而不是NAS的软件),这对大多数没有工作室、没有媒体相关工作流的普通人来说已经完全够用了。

话又说回来,装系统、迁移系统的需求即便对于底层开发人员从长久来看实际也并不会频繁的出现,但头疼的就是一出现就会花费不少时间精力,对于不同的硬件也可能遇到不同的系统环境需求(docker之所以那么受欢迎,装过环境的人都能够理解)。一旦环境固定下来又想在别的同样的机器上验证不可能再去走一遍安装,一旦系统崩溃了,要想恢复到一个定制过的纯净系统也肯定要避免重复工作。面对这些问题我接触到了PE微系统、Ventoy、Edgeless、Systemback这些工具。现在也成功进行了2次系统的迁移:

  • 一次是把自己的Ubuntu系统制作成镜像迁移到新机器上;

  • 一次是通过备份的方式替换安装有win10系统的旧硬盘而不影响原有系统和软件的使用。

解决目标

① 对于一台新机器想测试不同系统在上面的运行情况

② 对于一类硬件熟悉的机器不想再重复装机配置环境的过程

③ 对于一台旧机器想通过数据迁移的方式完成硬件升级

所用工具

  • Ventoyhttps://www.ventoy.net/cn/

以上是官方链接,对我来说Ventoy就是用来解决重复安装单一镜像启动盘的一个通用启动盘技术,同时囊括了PE、vhd等非直装系统的启动,可以定制启动项。达到的效果可以理解为,传统安装启动盘的格式化操作被直接复制粘贴镜像的这类文件操作给代替了。

  • EdgelessEdgeless-强大而优雅的半开源PE工具 https://home.edgeless.top/#

以上是官方链接,对我来说Edgeless就是一个定制十分友好的轻量化PE。

  • Systemback

很直白,系统恢复,多用于Linux系统的备份恢复和迁移,就是作者好像已经不再维护了,对越新的硬件可能支持越差。

前要说明

本文不是一篇跟手教程,采用的方法也是根据官方文档、网上的资料和实践发现面向自己的需求琢磨的,仅作为类似需求的参考。

  • 移植Win10的个人笔记本:机械师F117-VC i7 16GB

  • 迁移Ubuntu的迷你主机:Morefine S600 i9 16GB

  • 固态硬盘:致钛Tiplus7100 1TB版

  • 硬盘盒:海康存储9210B

  • Ventoy版本:1.0.93

  • Edgeless版本:4.1.0

接下来就和大家分享一下我的方案。

Win10系统移植

本着“失败了问题不大,成功了锦上添花”的心理,没想到顺利完成了移植。注意!!此章的U盘都指要替换的新的固态硬盘。

① 在待移植的固态硬盘安装Ventoy和Edgeless

我是因为手头不方便整别的启动盘了,直接在准备移植的固态硬盘里面装启动盘,有运行vhd需求的推荐去官网下载使用Windows版本的Ventoy2Disk.exe,因为好像只有Windows版可以更改安装后Ventoy分区的文件系统格式,虽然官方说可以后续通过磁盘管理格式化但对于大容量硬盘也推荐直接安装为NTFS文件系统。

打开.exe

注意!!此处分区类型选择GPT,以防后续需求的分区数大于4个,对于大容量存储硬盘有时还是需要的。


为了避免官方提到的137GB的系统盘识别玄学问题,需要在磁盘最后保留一段空间,目的是防止磁盘起始位置的系统盘超出137GB,比如我就设置留出890GB,其余给Ventoy进行分配。

设置完毕安装即可

关于手动格式化,虽然可能格式化完也不必重新安装Ventoy,但因为涉及到4KB对齐的问题安装完就尽量不要再去格式化Ventoy分区,而要运行Windows的vhd一定得是NTFS文件系统,所以要把默认的exFAT修改掉。用Ventoy另一个好处就是分区可控,可以对应做出原有硬盘的分区,剩余的空间也可以用来存放别的数据,而这次我是直接拿来移植系统。

没有vhd需求的用Linux的安装方法也可以,推荐命令行方式

Edgeless安装官方教程:如何手动写入Edgeless到U盘 | Edgeless Wiki

简单描述就是分为4步:

  • 在Ventoy分区根目录新建ventoy文件夹,将ventoy的wim插件复制到此文件夹下;

  • 下载Edgeless镜像文件,将系统本体的Edgeless文件夹和镜像内的sources/boot.wim都拷贝到Ventoy分区根目录,将boot.wim改名为Edgeless_xxxx_xxx.wim

  • 配置进入系统需要使用的软件(如WeChat、Diskgenius等),从Edgeless下载站下载插件包,将插件包放置在U盘:\Edgeless\Resource目录下即可,之后进入PE时插件会被自动加载(官方原话)

  • 启动Ventoy引导测试Edgeless系统

在Ventoy中,后续再要迁移Edgeless到别的盘就直接copy原来整个文件夹都可以,想插件化地添加启动软件、系统内文件、个性化处理官方文档也都给了教程。

② 启动Edgeless

(有把握可以在这一步就将电脑拆开将新旧硬盘替换为新硬盘,本人是在第⑤步前才换的;本人在ventoy中还加了vhd插件和grub主题,需要的可以取用文末链接。)

在电脑上接上固态硬盘,开机进入BIOS界面,选择boot选项将Ventoy所在启动盘优先级设为1,保存退出重启(进入BIOS的方式常见就是在电脑启动时敲击键盘F2、F12、delete,其余就得自己去搜索进入方式了)

进入Ventoy启动引导,选择Edgeless_xxxx_xxx.wim回车进入;

③ 借助Diskgenius备份系统和硬盘数据

在Edgeless中打开Diskgenius(可能是自带的,没有的话在官方下载站也有提供:磁盘数据 | Edgeless 网页下载站,通过插件方式添加,放置在U盘:/Edgeless/Resource目录下)。

打开Diskgenius后点击工具克隆分区,注意不是系统迁移,系统迁移方式无法进行分区选择,会对整张硬盘进行格式化操作。

选择你需要拷贝到的目标磁盘,我是要拷贝到ZHITAITiPlus71001TB下,选择按文件复制其余两个选项均需要两处分区存储空间容量完全一致,不过如果你能够控制好容量且对扩容没有要求理论上还是复制所有扇区更保险一点(不论哪种方式都要求拷贝数据量不超过分区容量)。此处已经悉数拷贝完成,所以分区不是全空闲状态,拷贝仅会清空分区不会对U盘进行格式化:

整理一下,原有的固态硬盘分区情况如下,260MB的ESP_MSR引导、157.4GB的Windows系统盘、80.8GB的数据盘,

对应新的固态硬盘进行分区,将系统盘、数据盘对应进行分区拷贝,不必对ESP_MSR进行复制也不必创建新的引导分区(以防万一我拷贝了ESP_MSR,新建引导分区涉及到硬盘的分区表担心会影响Ventoy的引导所以没有尝试,虽然可能系统装好后可能Ventoy也没用了),实际进行下来发现手动修复引导无法避免,新安装固态硬盘拷贝完成分区情况如下(此时分区数大于4个),90.8GB的Ventoy系统盘、32MB的VTOYEFI引导盘、260MB的原有硬盘引导盘、299.7GB的新Winodws系统盘、563.0GB的新数据盘:

④ 重启测试新系统盘(可选)

重启计算机在进入BIOS界面后选择进入新固态硬盘的系统,检查系统是否拷贝正确能够正常启动(即便在第③步复制了原系统的ESP_MSR,能够顺利启动新的系统,猜测此时的引导应该还是由原有引导盘进行的,最终要卸载原有硬盘靠新硬盘启动才算成功)

感觉一切顺利,找把十字螺丝刀开始换硬盘了

你醒啦,手术很成功~

⑤ 修复引导

替换完固态硬盘后就正式和原来的256G say goodbye了。只有系统盘没有引导的话,进入系统会马上蓝屏跳出引导错误,且没有windows自修复工具,所以要借助Edgeless的引导修复工具手动添加系统盘引导,我用的是这个,有复杂引导需求的应该要用分区工具手动配置了:

直接无脑修复

大概几秒钟就会提示引导修复完成,然后重启电脑,进入BIOS界面将系统启动优先如下设置

找到Winodws Boot Manager

⑥ 修复盘符顺序

顺利进入系统后部分软件链接出现问题:

Well,VS code has been grey too.

之所以认为这个方案可行还是想到了Linux中一切皆是文件的设计理念,不论是系统、数据、配置项还是引导,我只需要将所有文件忠实地分配到对应的盘符,保证路径不变就能在移植后达到原有系统的效果(因为主板没换嘛)。虽然不清楚Windows和Linux在对文件的理解上到底相差多少,但两个操作系统发展到现在肯定也没少相互借鉴,所以认为Windows理论上应该也是可行的。所以顺利开机后看到部分软件链接出现问题,第一件事就是修改新的Windows自动分配的盘符顺序,对我来说就是指定新的C盘和D盘。

右键此电脑选择管理,选择存储下的磁盘管理,找到需要修改驱动器号的分区右键更改驱动器号和路径

然后重启生效,包括环境变量在内,一切又整洁如初。隔壁的Ventoy(改名Venv)还能继续发光发热,帮我在电脑上测试系统,在里面放置镜像启动的时候选择硬盘主分区引导即可使用。


Ubuntu18.04迁移安装

迁移的系统是基于Ubuntu18.04定制的,说是定制无非就是把Linux开发必须的一些配置(core、一些service服务、一些命令行工具、一些硬件配置项、vim配置、git配置、环境变量、apt源、pip源、cargo源、npm源、各种源...,有时还有zsh和ROS...)和到部署验证阶段的软件产品打包成一个新的iso镜像。

注意!!此章的U盘都指已经替换下来的老的固态硬盘。

① 安装systemback

在希望制作成镜像的系统中安装systemback(可以参考一下网上的安装教程,比如这个 https://blog.csdn.net/z952957407/article/details/108749019 或者这个 https://blog.csdn.net/caliph21/article/details/109167583 

② 备份系统制作为ISO格式

为制作系统镜像开辟一个空间足够的工作目录 -> Live system create -> 选择创建的工作目录和Live system的名字 -> Create new -> Convert to ISO转换为.iso格式

根据推荐的教程来就可以了,注意最后一步生成ISO在systemback中有4G大小限制(应该是FAT32文件系统的问题),要解压.sblive获得Live系统目录对里面的syslinux进行重命名为isolinux,再借助cdtools中的mkisofs工具把解压后的Live系统目录重新打包转换为.iso的格式

③ 将镜像拷贝到U盘的Ventoy分区

什么,你问之前那颗装过Ventoy的固态不是已经安装到笔记本上了吗?那不是老的固态又换到硬盘盒里面了嘛,反正本身也要用,放下干掉老系统的心理包袱,再花3、4s装一下呗...

④ Ventoy引导进入系统镜像

选择grub2方式启动

选择Boot system installer(启动系统安装器)

⑤ 分配系统分区

如果能够识别到目标硬盘直接跟着教程走

注意!!如果你要将系统安装到固态硬盘上,这一步十分关键,因为有时候你用systemback制作的系统镜像是识别不到那颗目标硬盘的。如果你发现识别到的只有U盘(并且正可能像我一样脑子一热准备进行系统覆盖安装)。在做任何危险举动前,请先窗口右上角关闭systemback,然后会进入到系统镜像内,查看系统情况。

df -h查看挂载详情

此时可以借助Ubuntu的磁盘软件,找到挂载在系统上的目标硬盘,分配好3个分区(3个就够了,分别是ESP分区/boot/efi、交换空间swap和根目录/),大小参考以下原则

  • /boot/efi,4G顶天(1G我都觉得顶天了)

  • swap交换空间与系统内存保持一致或+5G(感觉系统内存小的时候可以设置双倍)

  • 剩余全挂根目录 /

记住显示出来的固态硬盘主分区挂载目录,如/dev/nvme0n1,并依次制作各个分区的软链接来让systemback能够识别。

完成后搜索systemback软件,或命令行启动继续安装系统

⑥ 安装系统

按照正常的systemback教程即可顺利安装。安装完毕会提示将启动盘移除后回车键重启系统。

后记

无必要不折腾,数据无价,谨慎操作!虽然md的尽头是Word但b站什么时候能支持一下md啊...

参考

用systemback工具做的iso镜像,在装系统时识别不出M.2固态硬盘解决办法 · Issue #I17VOD · Volans/volans - Gitee.com: https://gitee.com/bingobinlw/volans/issues/I17VOD 

关于DiskGenius 克隆分区和系统迁移问题,以及如何解决缺少系统引导、双硬盘双系统引导问题,多个启动项克隆分区和迁移系统的区别正在学习的苦逼程序员一枚的博客-CSDN博客: https://blog.csdn.net/qq_41501190/article/details/127052449

ubuntu查询PC的bios信息ubuntu 查看bios版本tangby的博客-CSDN博客: https://blog.csdn.net/tangby/article/details/102983439

Help with console message "nvme: AER: Error of this agent is reported first" | Proxmox Support Forum: https://forum.proxmox.com/threads/help-with-console-message-nvme-aer-error-of-this-agent-is-reported-first.123699/

Ubuntu18.04使用Systemback制作系统镜像并还原(亲测)systemback还原教程Donaghy的博客-CSDN博客: https://blog.csdn.net/z952957407/article/details/108749019

在Ubuntu 20.04上使用Systemback(亲测可用)_ubuntu 打开 systemback_caliph21的博客-CSDN博客: https://blog.csdn.net/caliph21/article/details/109167583


链接:https://pan.baidu.com/s/1CzN-phhKWAZp-j40WpNg-A?pwd=i257 

提取码:i257 

--来自百度网盘超级会员V5的分享

放置了此次使用的Ventoy配置和Edgeless配置,解压时不要保留压缩包名


【瞎折腾】采用Ventoy+Edgeless/systemback成功进行Win10/Ubuntu系统迁移的两次记录的评论 (共 条)

分享到微博请遵守国家法律