假设我有一个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/sdc1
X
/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
和工具名称来安装这些工具。