我想尝试新的操作系统版本,例如 Ubuntu 17.04 或 Ubuntu 17.10,以查看新功能。我还喜欢查看 Kubuntu、CentOS 或其他发行版(Windows 11 到货时?) - 或者设置测试环境,知道我可能会丢弃它们并且不想对我的核心机器执行此操作。
有哪些替代方案可以在不危及我的主要开发机器的情况下做到这一点?我不是在寻找关于最佳方式的辩论,而是在寻找哪些替代方案。
我想尝试新的操作系统版本,例如 Ubuntu 17.04 或 Ubuntu 17.10,以查看新功能。我还喜欢查看 Kubuntu、CentOS 或其他发行版(Windows 11 到货时?) - 或者设置测试环境,知道我可能会丢弃它们并且不想对我的核心机器执行此操作。
有哪些替代方案可以在不危及我的主要开发机器的情况下做到这一点?我不是在寻找关于最佳方式的辩论,而是在寻找哪些替代方案。
USB 替代品
USB 替代品很好,当
您可以使用至少有 2GB 驱动器空间的 USB pendrive 并创建一个
pendrive 中的live Ubuntu 系统。
从 USB pendrive 启动并在启动菜单中选择“Try Ubuntu”(与其他 Linux 发行版类似)。如果您在实时(仅实时)驱动器中保存数据、安装程序或调整系统,它将无法在关机或重新启动后继续存在。
如果你想
你可以创建一个
或者,如果您拥有/获得至少 16 GB 的快速 USB 随身碟,您可以创建一个
已安装Ubuntu 系统(就像安装在内部驱动器中,但在 USB pendrive 中)。
USB 驱动器中安装的系统稳定且灵活,可以不受任何限制地保持最新和调整。通过这种方式,它比持久的实时系统更好。如果您可以避免专有驱动程序,它可以在计算机之间移植,但持久的实时系统更便携。
链接
在安装之前尝试 Ubuntu(Kubuntu、Lubuntu、Xubuntu,...)
help.ubuntu.com/community/Installation/FromUSBStick
help.ubuntu.com/community/Installation/FromUSBStick#Notes_about_speed
help.ubuntu.com/community/mkusb
help.ubuntu.com/community/mkusb/persistent
Ubuntu 通过 USB 直播,具有完全持久性和 NTFS
multibootusb.org/
从外部驱动器启动 Ubuntu
将 U 盘恢复到标准存储设备
无法格式化我的 USB 驱动器。我已经尝试过使用 mkdosfs 和 gparted
DD Image 磁盘写入是永久的吗?
测试新发行版和操作系统版本的一种方法是使用虚拟化。它不需要额外的 PC/键盘/视频/鼠标或适配器的空间,即可使用单个键盘、视频、鼠标运行多台 PC。它只需要一台 PC 和一些虚拟化软件。
这假设您有一台具有多核 CPU 的机器,能够进行虚拟化和合理的内存量。如果你有的话,我会推荐至少 8GB 的内存和 16GB 更好。
如果您正在运行 Ubuntu 并且只想尝试 Linux 发行版(我不相信 Windows 会工作),您可以使用 Ubuntu 中打包的免费虚拟化软件:KVM 或 Xen。两者都工作正常,都是免费的,并且可以运行各种 Linux 发行版。然而,管理虚拟机的工具有些缺乏。Oracle 有一个名为 VirtualBox 的免费版虚拟化工具,当然还有商业 VMWare 产品。如果这是您选择的桌面,VirtualBox 和 VMWare 都可以在 Windows 机器上运行 Ubuntu。
通过使用 VM 管理器,您将能够在新发行版发布时添加、测试它们、使用新功能,然后在新版本出现时将其丢弃。它们仅在不运行时占用磁盘空间,因此除非变得紧张,否则它们甚至不需要丢弃。使用 VM 管理器,可以轻松地在一台机器上平衡 5 个、10 个或更多发行版,并能够根据需要启动和关闭它们。如果你有幸拥有一台 32GB 或 64GB 的机器,你甚至可以并行运行它们。
作为sudodus 答案的更快、更便宜的替代方案,您可以直接从可引导驱动器映像文件而不是专用 (USB) 驱动器引导。
至少对于 Ubuntu ISO 映像(以及 Linux Mint 等衍生产品),以下配方有效。其他发行版可能需要进一步调整。
将 ISO 格式1的可启动驱动器映像存储为内部存储驱动器2上的文件。
添加一个 Grub “parts” 文件,例如
35_isofiles
,包含内容并使其
/etc/grub.d
可执行。编辑指示行中的文件路径以满足您的需要。如果需要,您可以添加多个路径和/或 Bash glob 模式。
使文件可执行:
确保启用了 Grub 菜单。
更新 Grub 配置:
重新启动并选择新添加的 Grub 菜单项以从相应的映像文件启动。
1其他文件系统类型是可能的,但可能需要其他 Grub 命令和引导参数调整。
2 LVM、RAID 和加密文件系统应该可以使用 Grub 的实用程序库,但我没有测试它们。
虚拟化是迄今为止最简单的。
但是,您在这里有 2 个单独的用例,它们将有不同的解决方案
1. 试用新发行版
发行版基本上由打包的应用程序和用户空间环境(例如
SystemD
与init
引导)确定如果您想定性地“评估”不同发行版的 UIX,那么我建议您在其中完整安装操作系统并评估其可用性的全面虚拟化。这在其他答案中已充分涵盖。
如果您只需要用户空间环境进行测试,请继续阅读。
2. 不同环境下的测试和“丢弃实例”
使用容器化更容易、更便宜、更快,这是一种使用内核创建沙盒环境的轻量级虚拟化形式。
容器与主机共享内核资源,但除此之外还有自己的根文件系统、用户空间、网络堆栈等。从概念上讲,它可以被认为是
chroot
类固醇。然而,由于内核是共享的,虚拟化是“瘦”的,这意味着对于大多数实际目的,它以与主机操作系统相同的速度运行。有一种常用的容器系统称为
docker
. Docker 为您想要的几乎所有 linux 发行版都提供了标准化的镜像,并且它在 windows 上运行(然而,windows 镜像只在 windows 上运行,linux 镜像在两者上都运行)。它具有额外的有用功能,可节省空间和性能。也有类似 linux 的本地开源替代品
LXC
(内置于内核中!),它们可以用于几乎相同的事情(但需要更多配置)。测试或构建环境的简化示例
docker
docker build --tag my-builder .
然后从命令行,以各种方式在该环境中编译您的项目或测试
“登录”并在环境中编译,运行测试等。假设您在项目的源目录中
一次性使用
你甚至可以传递环境变量
或者启动一个持久实例并将文件显式复制到其中
实际上还有数百种其他使用模式,然而,类似脚本的图像定义、可扩展的图像和命令行使用使其对开发、测试甚至部署环境极具吸引力
我在我的驱动器上保留了一个单独的分区(建议至少 20GB,如果可以的话,更多)。
我可以将任何我想测试的操作系统安装到该分区上,然后重新启动进入它。
如果一切正常,我可以弃用我原来的操作系统分区,并最终重新调整它的用途。
但是,如果新操作系统对我不起作用(驱动程序问题、软件不可用),那么我可以简单地重新启动回到我的旧操作系统,并感谢我仍然拥有它!
笔记:
通过这种方式,您可以真正在硬件上测试新操作系统,从而检测驱动程序问题。
但是,如果您只想体验新操作系统的感觉,其他虚拟化解决方案之一可能对您来说更快、更容易和更安全。
我将我保存
/home
在一个大的单独分区上,因此它独立于两个操作系统。(不要意外地重新格式化该分区!)但我建议您在测试时不要使用共享
/home
分区。如果两个操作系统具有显着不同的软件版本,则应用程序可能会以不适合其他操作系统的方式更改其配置文件。因此,为每个操作系统保留单独的配置文件,直到您提交其中一个。(*) 见下文您不需要创建第二个交换分区。您可以为两个操作系统使用相同的交换分区。
当然,您需要小心格式化/安装到哪些分区。因此,请在安装新操作系统之前进行备份,并记下您的分区 ID 和大小(parted、p、q)。
为了在两个操作系统之间进行双重引导,您需要 grub 来检测它们。根据我的经验,grub 总是自动执行此操作。(但 lilo 曾经是一个不同的故事!)
当您在另一个操作系统上时,通常可以从一个操作系统上运行软件。
sudo chroot /mnt/original_os
尽管设置起来很麻烦/dev
,但我还是使用/proc
.我的记录是一台机器上有 4 个 Linux 操作系统和一个 Windows XP。我曾经启动到 Gentoo 是为了速度和乐趣,但在受信任的 Debian 操作系统的 chroot 中运行我的网络服务器和邮件服务器。
您基本上有三个选择:虚拟化(VirtualBox 或 Docker)、可启动闪存驱动器(live CD 的现代替代品)或从分区双启动。在三者之间进行选择取决于您的需求、硬件和经验。其他一些答案更详细地介绍了特定方法,但这里有一个高级比较,可以为您提供在它们之间做出决定的框架。
1. 虚拟化
优点:
缺点:
2. 可启动闪存驱动器
优点:
缺点:
3.从一个分区双启动
优点:
缺点:
最简单和最简单的方法是使用虚拟化。您可以下载 VirtualBox(它是开源的)并安装任何操作系统。而且,我建议您在第一次运行之前创建一个快照,这样如果您在设置、更改配置等方面出现任何错误,您可以回退到之前的状态。
我以这种方式使用和测试了几个操作系统。它非常简单快捷。甚至,我已经使用了 MSDOS 和使用虚拟化的 Windows 3.1。您可以安装任何东西,甚至是 ChromeOS(只需少量工作)或任何版本的 Windows 或 Linux,无论其桌面风格如何。
QEMU
QEMU是一个虚拟化解决方案,理论上解决了这个问题对廉价和简单的要求。
它允许在 Linux 或 Windows 主机中拖放引导操作系统 iso 文件。
它还允许在主机系统内启动 Live USB 硬盘驱动器,并在可用时使用持久性。
无需像 VBox 那样构建虚拟硬盘。
QEMU 可作为 Linux、Windows 和其他操作系统的命令行应用程序使用。它也可作为 GUI 使用,并包含在MultiBootUSB Linux 和 Windows 版本http://multibootusb.org/中。
QEMU 也可以从虚拟机管理器中运行,它比 MBUSB 更快,但不是拖放。
对于长期操作系统测试,VirtualBox 安装的系统是优越的。
在过去的 3 年里,我已经从 USB 驱动器成功启动了 Ubuntu 的完整安装。USB 2.0 比旧的 3G SATA HD(7200 rpm 16 MB 高速缓存)稍慢,但 USB 3.0 在 3G SATA 接口上的 SSD 只需几秒钟。