xorriso 制作 Linux 操作系统镜像

xorriso 制作 Linux 操作系统镜像

基本镜像制作

xorriso 是一个功能强大的命令行实用程序,可以用于创建和管理 ISO 9660 和 Rock Ridge 文件系统。要使用 xorriso 创建 ISO 镜像,请按照以下步骤操作:

  1. 首先安装 xorriso(如果尚未安装):

    sudo apt-get install xorriso
    
  2. 执行 df -h 命令查看当前系统的磁盘分区情况,确认系统安装的位置,比如 /dev/sda1。

  3. 使用 rsync 命令将系统的所有文件复制到一个临时目录中,例如:

    rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/tmp
    
  4. 这个命令会将系统中除了 /dev、/proc、/sys、/tmp、/run、/mnt、/media 和 /lost+found 以外的所有文件和目录都复制到 /mnt/tmp 目录中。

  5. 进入 /mnt/tmp 目录,检查文件和目录的完整性,确保所有文件都已正确复制。

  6. 使用以下命令创建 ISO 镜像:

    xorriso -as mkisofs -R -J -joliet-long -l -iso-level 3 -o output.iso /mnt/tmp
    

这里的参数解释:

  • -as mkisofs:让 xorriso 以 mkisofs 兼容模式运行。
  • -R:使用 Rock Ridge 扩展名。
  • -J:使用 Joliet 扩展名。
  • -joliet-long:允许 Joliet 文件名超过 64 个字符。
  • -l:允许使用较长的 ISO 文件名。
  • -iso-level 3:设置 ISO 9660 文件系统的兼容性级别。3 级允许文件名最长 207 个字符,文件最大 2 GB。
  • -o output.iso:指定输出 ISO 文件的名称和路径。
  • /path/to/your/folder:要转换为 ISO 镜像的文件夹路径。

这条命令将在指定位置创建一个名为 output.iso 的 ISO 镜像。您可以根据需要自定义参数。

PS:这会创建一个名为 output.iso 的文件,它包含你的整个文件系统。你可以更改 output.iso 以选择不同的文件名。这将创建一个包含你的整个文件系统的 ISO 文件,但是,这个 ISO 文件并不是可引导的,并且不包含 Ubuntu 的安装器。这意味着你不能用这个 ISO 文件来在一个新的硬盘上安装 Ubuntu。

系统镜像还原

  1. 首先,确保你有一个可用的 Ubuntu LiveCD 或 USB 驱动器。

  2. 将包含 output.iso 文件的外部存储设备(如 USB 驱动器)连接到计算机。

  3. 从 LiveCD 或 USB 启动计算机。选择 "Try Ubuntu without installing"(不安装 Ubuntu 试用)选项。

  4. 在终端中,创建一个临时挂载点以挂载 output.iso 文件,并挂载该文件:

    mkdir ~/temp_iso_mount
    sudo mount -o loop /path/to/output.iso ~/temp_iso_mount
    

    请将 /path/to/output.iso 替换为实际的路径。

  5. 确定你要还原的系统分区。通常是 /dev/sdaX 或 /dev/nvme0n1pX(其中 X 是分区编号)。使用 lsblk 或 sudo fdisk -l 查找正确的分区。

  6. 创建一个新的临时挂载点,以便挂载要还原的系统分区:

    mkdir ~/temp_system_mount
    sudo mount /dev/sdX ~/temp_system_mount
    

    请将 /dev/sdX 替换为实际的设备和分区。

  7. 使用 rsync 复制所有内容。它比 cp 更适合用于系统文件,因为它可以更好地处理文件权限和特殊文件:

    sudo rsync -aHAX --delete ~/temp_iso_mount/ ~/temp_system_mount/
    
  8. 操作完成后,卸载分区和 ISO 文件:

    sudo umount ~/temp_system_mount
    sudo umount ~/temp_iso_mount
    
  9. 重新启动计算机,将启动设备设置为原始系统分区。
    这将完成整个系统的还原。然而,请注意,在尝试此操作之前,一定要备份所有重要数据,因为此过程具有一定风险。

通过 dd 命令克隆操作系统

如果你要使用 dd 来创建磁盘的完整克隆,你可以按照以下步骤操作。但是,请注意,这将创建整个磁盘的镜像,包括所有分区和引导记录。

首先,你需要找出你想要克隆的磁盘的设备名。你可以使用 lsblk 或 fdisk -l 来查看系统上的磁盘和分区。假设你的磁盘设备名是 /dev/sda。

然后,你可以使用 dd 命令来创建磁盘的镜像。请确保你有足够的存储空间来保存整个磁盘的镜像。你可以将镜像保存到外部存储设备,或者到另一个足够大的内部磁盘上。以下是一个示例命令:

sudo dd if=/dev/sda of=/path/to/your/image.img bs=4M status=progress

在这个命令中,if 参数是你要克隆的磁盘,of 参数是你要保存镜像的位置,bs 参数设置了每次读写的块大小,status=progress 选项会显示复制过程的进度。

注意:这个操作需要管理员权限,因此需要使用 sudo。另外,这个命令会覆盖输出文件的所有内容,所以请确保你指定了正确的磁盘设备名和镜像文件路径。

要在新的硬盘上恢复这个镜像,你需要将硬盘连接到电脑,然后使用类似的 dd 命令,但是将输入和输出参数反转:

sudo dd if=/path/to/your/image.img of=/dev/sdb bs=4M status=progress

在这个命令中,if 参数是你的镜像文件,of 参数是你要写入的磁盘。同样,这个命令会覆盖目标磁盘的所有内容,所以请再次确保你指定了正确的设备名和镜像文件路径。

注意:在进行这种操作时,必须非常小心。错误的 dd 命令可以导致数据丢失。在执行任何这样的操作之前,你应该确保所有重要的数据都已经备份。

PS:

  1. 文件系统格式需要一致
  2. 新磁盘需要和原磁盘至少具有相同的容量。如果新磁盘的容量更小,那么 dd 命令将无法成功完成。
  3. 由于硬盘的 UUID(Universally Unique Identifier)也被复制过来,所以如果原硬盘和新硬盘同时存在于同一台电脑中,可能会导致问题。你可能需要更改新硬盘的 UUID。
  4. 如果你的系统配置(例如 /etc/fstab 文件)使用的是硬盘设备名称(如 /dev/sda)而不是 UUID,那么在新电脑上可能需要进行一些配置调整,因为硬盘设备名称可能会因硬件配置的不同而改变。
  5. 这种方法不能保证在所有硬件配置上都能工作,因为某些硬件驱动可能不同。如果你的源系统是在特定的硬件配置下安装和配置的,那么当你尝试在具有不同硬件配置的新电脑上启动时,可能会遇到问题。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容