AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1012717
Accepted
Ted Cahall
Ted Cahall
Asked: 2018-03-08 04:50:10 +0800 CST2018-03-08 04:50:10 +0800 CST 2018-03-08 04:50:10 +0800 CST

在不承诺的情况下尝试新的操作系统版本的方法?

  • 772

我想尝试新的操作系统版本,例如 Ubuntu 17.04 或 Ubuntu 17.10,以查看新功能。我还喜欢查看 Kubuntu、CentOS 或其他发行版(Windows 11 到货时?) - 或者设置测试环境,知道我可能会丢弃它们并且不想对我的核心机器执行此操作。

有哪些替代方案可以在不危及我的主要开发机器的情况下做到这一点?我不是在寻找关于最佳方式的辩论,而是在寻找哪些替代方案。

live-usb dual-boot virtualization iso usb-installation
  • 9 9 个回答
  • 9516 Views

9 个回答

  • Voted
  1. Best Answer
    sudodus
    2018-03-08T06:48:47+08:002018-03-08T06:48:47+08:00

    USB 替代品

    USB 替代品很好,当

    • 你想测试性能(在裸机上)
    • 计算机功能不够强大,无法在虚拟机中很好地运行系统

    您可以使用至少有 2GB 驱动器空间的 USB pendrive 并创建一个

    • pendrive 中的live Ubuntu 系统。

      从 USB pendrive 启动并在启动菜单中选择“Try Ubuntu”(与其他 Linux 发行版类似)。如果您在实时(仅实时)驱动器中保存数据、安装程序或调整系统,它将无法在关机或重新启动后继续存在。


    如果你想

    • 以更高级的方式尝试 Ubuntu 或
    • 保存数据、安装程序或调整系统和
    • 您拥有/获得至少 4 GB 的快速 USB 随身碟,

    你可以创建一个

    • 持久的现场Ubuntu 系统

    或者,如果您拥有/获得至少 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 磁盘写入是永久的吗?

    • 26
  2. Ted Cahall
    2018-03-08T04:50:10+08:002018-03-08T04:50:10+08:00

    测试新发行版和操作系统版本的一种方法是使用虚拟化。它不需要额外的 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 的机器,你甚至可以并行运行它们。

    • 15
  3. David Foerster
    2018-03-08T16:23:14+08:002018-03-08T16:23:14+08:00

    作为sudodus 答案的更快、更便宜的替代方案,您可以直接从可引导驱动器映像文件而不是专用 (USB) 驱动器引导。

    至少对于 Ubuntu ISO 映像(以及 Linux Mint 等衍生产品),以下配方有效。其他发行版可能需要进一步调整。

    1. 将 ISO 格式1的可启动驱动器映像存储为内部存储驱动器2上的文件。

    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 模式。

    3. 使文件可执行:

      sudo chmod a+x /etc/grub.d/35_isofiles
      
    4. 确保启用了 Grub 菜单。

    5. 更新 Grub 配置:

      sudo update-grub
      
    6. 重新启动并选择新添加的 Grub 菜单项以从相应的映像文件启动。


    1其他文件系统类型是可能的,但可能需要其他 Grub 命令和引导参数调整。

    2 LVM、RAID 和加密文件系统应该可以使用 Grub 的实用程序库,但我没有测试它们。

    • 12
  4. crasic
    2018-03-08T10:35:58+08:002018-03-08T10:35:58+08:00

    虚拟化是迄今为止最简单的。

    但是,您在这里有 2 个单独的用例,它们将有不同的解决方案

    1. 试用新发行版

    发行版基本上由打包的应用程序和用户空间环境(例如SystemD与init引导)确定

    如果您想定性地“评估”不同发行版的 UIX,那么我建议您在其中完整安装操作系统并评估其可用性的全面虚拟化。这在其他答案中已充分涵盖。

    如果您只需要用户空间环境进行测试,请继续阅读。

    2. 不同环境下的测试和“丢弃实例”

    使用容器化更容易、更便宜、更快,这是一种使用内核创建沙盒环境的轻量级虚拟化形式。

    容器与主机共享内核资源,但除此之外还有自己的根文件系统、用户空间、网络堆栈等。从概念上讲,它可以被认为是chroot类固醇。然而,由于内核是共享的,虚拟化是“瘦”的,这意味着对于大多数实际目的,它以与主机操作系统相同的速度运行。

    有一种常用的容器系统称为docker. Docker 为您想要的几乎所有 linux 发行版都提供了标准化的镜像,并且它在 windows 上运行(然而,windows 镜像只在 windows 上运行,linux 镜像在两者上都运行)。它具有额外的有用功能,可节省空间和性能。

    也有类似 linux 的本地开源替代品LXC(内置于内核中!),它们可以用于几乎相同的事情(但需要更多配置)。

    测试或构建环境的简化示例docker

    # Dockerfile
    
    FROM ubuntu:17.10
    
    RUN apt-get update && apt-get install -y build-essential
    
    WORKDIR /workdir
    
    • docker build --tag my-builder .

    然后从命令行,以各种方式在该环境中编译您的项目或测试

    “登录”并在环境中编译,运行测试等。假设您在项目的源目录中

    $ docker run -v "$PWD:/workdir" --rm -it my-builder /bin/bash
    # echo "Now in docker container"
    # make
    ...
    # build/test/my-test
    ...
    # exit
    $ echo "Build artifacts are now on your host OS Directory :) "
    

    一次性使用

    $ docker run -v "$PWD:/workdir" --rm my-builder make
    

    你甚至可以传递环境变量

    $ docker run -e "CROSS_COMPILE=arm-linux-gnueabi" -v "$PWD:/workdir" --rm my-builder make
    

    或者启动一个持久实例并将文件显式复制到其中

    $ Start our instance in background 
    $ docker run --name my-builder-inst -d my-builder
    $ echo "Copy files to instance" 
    $ docker cp /my/source/dir my-builder-inst:/workdir
    $ echo "run project build"
    $ docker exec my-builder-inst make
    $ echo "copy build artifacts"
    $ docker cp my-builder-inst:/workdir/build /my/output/dir
    $ echo "destroy and delete container" 
    $ docker rm -f  my-builder-inst
    

    实际上还有数百种其他使用模式,然而,类似脚本的图像定义、可扩展的图像和命令行使用使其对开发、测试甚至部署环境极具吸引力

    • 9
  5. joeytwiddle
    2018-03-08T18:22:01+08:002018-03-08T18:22:01+08:00

    我在我的驱动器上保留了一个单独的分区(建议至少 20GB,如果可以的话,更多)。

    我可以将任何我想测试的操作系统安装到该分区上,然后重新启动进入它。

    如果一切正常,我可以弃用我原来的操作系统分区,并最终重新调整它的用途。

    但是,如果新操作系统对我不起作用(驱动程序问题、软件不可用),那么我可以简单地重新启动回到我的旧操作系统,并感谢我仍然拥有它!

    笔记:

    • 通过这种方式,您可以真正在硬件上测试新操作系统,从而检测驱动程序问题。

    • 但是,如果您只想体验新操作系统的感觉,其他虚拟化解决方案之一可能对您来说更快、更容易和更安全。

    • 我将我保存/home在一个大的单独分区上,因此它独立于两个操作系统。(不要意外地重新格式化该分区!)

    • 但我建议您在测试时不要使用共享/home分区。如果两个操作系统具有显着不同的软件版本,则应用程序可能会以不适合其他操作系统的方式更改其配置文件。因此,为每个操作系统保留单独的配置文件,直到您提交其中一个。(*) 见下文

    • 您不需要创建第二个交换分区。您可以为两个操作系统使用相同的交换分区。

    • 当然,您需要小心格式化/安装到哪些分区。因此,请在安装新操作系统之前进行备份,并记下您的分区 ID 和大小(parted、p、q)。

    • 为了在两个操作系统之间进行双重引导,您需要 grub 来检测它们。根据我的经验,grub 总是自动执行此操作。(但 lilo 曾经是一个不同的故事!)

    • 当您在另一个操作系统上时,通常可以从一个操作系统上运行软件。sudo chroot /mnt/original_os尽管设置起来很麻烦/dev,但我还是使用/proc.

    我的记录是一台机器上有 4 个 Linux 操作系统和一个 Windows XP。我曾经启动到 Gentoo 是为了速度和乐趣,但在受信任的 Debian 操作系统的 chroot 中运行我的网络服务器和邮件服务器。

    (*) 您可以通过编辑为每个操作系统配置不同的主文件夹/etc/passwd。将您的家庭设置为/home/you/arch-test目标共享家庭分区/etc/fstab并重新启动。您可以对一些点文件进行符号链接,以便在两个操作系统之间共享,而将其他点文件留给特定于操作系统的文件。

    • 3
  6. Sean the Bean
    2018-03-10T08:19:56+08:002018-03-10T08:19:56+08:00

    您基本上有三个选择:虚拟化(VirtualBox 或 Docker)、可启动闪存驱动器(live CD 的现代替代品)或从分区双启动。在三者之间进行选择取决于您的需求、硬件和经验。其他一些答案更详细地介绍了特定方法,但这里有一个高级比较,可以为您提供在它们之间做出决定的框架。

    1. 虚拟化

    优点:

    • 很容易设置
    • 不会影响您的主要开发环境
    • 只要您有硬盘空间,您就可以轻松设置任意数量 - 甚至在进行重大更改之前创建快照,并在完成后删除它们

    缺点:

    • 需要体面的硬件来同时运行两个或多个操作系统
    • 性能受到分配给 VM 的资源的限制,因此您真的无法准确了解您正在测试的操作系统版本与主操作系统的比较情况
    • 由于硬件都是虚拟化的,因此您也无法准确了解驱动程序的可用性/兼容性

    2. 可启动闪存驱动器

    优点:

    • 比较容易设置
    • 不会影响您的主要开发环境
    • USB3 闪存驱动器的性能通常很好,尽管根据闪存驱动器的质量肯定会有一些变化(USB2 会更慢 - 为此我会避免使用它)
    • 使用您的实际硬件(存储设备除外),因此您可以看到它与驱动程序和诸如此类的配合情况如何
    • 只要您有足够的闪存驱动器,您就可以轻松设置任意数量的闪存驱动器(如果您想尝试其他东西,您可以轻松地重新格式化它们)

    缺点:

    • 需要一个(或多个)专门用于此目的的闪存驱动器
    • 性能取决于您使用的闪存驱动器的质量

    3.从一个分区双启动

    优点:

    • 为您提供有关性能、驱动程序兼容性等方面的最佳信息,因为它与您的主操作系统在完全相同的硬件上运行
    • 可以一次设置多个,只要你有硬盘空间(你只需要为每个设置一个单独的分区)

    缺点:

    • 需要一些低级的专业知识才能正确设置
    • 弄乱硬盘分区和引导加载程序总是有可能破坏您当前的设置(在开始之前确保您有一个可引导的闪存驱动器或现场 CD)
    • 3
  7. Luis Arriojas
    2018-03-09T07:30:05+08:002018-03-09T07:30:05+08:00

    最简单和最简单的方法是使用虚拟化。您可以下载 VirtualBox(它是开源的)并安装任何操作系统。而且,我建议您在第一次运行之前创建一个快照,这样如果您在设置、更改配置等方面出现任何错误,您可以回退到之前的状态。

    我以这种方式使用和测试了几个操作系统。它非常简单快捷。甚至,我已经使用了 MSDOS 和使用虚拟化的 Windows 3.1。您可以安装任何东西,甚至是 ChromeOS(只需少量工作)或任何版本的 Windows 或 Linux,无论其桌面风格如何。

    • 2
  8. C.S.Cameron
    2018-03-11T16:14:17+08:002018-03-11T16:14:17+08:00

    QEMU

    QEMU是一个虚拟化解决方案,理论上解决了这个问题对廉价和简单的要求。

    它允许在 Linux 或 Windows 主机中拖放引导操作系统 iso 文件。

    它还允许在主机系统内启动 Live USB 硬盘驱动器,并在可用时使用持久性。

    无需像 VBox 那样构建虚拟硬盘。

    QEMU 可作为 Linux、Windows 和其他操作系统的命令行应用程序使用。它也可作为 GUI 使用,并包含在MultiBootUSB Linux 和 Windows 版本http://multibootusb.org/中。

    QEMU

    QEMU 也可以从虚拟机管理器中运行,它比 MBUSB 更快,但不是拖放。

    sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
    sudo apt-get install virt-manager
    

    对于长期操作系统测试,VirtualBox 安装的系统是优越的。

    • 2
  9. CSharpQuestions
    2018-03-09T11:55:23+08:002018-03-09T11:55:23+08:00

    在过去的 3 年里,我已经从 USB 驱动器成功启动了 Ubuntu 的完整安装。USB 2.0 比旧的 3G SATA HD(7200 rpm 16 MB 高速缓存)稍慢,但 USB 3.0 在 3G SATA 接口上的 SSD 只需几秒钟。

    • 1

相关问题

  • 如何在 Windows 7 中运行 Ubuntu?

  • 哪个更好:Win7 主机运行 VMware 和 Ubuntu 来宾,反之亦然?

  • 如何在 Ubuntu 中运行 Windows XP

  • 如何从双启动计算机访问加密的主文件夹?

  • 如何使用 Mac 创建 Ubuntu live USB?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve