萌新求助,如何打包现有的系统为ISO

编译打包和其他
回复
Brade
帖子: 1
注册时间: 2022-04-06 17:14
系统: 18.04

萌新求助,如何打包现有的系统为ISO

#1

帖子 Brade » 2022-04-06 17:23

如图,现在物理机部署好的ubuntu 18.04 LTS,安装了一些软件,如果重新封装成ISO,可以U盘刻录安装?
求教程
谢谢
头像
astolia
论坛版主
帖子: 6478
注册时间: 2008-09-18 13:11

Re: 萌新求助,如何打包现有的系统为ISO

#2

帖子 astolia » 2022-04-07 17:21

如果你只是想搞个备份,或者想把一台机器的系统完整复制到其他机器,直接用clonezilla https://zhuanlan.zhihu.com/p/354584111
langyun
帖子: 12
注册时间: 2023-04-06 9:18
系统: mint

Re: 萌新求助,如何打包现有的系统为ISO

#3

帖子 langyun » 2023-04-06 9:48

astolia 写了: 2022-04-07 17:21 如果你只是想搞个备份,或者想把一台机器的系统完整复制到其他机器,直接用clonezilla https://zhuanlan.zhihu.com/p/354584111
如果是恢复到另一台没有安装过linux的机子,
再生龙 会自动设置好启动吗?
还是必须手动自己操作呢?
头像
astolia
论坛版主
帖子: 6478
注册时间: 2008-09-18 13:11

Re: 萌新求助,如何打包现有的系统为ISO

#4

帖子 astolia » 2023-04-06 11:50

langyun 写了: 2023-04-06 9:48
astolia 写了: 2022-04-07 17:21 如果你只是想搞个备份,或者想把一台机器的系统完整复制到其他机器,直接用clonezilla https://zhuanlan.zhihu.com/p/354584111
如果是恢复到另一台没有安装过linux的机子,
再生龙 会自动设置好启动吗?
还是必须手动自己操作呢?
见链接的第一段
sxgpic
帖子: 98
注册时间: 2013-12-13 6:57

Re: 萌新求助,如何打包现有的系统为ISO

#5

帖子 sxgpic » 2023-04-09 17:18

Brade 写了: 2022-04-06 17:23 如图,现在物理机部署好的ubuntu 18.04 LTS,安装了一些软件,如果重新封装成ISO,可以U盘刻录安装?
求教程
谢谢
用 live-backup 热备份你的系统,生成一个可启动的 squashfs 文件,再把生成的 squashfs 文件用 utraliso 等工具替换到原来的 ISO 文件里面去就可以了。当然生成的 squashfs 文件也可以用 grub 直接引导,不一定要放进 ISO 里面去。详看帮助说明。
live-backup_3.5-1_all.deb
(10.62 KiB) 已下载 116 次
langyun
帖子: 12
注册时间: 2023-04-06 9:18
系统: mint

Re: 萌新求助,如何打包现有的系统为ISO

#6

帖子 langyun » 2023-04-10 10:04

谢谢大大,另一个回答收藏做笔记
sxgpic
帖子: 98
注册时间: 2013-12-13 6:57

Re: 萌新求助,如何打包现有的系统为ISO

#7

帖子 sxgpic » 2023-04-13 9:30

如果打算把热备份 squashfs 文件用 UtralISO 等工具替换原 ubuntu 安装盘里的 /casper/filesystem.squashfs 做成自定义 ISO 文件来启动的话,也需要修改光盘里面的 grub.cfg 配置(位于ISO文件根目录 boot/grub 下),改成类似下面这种样子:

代码: 全选

set timeout=30

loadfont unicode

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

menuentry "Try Ubuntu live CD" {
	set gfxpayload=keep
	set file="/casper/filesystem.squashfs"
	search --no-floppy -f --set=SFSROOT  $file
	probe -u --set=SFSUUID ${SFSROOT}
	loopback loop (${SFSROOT})/$file
	linux	(loop)/boot/vmlinuz root=UUID=${SFSUUID} rootfstype=iso9660 squashfs=/casper/filesystem.squashfs rw apparmor=0 quiet splash locale=zh_CN.UTF-8 initramfs.runsize=50% vt.global_cursor_default=0
	initrd	(loop)/boot/initrd.img
}
grub_platform
if [ "$grub_platform" = "efi" ]; then
menuentry 'Boot from next volume' {
	exit 1
}
menuentry 'UEFI Firmware Settings' {
	fwsetup
}
else
menuentry 'Test memory' {
	linux16 /boot/memtest86+.bin
}
fi
不改动 grub.cfg 是启动不了的,因为热备份出来的 squashfs 不采用 casper 方式启动。
所以,你可以任意改变 squashfs 文件的名称,任意改变放置的位置,只要在 grub.cfg 里指定正确的文件路径和文件名就可以。原有光盘里只需要保留 BOOT 和 EFI 两个目录就可以了,其他所有东西包括 casper 启动相关的文件和目录都可以精简删除掉。

另外,如果打算将 ISO 拿到其他电脑上启动,在热备份的时候,需要把 /etc/fstab 中本地硬盘(数据盘)挂载相关的东西都删除,只保留 / 和 /tmp 两个挂载点的配置(类似下面这种样子),不然可能会搜索不到指定的硬盘数据分区而导致启动失败:

代码: 全选

overlay / overlay rw 0 0
tmpfs /tmp tmpfs nosuid,nodev 0 0
回复