使用remastersys打包
注意事项:
- 支持uefi模式下启动,也可以legacy模式
- 需要修复引导(理论上应该不用才对).
- 可以还原到扩展分区,不一定为主分区
- 虽然原装系统有/和/home两个分区,打包以后再安装可以只有/分区,也可以有/和/home分区
- 综上所述,这个iso只是有个人资料的ubuntu安装包,没有特殊的要求和限制
- 为了保证安装成功最好分配交互空间
打包方法
安装remastersys,直接复制remastersys-2-0-12-en.deb到Ubuntu,双击打开,下载remastersys。
搜索打开 Remastersys Backup,然后点击Backup
1 | Backup : 备份完整的系统并包括个人资料. |
打开终端,敲命令行
remastersys的语法:
1 | sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso] |
注意用上面方法会找不到intird.gz的错误,进入iso查看了,发现casper目录中并没有initrd.gz这个文件,然后打开终端
1 | cd /home/remastersys/remastersys //默认打包后存放iso的路径 |
再重新打包。
将/home/remastersys/remastersys目录下的iso文件复制出来到u盘
请用rufus软件刻录进去。实际实验的时候,用unetbootin会卡在选择图片界面,软碟通和win32diskimager均失败,原因不详
legacy模式测试
首先在legacy模式下进入u盘启动,然后根据界面命令选择“install”然后回车,不管你把bootloader安装在mbr还是分区的第一个扇区,安装到最后都显示bootloader安装失败,这个时候点击不安装bootloader,然后拔掉u盘重启。
然后在legacy模式下进入boot-repair,然后点击引导修复。如果不能成功,请联网试试。修复成功后拔掉u盘重启即可。
uefi模式测试
因为打包镜像里面没有efi文件夹,所以不支持uefi启动,所以我们要从legacy启动,然后修复uefi引导
首先,在legacy模式下进入u盘启动,然后根据界面命令选择“install”然后回车,分区完毕点击install后会警告现在是legacy启动,但是分区为gpt之类的警告,不用管,直接安装即可。不管你把bootloader安装在mbr还是分区的第一个扇区,安装到最后都显示bootloader安装失败,这个时候点击不安装bootloader,然后拔掉u盘重启
然后在uefi模式下进入boot-repair(legacy模式和uefi模式下的界面不一样,legacy模式下可以选择语言,uefi模式只有英文),请一定联网,然后点击引导修复。这个时候会提示在终端输入
1 | sudo chroot "/mnt/boot-sav/sda5" dpkg --configure -a |
这时候终端会出现移除grub引导,接下来点击Forward,接下来提示在终端输入如下命令重新安装grub引导
1 | sudo chroot "/mnt/boot-sav/sda5" apt-get install -y --force-yes grub-efi-amd64-signed shim-signed |
然后出现修复引导成功,拔掉u盘重启系统即可
虚拟机测试
注意事项:
- 对于VM虚拟机请右击管理员身份运行
- 对于VM虚拟机开机想进bios,注意要先将工作环境切换至VM虚拟机,即右击虚拟机界面
- 虚拟机都是legacy模式下启动。
- 当虚拟机挂载autoinst.flp软驱的时候,没法进入bios,也没法boot-repair启动。但是在挂载这个软驱的时候会直接跳过iso文件的安装图形命令,直接开始install
首先新建一个虚拟机从iso安装镜像启动。不管你把bootloader安装在mbr还是分区的第一个扇区,安装到最后都显示bootloader安装失败,这个时候点击不安装bootloader,然后重启,卸载掉我们的安装iso镜像
然后挂载boot—repair镜像,然后请务必联网,然后按照提示修复引导。
失败尝试
尝试将本安装主要文件和官方原版的系统镜像进行融合。以实现uefi模式下安装,所以首先解压lzd.iso到一个fat32的U盘中
- 方法一:复制lzd.iso中没有,但是官方有的文件到上述fat32U盘。查看/boot下的grub.cfg和loopback.cfg文件,然后修改/casper/initrd.gz为/casper/initrd.lz(如不修改进去安装界面后提示要先加载内核),再将/casper中的vmlinuz改为vmlinuz.efi(如不改进不去安装界面).然后将/preseed中的custom.seed改为ubuntu.seed.但是最终改装iso文件失败了,最后安装grub的时候提示错误,但是这是关闭电脑,修复引导可以成功安装.而且修改过的iso文件可以在uefi模式下试用ubuntu.uefi模式下将放bootloader的地方改在sda整个磁盘,还是不行.
- 方法二:将lzd.iso中的/casper中的filesystem.squashfs和initrd.lz替换到官方的iso中,卡在了不能读取内核
注意:
- 用boot-repair的时候,必须联网,让他自己弹出代码,否则虽然代码相同,但是报错.原因不祥
- 分析boot-repar修复引导的过程,发现有removing remastersys,猜测修复引导和那个有关.
使用clonezilla
注意事项:
- 只能还原到特定分区,网上的方法不成功(新版的软件解决了,但是当且仅当只备份了一个分区的时候)
- 需要修复Ubuntu引导
- 支持uefi与egacy模式下还原,但是在uefi下必须先在Uefi下安装Windows,然后恢复Ubuntu,否则修复引导提示,GPT is detected.
- 可以还原到扩展分区
这种方法打包出来的是一个文件夹,可以重新进入clonezilla,然后找到一直默认,直到选择到了刚才打包出来的那个img文件夹。然后一直找到Rescover-iso-zip 产生恢复专用的再生龙(光盘或u盘)选项,把刚才产生的文件夹打包成一个iso文件。记住不要选择初学者模式,要选择专家模式,去掉-k参数,否则的话,会重新分配分区表。
注意:uefi下必须先装Windows,然后才能修复引导才能用,可以还原到不同的分区,只有备份一个分区的时候才能保证可以还原到不同的分区。
还原的时候,选择完自己打包好的文件夹
首先出现:
然后出现:
即可还原到不同的分区。需要注意的是我们给linux分配的硬盘空间应该不是未分配,而是已经被格式化过以后的一个分区!
失败经历
remastersys(已经停止维护,respin是另外一个 fork 的产品) | pinguybuilder(install模式直接进桌面,无法安装),重新安装解决 | respin | |
---|---|---|---|
backup | 无法形成iso,但是有ISOTMP | 支持uefi,复制文件完毕,安装过程install crashed | 不支持uefi,复制文件完毕,安装过程install crashed |
dist | 无法形成iso,但是有ISOTMP | 支持uefi,复制文件完毕,安装过程install crashed | 不支持uefi,复制文件完毕,安装过程install crashed |
整合到16.04官方 | 没实验 | 支持uefi,复制文件完毕,安装过程install crashed | 支持uefi,复制文件完毕,安装过程install crashed |
- 我们实验了rufus、UNetbootin、软碟通、ubuntu自带工具等多种烧录方式,均显示install crashed!
- uefi模式下iso直接解压到U盘安装,还是显示install crashed