从其他 Linux 发行版安装 Ubuntu

从其他 Linux 发行版安装 Ubuntu

假设我有一个s390正在运行 Suse zLinux(或任何其他非 Ubuntu Linux)。有没有办法使用某种安装程序将 Ubuntu 安装到新磁盘(包括使其能够启动)?如果是,它如何工作?(不涉及 x86!)

答案1

有多种方法可以实现这一点。一种解决方法是使用虚拟化。在本例中,我将使用虚拟盒

步骤如下:

  • 创建虚拟嘉宾用于安装操作系统。
    (将虚拟操作系统设置得小一些,这样映像就不会占用太多空间。8 GB 就足够了。)

  • 安装所需的操作系统进入虚拟客户机。

  • 创建磁盘映像您的客户 vdi。

    对于静态尺寸的 .vdi 使用:
    $ VBoxManage clonehd [vdi-image.vdi] [drive.img] --format RAW

    对于动态大小的 .vdi 使用:
    $ VBoxManage internalcommands converttoraw [vdi-image.vdi] [drive.img]

    将 [vdi-image.vdi] 和 [drive.img] 替换为 vdi 映像和驱动器的目标映像。

  • 复制图像到您的新硬盘使用dd
    $ dd if=output.img of=/dev/sdc bs=4M status=progress

  • 调整分区大小您希望他们使用的方式分区

  • 安装新驱动器进入目标计算机并启动。

如果您的目标驱动器已分区且已安装操作系统,则无需恢复整个驱动器,而是使用分区(而不是整个驱动器)作为源和目标。使用替代部分copy parition

由于原始映像较小,这些步骤中新驱动器的初始 Ubuntu 分区将较小。您可以使用 增加分区大小gparted


或者,您可以复制分区而不是整个驱动器。如果您的目标驱动器上已有数据,并且希望将 Ubuntu 安装在特定分区上,请使用此复制选项。

复制分区作为源

  • 找到分区在保存的图像文件中。

在映像驱动器上运行此命令:

$ sudo losetup -f --show -P [drive.img]
$ lsb

循环设置会将分区拆分为/dev/loop0p1/dev/loop0p2等。您可以通过输出中的大小详细信息识别所需的分区lsb。您还可以以正常方式挂载分区来检查它们。

  • 将分区复制到分区到目标驱动器:

将 [source-partition] 和 [dest-partition] 替换为:源:/dev/loop0p#(# 是安装操作系统的分区号);目标:/dev/sdax(X 代表要在目标驱动器上安装操作系统的分区号)。

$ dd if=[source-partition] of=/dev/[destination-partition] bs=4M status=progress

复制过程完成后dd,请挂载destination partition,并按照以下步骤更新 grub:

(代表XX中的驱动器和分区号。本身代表 中的实际驱动器。)c1/dev/sdc1X/dev/sdc

$ sudo mount /dev/sdXX /mnt
$ for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/$i"; done
$ sudo chroot /mnt
$ grub-install /dev/sdX
update-grub
exit
$ for i in /sys /proc /run /dev; do sudo umount --bind "$i" "/mnt/$i"; done
  • 现在继续执行上述两个步骤,首先调整分区大小

使用的工具:

上面使用的工具都带有链接,表明它们位于 Ubuntu 的默认存储库中。您可以使用sudo apt-get和工具名称来安装这些工具。

相关内容