能否制作一个完全相同的系统ISO文件,以便在其他计算机上使用?

我对Linux还是新手,但有一个问题。我正在开始买旧电脑的生意,给它们安装Linux系统,然后捐赠给那些家里没有自己电脑的学生。我已经在我的系统上安装了Xubuntu,并安装/卸载了我想要/需要的所有软件,现在想知道是否有办法制作一个ISO文件,然后将其放到另一台电脑上,在ISO安装完成后仍然保留我所有的调整和程序。这样我就不需要为每台电脑花上一两个小时了。
您推荐使用哪些程序来创建这样的ISO文件呢?
谢谢, Tobin

有很多能够完成这个任务的程序:Remastersys、UCK、Pinguy Builder、Relinux、Novo Builder、MintBackup等等。请查看这个主题:http://askubuntu.com/questions/452022/remastersys-alternative。 - ipse lute
7个回答

本答案的部分内容来自: 如何将Ubuntu安装从一块硬盘移动到另一块硬盘?

关于创建ISO的确切答案我无法确定,但如果您希望在不同计算机上创建相同副本的操作系统所需的时间减少,克隆过程对您的情况可能有用。我建议您使用Clonezilla进行克隆,它可以用于克隆硬盘驱动器,即使在需要使用不同大小磁盘进行克隆的情况下,也可以参考这里的说明:http://www.tuxradar.com/content/how-clone-hard-drives-clonezilla

enter image description here

迁移到更大的磁盘

确保将SCSI磁盘的克隆恢复到另一个SCSI磁盘很容易,但要找到大小完全相同的精确副本可能会很困难。好消息是,您不必将磁盘恢复到大小相同的另一个磁盘上。更好的消息是,实际上您可以将映像恢复到一个更大的磁盘上。

在恢复磁盘时,Clonezilla可以按比例调整文件系统的大小并在新磁盘上创建分区。但即使您迁移到了一个更大的磁盘,您可能仍然希望保持分区不变。在这种情况下,您可以要求Clonezilla按照映像中列出的分区表来创建分区。

有关将数据迁移到更大磁盘的文档,但我不确定是否可以反向操作(克隆到较小磁盘)。因此,我建议您只使用安装所需的硬盘空间量,或者检查设备中最小的硬盘驱动器,以便基于该磁盘创建安装。假设:如果您有9个硬盘驱动器,2个100GB,4个80GB,2个40GB和1个20GB,让我们使用最小的一个进行安装,并将其作为克隆源,这样您就可以在最大的硬盘驱动器上进行克隆。请记住,在克隆后根据需要扩展分区,以便使用完整的硬盘驱动器。

Clonezilla提供了几个Live CD和可引导的USB映像,还有记录显示您可以在复制后调整磁盘上的可用空间,这种情况下使用gparted也是一个好主意。

您不必担心与这些事物相关的驱动程序和可能的故障。Ubuntu会根据新计算机的需要安装所需的驱动程序,除了某些视频卡(ATI / nVidia)或更特定的硬件的专有驱动程序。基于此,我建议您在克隆系统后检查每个克隆系统,以确保克隆后一切正常运行。

通过使用克隆程序,您可以对系统进行任意定制,并确保所有克隆的硬盘驱动器上都有与原始软件相同的软件。
祝好运!

在如何创建自定义安装CD方面,有大量的文档可供参考。与您的问题相关的是该页面的以下摘录:
引用: “构建自己的安装CD的主要动机可能是修改所安装的软件包;特别是您可能想要在CD中添加一些软件包。 最简单的方法是构建一个‘extras'仓库结构,只包含您额外的 .debs 文件,并在重新构建 .ISO 镜像之前将其合并到CD文件层次结构中。本指南将逐步指导您如何完成这个过程。”
我建议不要进行太多的定制化,而是在机器启动后使用简单的rsync复制/home/tobin/.config等文件。这个建议主要基于说明页面的介绍:
引用: “定制或“重新制作”Ubuntu安装CD的过程并不复杂,但有点乏味和麻烦。”
我理解这句话的意思是“你越聪明尝试,就越难做得对”。

可能有点离题,但也许使用PXE和kickstart + preseeding与安装后脚本可能是一个更安全的解决方案。关于kickstartPXE的一些信息。在我的公司,我正在使用kickstart + preseeding来在一些Xen服务器上安装虚拟机,不过我必须承认,我从未以这种方式安装过启用了GUI的主机。
有一个名为system-config-kickstart的应用程序(据我所知,在标准仓库中可用),您可以浏览大多数选项并轻松创建kickstart配置文件。软件包部分似乎无法正常工作,显然并非所有功能都从RHEL/Fedora移植过来,但仍然可以手动将该部分添加到配置文件中。
还有一些关于安装后脚本的技巧,比如为MySQL服务器设置默认root密码等,但我想我们可能需要更多数据才能帮助您完成特定的需求设置。
我在Kyle Rankin的《官方Ubuntu服务器书》中找到了关于这些主题的意外多的数据(尽管我并不打算在这里做广告)。

  1. 安装Ubuntu(或者在你的情况下是Xubuntu)
  2. 安装你想要的程序并进行其他任何修改
  3. 安装Remasterys:

