Ubuntu系统打包

使用remastersys打包

注意事项:

  • 支持uefi模式下启动,也可以legacy模式
  • 需要修复引导(理论上应该不用才对).
  • 可以还原到扩展分区,不一定为主分区
  • 虽然原装系统有/和/home两个分区,打包以后再安装可以只有/分区,也可以有/和/home分区
  • 综上所述,这个iso只是有个人资料的ubuntu安装包,没有特殊的要求和限制
  • 为了保证安装成功最好分配交互空间

打包方法

安装remastersys,直接复制remastersys-2-0-12-en.deb到Ubuntu,双击打开,下载remastersys。

搜索打开 Remastersys Backup,然后点击Backup

1
2
3
4
5
6
7
8
Backup : 备份完整的系统并包括个人资料.
Dist : 生成一个可以与朋友分享的备份文件,其形式是ISO 和CDFS
Distcdfs : 只生成系统的备份文件,对只加程序进安装CD的一种好方法.
DistIso : 只生成一个ISO文件,在之前需完成上一步.
Modify : 根据用户要求而修改remastersys配制.
Info : 有关remastersys的信息.
Clean : 清除临时文件.
Quit : 退出

打开终端,敲命令行

remastersys的语法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]

1)将你的系统备份制成一个live cd/dvd
sudo remastersys backup
2) 将你的系统备份制成一个live cd/dvd其名叫 custom.iso 的ISO文件.
sudo remastersys backup custom.iso
3)清除由 remastersys产生的临时文件
sudo remastersys clean
4) 产生一个可发布又包括你的个人资料的 livecd/dvd
sudo remastersys dist
5) 产生一个只有档案系统的可发布的 livecd/dvd
sudo remastersys dist cdfs
6) 为了产生一个可发布又包括你的个人资料的 livecd/dvd 其名叫 custom.iso的ISO文件:
sudo remastersys dist iso custom.iso

注意用上面方法会找不到intird.gz的错误,进入iso查看了,发现casper目录中并没有initrd.gz这个文件,然后打开终端

1
2
3
4
5
6
cd /home/remastersys/remastersys      //默认打包后存放iso的路径
//linux可以多个内核(在/lib/modules下可查看)并存,然后对应有多个initrd.img(在/boot目录下)引导
sudo cp /boot/initrd.img-3.13.0-44-generic ISOTMP/casper/initrd.gz
sudo rm suanier.iso
sudo remastersys dist iso suanier.iso // 这个经过两次实验均失败。开在选择用户头像,且没有出现创建用户的选项
sudo remastersys backup iso lzd.iso //实际实验的时候这个打包的镜像可以用,但是上面哪个suanier.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
2
3
sudo chroot "/mnt/boot-sav/sda5" dpkg --configure -a
sudo chroot "/mnt/boot-sav/sda5" apt-get install -fy
sudo chroot "/mnt/boot-sav/sda5" apt-get purge -y --force-yes grub*-common shim-signed

这时候终端会出现移除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.
  • 可以还原到扩展分区

img

这种方法打包出来的是一个文件夹,可以重新进入clonezilla,然后找到一直默认,直到选择到了刚才打包出来的那个img文件夹。然后一直找到Rescover-iso-zip 产生恢复专用的再生龙(光盘或u盘)选项,把刚才产生的文件夹打包成一个iso文件。记住不要选择初学者模式,要选择专家模式,去掉-k参数,否则的话,会重新分配分区表。

注意:uefi下必须先装Windows,然后才能修复引导才能用,可以还原到不同的分区,只有备份一个分区的时候才能保证可以还原到不同的分区。

还原的时候,选择完自己打包好的文件夹

首先出现:

img

然后出现:

即可还原到不同的分区。需要注意的是我们给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
------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道