我希望在新操作系统发布时试用它们,例如 Ubuntu 17.04 或 Ubuntu 17.10,以了解新功能。我还喜欢查看 Kubuntu、CentOS 或其他发行版(Windows 11 发布时?) - 或者设置测试环境,尽管我知道我可能会丢弃它们,但我不想对我的核心机器这样做。
有哪些替代方案可以做到这一点而不会危及我的主要开发机器?我并不是想就最佳方法展开辩论,而是想了解有哪些替代方案可用。
答案1
USB 替代品
USB 替代品很好,
- 你想测试性能(在裸机上)
- 计算机性能不够强大,无法在虚拟机中顺利运行系统
您可以使用至少有 2GB 驱动器空间的 USB 闪存盘并创建
居住优盘中的 Ubuntu 系统。
从 USB 闪存盘启动并在启动菜单中选择“试用 Ubuntu”(其他 Linux 发行版也有类似操作)。如果您在实时(仅实时)驱动器中保存数据、安装程序或调整系统,它将不是关机或重启后仍能继续运行。
如果你想
- 尝试更高级的 Ubuntu 或
- 保存数据、安装程序或调整系统,
- 你有或得到一个至少 4 GB 的快速 USB 闪存盘,
您可以创建一个
- 持久直播Ubuntu 系统
或者如果你有/得到至少 16 GB 的快速 USB 闪存盘,您可以创建一个
已安装Ubuntu 系统(就像安装在内部驱动器中,但是在 USB 闪存盘中)。
USB 驱动器中安装的系统稳定且灵活,可以保持最新状态并不受任何限制地进行调整。从这一点上讲,它比持久实时系统更好。如果您可以避免使用专有驱动程序,它可以在计算机之间移植,但持久实时系统更易于移植。
链接
答案2
测试新发行版和操作系统版本的一种方法是使用虚拟化。它不需要额外的 PC/键盘/视频/鼠标空间或适配器来运行具有单个键盘、视频和鼠标的多台 PC。它只需要一台 PC 和一些虚拟化软件。
这假设您有一台具有虚拟化能力的多核 CPU 和适当内存量的机器。我建议至少使用 8GB 内存,如果有的话最好使用 16GB。
如果您正在运行 Ubuntu 并且只想尝试 Linux 发行版(我认为 Windows 不行),您可以使用 Ubuntu 中打包的免费虚拟化软件:KVM 或 Xen。两者都运行良好,免费,并且可以运行各种 Linux 发行版。但是,管理虚拟机的工具有些不足。Oracle 有一个名为 VirtualBox 的免费虚拟化工具版本,当然还有商业 VMWare 产品。如果您选择 Windows 计算机,VirtualBox 和 VMWare 都可以在 Windows 计算机上运行 Ubuntu。
通过使用 VM 管理器,您将能够在新发行版发布时添加它们,测试它们,使用新功能,然后在新版本出现时丢弃它们。它们只有在不运行时才会占用磁盘空间,因此除非空间紧张,否则甚至不需要丢弃它们。使用 VM 管理器,可以轻松地在一台机器上平衡 5、10 个或更多发行版,并能够根据需要启动和删除它们。如果您有幸拥有一台 32GB 或 64GB 的机器,您甚至可以同时运行它们。
答案3
作为更快的和更便宜的替代品sudodus 的回答你可以直接从可启动驱动器映像启动文件而不是专用的(USB)驱动器。
至少对于 Ubuntu ISO 映像(以及 Linux Mint 等衍生产品),以下配方是有效的。其他发行版可能需要进一步调整。
将可启动驱动器映像以 ISO 格式1存储在内部存储驱动器2上的某个位置作为文件。
添加 Grub “parts” 文件,例如
35_isofiles
,内容如下#!/bin/bash set -e . /usr/share/grub/grub-mkconfig_lib shopt -s nullglob make_iso_menuentry() { local isodevice="$(exec "$grub_probe" -t device -- "$1")" || return $? local isogrub="$(make_system_path_relative_to_its_root "$1")" local label="${2:-"$1"}" printf 'menuentry %s {\n' "'${label//\'/\'\\\'\'}'" printf '\tset isofile=%s\n' "'${isogrub//\'/\'\\\'\'}'" prepare_grub_to_access_device "$isodevice" | sed -e 's/^/\t/' printf '\t%s\n' \ 'insmod loopback' 'insmod iso9660' 'loopback loop "$isofile"' \ 'linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename="$isofile" ro noprompt noeject noplymouth' \ 'initrd (loop)/casper/initrd.lz' printf '}\n\n' printf 'Found "%s" image: %s\n' "$label" "$1" >&2 } for iso in /path/to/image.iso # <-- set path to your ISO image here do make_iso_menuentry "$iso" "${iso##*/}" || true done
并
/etc/grub.d
使其可执行。编辑指定行中的文件路径以满足您的需求。如果需要,您可以添加多个路径和/或 Bash glob 模式。
使文件可执行:
sudo chmod a+x /etc/grub.d/35_isofiles
确保Grub 菜单已启用。
更新 Grub 配置:
sudo update-grub
重新启动并选择新添加的 Grub 菜单项从相应的映像文件启动。
1其他文件系统类型也是可能的,但可能需要其他 Grub 命令和启动参数调整。
2 LVM、RAID 和加密文件系统应该可以借助 Grub 的实用程序库工作,但我没有对它们进行测试。
答案4
我保留独立分区在我的驱动器上(建议至少 20GB,如果可以的话可以更多)。
我可以在该分区上安装任何我想要测试的操作系统,然后重新启动进入该操作系统。
如果一切运行良好,我可以弃用原来的操作系统分区,并最终重新利用它。
但如果新的操作系统不适合我(驱动程序问题、软件不可用),那么我可以简单地重新启动回到我的旧操作系统,并感谢我还拥有它!
笔记:
这样,您就真正可以在硬件上测试新的操作系统,从而检测驱动程序问题。
但如果您只想体验新操作系统的感觉,其他虚拟化解决方案之一可能对您来说更快、更简单、更安全。
我将其保存
/home
在一个单独的大分区中,因此它独立于两个操作系统。(不要意外重新格式化该分区!)但我建议你不要测试时使用共享
/home
分区。如果两个操作系统的软件版本明显不同,应用程序可能会以不适合另一个操作系统的方式更改其配置文件。因此,请为每个操作系统保留单独的配置文件,直到您提交其中一个。(*)见下文您不需要创建第二个交换分区。您可以为两个操作系统使用同一个交换分区。
当然你需要当心格式化/安装到哪些分区。因此,在安装新操作系统之前,请先备份并记下分区 ID 和大小 (parted、p、q)。
为了在两个操作系统之间进行双启动,您需要 grub 来检测它们。根据我的经验,grub 总是自动完成此操作。(但 lilo 曾经是另一回事!)
通常可以在一个操作系统上运行另一个操作系统上的软件。我使用 做到了这一点
sudo chroot /mnt/original_os
,尽管设置小提琴:我必须绑定安装/dev
和/proc
。
我的记录是一台机器上安装了 4 个 Linux 操作系统,以及一个 Windows XP。我曾经为了速度和乐趣而启动 Gentoo,但是运行我的网络服务器和邮件服务器在 chroot 中转到受信任的 Debian OS。
(*) 您可以通过编辑 为每个操作系统配置不同的主文件夹
/etc/passwd
。将您的主文件夹设置为,/home/you/arch-test
然后将共享主分区设为目标/etc/fstab
并重新启动。您可以将一些点文件符号链接到两个操作系统之间共享,同时将其他点文件保留为特定于操作系统的。