-------3a. 下载密钥:http://www.remastersys.com/ubuntu/remastersys.gpg.key

-------3b. 在Ubuntu软件中心中,你需要打开你的源并导入密钥

-------3c. 在Ubuntu软件中心中,你需要添加一个新的源:deb http://www.remastersys.com/ubuntu precise main

-------3d. 关闭Ubuntu软件中心,打开终端并输入:sudo apt-get update

-------3e. 在Ubuntu软件中心中搜索remastersys,并安装它,确保勾选图形界面的附加组件。

一旦您安装了Remastersys,您可以使用它来制作操作系统的ISO文件,然后可以在其他计算机上安装。这将是一个完全复制的ISO文件,但您可以像正常的Ubuntu(或Xubuntu)ISO文件一样进行安装。
请注意:Remastersys不支持UEFI,并且生成的ISO文件可能在某些UEFI系统的CPM模式下无法工作。

将两个硬盘都连接上,在使用 gparted 工具检查哪个硬盘对应哪个设备文件后,执行以下操作:
sudo apt install pv
sudo pv /dev/sdX | sudo dd of=/dev/sdY bs=128M

这将完整复制您的第一个硬盘(在此示例中为/dev/sdX)的内容1:1(按位)到您的第二个硬盘(这里是/dev/sdY),假设您的第二个硬盘要么比旧硬盘大,要么与旧硬盘大小相同(否则一旦第二个硬盘满了,写入操作将中止)。

您可以使用外部硬盘来完成此操作。将其克隆到您的硬盘,然后将您的外部硬盘克隆到需要安装系统的每台计算机上。


只有当目标计算机是源计算机,或者目标计算机和操作系统以传统模式启动时才能正常工作。不适用于UEFI。 - ProDigit
它还适用于UEFI,你可以将目标硬盘连接到源计算机,或者使用外部硬盘,就像之前说的那样。如果你担心启动项的问题,有一些方法可以让它们再次正常工作。通常情况下,它会从ESP引导并正常运行。 - xdevs23
不,不是这样的!当使用DD命令将一个驱动器克隆到另一个驱动器时,BIOS不会引导UEFI驱动器。我已经尝试过了。 - ProDigit
这不在问题的范围之内,如果你真的需要将UEFI转换为BIOS,你仍然可以做到。在一块硬盘上安装BIOS变体,然后进行克隆。 - xdevs23
只要第一驱动器的操作系统安装为UEFI,就不会出现这种情况。 而且答案完全符合问题的范围! - ProDigit
就像我说的那样,有一些解决方法。如果确实需要的话,你可以在克隆的硬盘上安装一个不同的BIOS变体。考虑到问题要求进行完全复制,分区表和引导程序也将是完全一样的,因此,除非在克隆之前添加MBR支持,否则你不能简单地将UEFI硬盘放入BIOS计算机并启动它。 - xdevs23

使用dd可能会起作用, 创建一个ISO,将其保存到外部驱动器中, 使用Linux的live CD引导目标PC, 使用DD将ISO“解包”到SSD中, 这仅在目标PC的驱动器大小与源/ISO相同或更大,并且以传统模式启动时才有效。 对于UEFI安装无效。
请注意,大多数现代64位操作系统使用UEFI,只有少数仍使用传统模式。

Remastersys 项目现在在这里继续进行:https://github.com/nerun/remastersys

现在支持大于4GB的镜像:https://github.com/nerun/remastersys/issues/11

现在我们只需要将其移植到其他Linux版本,以实现可移植性,例如从AWS开始:

sudo apt install remastersys*.deb

sudo apt install xorriso

man remastersys

sudo remastersys backup

  ___ ___ __  __   _   ___ _____ ___ ___  _____   _____
 | _ \ __|  \/  | /_\ / __|_   _| __| _ \/ __\ \ / / __|
 |   / _|| |\/| |/ _ \\__ \ | | | _||   /\__ \\ V /\__ \
 |_|_\___|_|  |_/_/ \_\___/ |_| |___|_|_\|___/ |_| |___/
  Version 4.9-1

BACKUP MODE SELECTED

Checking if the /home/remastersys folder has already been created.

Copying /var and /etc to temporary area and deleting extra files.

Setting up Live CD options for mode backup.
update-initramfs: Generating /boot/initrd.img-4.19.0-25-cloud-amd64
live-boot: core filesystems devices utils memdisk udev blockdev dns.

Copying your kernel and initrd to the Live CD.

Creating filesystem.squashfs. It will take a while, so be patient...

Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/remastersys/ISOTMP/live/filesystem.squashfs, block size 1048576.
[================================================================================\] 29001/29001 100%

...
Creating remastersys-livecd.iso in /home/remastersys using grub-mkrescue.

Creating remastersys-livecd.iso.md5 in /home/remastersys.

/home/remastersys/remastersys-livecd.iso is ready to be burned or tested in a virtual machine.

Check the size and if it is larger than 4GB, the USB key must be formatted in exFAT:
365M /home/remastersys/remastersys-livecd.iso

It is recommended to run "sudo remastersys clean" once you have burned and tested the image remastersys-livecd.iso.