¿Métodos para probar nuevas versiones del sistema operativo sin comprometerse?

20

Quiero probar nuevas versiones del sistema operativo a medida que lleguen, como Ubuntu 17.04 o Ubuntu 17.10 para ver nuevas funciones. También me gusta mirar Kubuntu, CentOS u otras distribuciones (¿Windows 11 cuando llega?), O configurar entornos de prueba sabiendo que puedo tirarlos a la basura y no quiero hacer esto en mi máquina central.

¿Qué conjunto de alternativas hay para hacer esto sin arriesgar mi máquina principal de desarrollo? No estoy buscando un debate sobre la MEJOR manera, pero qué alternativas están disponibles.

Ted Cahall
fuente
2
Principalmente hago eso con máquinas virtuales. Consulte esta pregunta para obtener una guía sobre la configuración increíblemente rápida y fácil con VirtualBox a la que puede vincular en su respuesta.
Takkat
1
Personalmente, lo uso dockerporque su contenedor está definido con un script fácil de entender. Usted tiene control completo sobre la imagen base y lo que instala. Fácil de compartir archivos y dispositivos host, crear redes virtuales de contenedores, exponer selectivamente puertos con argumentos de línea de comandos, puede enviar comandos directamente al shell del contenedor y ejecutar aplicaciones dentro del contexto del contenedor. Por ejemplo, puede probar el espacio de usuario de centos con una línea docker run -it centos /bin/bash
crasic el
8
Los "CD en vivo" solían ser una gran cosa. Hoy en día sería una unidad USB en vivo.
user253751
1
Dado el modelo de actualización de Windows 10, es poco probable que alguna vez haya un "Windows 11". Incluso si hay una reconstrucción importante del sistema operativo, lo más probable es que Microsoft lo llame de otra manera.
Deja de dañar a Monica el
3
Básicamente tiene tres opciones: una máquina virtual (VirtualBox o Docker), una unidad flash de arranque (alternativa moderna a un CD en vivo) o arranque dual. Elegir entre los tres depende de sus necesidades, hardware y experiencia.
Sean the Bean

Respuestas:

26

Alternativas USB

Las alternativas USB son buenas, cuando

  • desea probar el rendimiento (en metal desnudo)
  • la computadora no es lo suficientemente potente como para ejecutar un sistema bien en una máquina virtual

Puede usar un pendrive USB con al menos 2 GB de espacio en disco y crear un

  • Sistema Ubuntu en vivo en el pendrive.

    Inicie desde el pendrive USB y seleccione 'Probar Ubuntu' en el menú de inicio (y algo similar con otras distribuciones de Linux). Si guarda datos, instala programas o modifica el sistema en una unidad en vivo (solo en vivo), no sobrevivirá al apagado o reinicio.


Si quieres

  • probar Ubuntu de una manera más avanzada o
  • guardar datos, instalar programas o ajustar el sistema y
  • tiene / obtiene un pendrive USB rápido de al menos 4 GB,

puedes crear un

  • sistema Ubuntu en vivo persistente

o si tiene / obtiene un pendrive USB rápido de al menos 16 GB , puede crear un

  • sistema Ubuntu instalado (como instalado en una unidad interna, pero en un pendrive USB).

    Un sistema instalado en una unidad USB es estable y flexible, puede mantenerse actualizado y ajustado sin límites. De esta manera, es mejor que un sistema en vivo persistente. Es portátil entre computadoras, si puede evitar controladores propietarios, pero un sistema en vivo persistente es más portátil.

Campo de golf


sudodus
fuente
2
Dado que el póster tiene una instalación de Ubuntu (?) En ejecución, también es posible iniciar el ISO directamente desde el disco duro. Configure enlaces a la (nueva) ISO, use el enlace en grub (agregue a /etc/grub.d/40_custom), y tenga una partición FAT con directorios para los archivos casper-rw (PERSISTENCE_PATH para identificar cuál usar) ) Agregue "toram" y el rendimiento de arranque ISO es equivalente (o incluso más rápido) que una instalación normal de disco duro.
ubfan1
2
Sí, la alternativa de @ ubfan1 es buena, la he usado varias veces. Tal vez sea un poco más complicado configurarlo que crear un pendrive USB, pero una vez que lo tenga, puede funcionar bien :-) Vea este enlace, help.ubuntu.com/community/Grub2/…
sudodus
2
La instalación en un dispositivo de almacenamiento separado es la mejor manera cuando desea probar cómo se comporta realmente la nueva versión del sistema operativo con su hardware.
pa4080
Esta es absolutamente la respuesta correcta. Intentar probar un sistema operativo a través de capas de virtualización (o Docker, Dios no lo quiera) en su sistema operativo actual es como tomar un auto nuevo para una "prueba de manejo" remolcándolo en un remolque detrás de su auto actual: seguro, puede ver cómo se ve , pero simplemente no le dará ninguna idea del rendimiento.
AC
Con USB3, esto probablemente funcionará bien. Si tiene una máquina más antigua con USB2, probablemente llevará mucho más tiempo cargarla.
Sean the Bean
15

Una forma de probar nuevas distribuciones y versiones del sistema operativo es con la virtualización. No requiere espacio para una PC / teclado / video / mouse adicional o adaptadores para ejecutar múltiples PC con un solo teclado, video, mouse. Solo requiere una sola PC y algún software de virtualización.

Esto supone que tiene una máquina con una CPU multinúcleo capaz de virtualización y una cantidad razonable de memoria. Recomendaría al menos 8 GB de memoria con 16 GB mejor si lo tiene.

Si está ejecutando Ubuntu y solo quiere probar las distribuciones de Linux (no creo que Windows funcione), puede usar el software de virtualización gratuito incluido en Ubuntu: KVM o Xen. Ambos funcionan bien, son GRATUITOS y pueden ejecutar varias distribuciones de Linux. Sin embargo, las herramientas para administrar las máquinas virtuales son algo deficientes. Oracle tiene una versión GRATUITA de una herramienta de virtualización llamada VirtualBox y, por supuesto, siempre existe el producto comercial VMWare. Tanto VirtualBox como VMWare también pueden ejecutar Ubuntu sobre una máquina con Windows si ese es su escritorio de elección.

Al usar un administrador de VM, podrá agregar nuevas distribuciones a medida que salgan, probarlas, jugar con las nuevas funciones y luego descartarlas cuando aparezca la nueva versión. Solo consumen espacio en el disco cuando no se están ejecutando, por lo que ni siquiera necesitan descartarse a menos que se vuelva apretado. Con un administrador de VM, es fácil equilibrar 5, 10 o más distribuciones en una máquina y poder iniciarlas y eliminarlas según sea necesario. Si tiene la suerte de tener una máquina de 32 GB o 64 GB, incluso puede ejecutarlos todos en paralelo.

Ted Cahall
fuente
2
Windows se puede ejecutar dentro de una VM; sin embargo, las versiones más nuevas son tan pesadas que necesitaría un multinúcleo bastante rápido para que sea utilizable.
ravery
Un entorno virtual también depende del soporte para ese sistema operativo. Las nuevas versiones de Windows necesitarán modificaciones en el software de la máquina virtual para admitirlo, lo que podría ser un pequeño revés. Aunque esperaría que se prepararan para nuevos lanzamientos ;-)
Rinzwind
sí, para las pruebas definitivamente necesitamos actualizar la solución de virtualización a la última versión para poder arrancar las últimas versiones del sistema operativo.
Takkat
2
KVM ejecuta Windows 10 y 7 muy bien. Si por Xen te estás refiriendo a Citrics Xen Server, eso también ejecuta Windows 10 y 7.
Robby1212
1
@EricDuminil Eran casi tan utilizables como Windows en general. :)
Michael Hampton
12

Como una alternativa aún más rápida y económica a la respuesta de sudodus, puede iniciar directamente desde un archivo de imagen de unidad de arranque en lugar de una unidad dedicada (USB).

Al menos para las imágenes ISO de Ubuntu (y derivados como Linux Mint), la siguiente receta funciona. Otras distribuciones pueden necesitar más ajustes.

  1. Almacene las imágenes de la unidad de arranque en formato ISO 1 en algún lugar como un archivo en su (s) unidad (es) de almacenamiento interna 2 .

  2. Agregue un archivo Grub "partes", por ejemplo 35_isofiles, con el contenido

    #!/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

    a /etc/grub.dy que sea ejecutable.

    Edite la ruta del archivo en la línea indicada para que coincida con sus necesidades. Puede agregar múltiples rutas y / o patrones globales de Bash si lo desea.

  3. Hacer el archivo ejecutable:

    sudo chmod a+x /etc/grub.d/35_isofiles
    
  4. Asegúrese de que el menú Grub esté habilitado .

  5. Actualice la configuración de Grub:

    sudo update-grub
    
  6. Reinicie y seleccione la entrada del menú Grub recién agregada para iniciar desde el archivo de imagen respectivo.


1 Son posibles otros tipos de sistemas de archivos, pero pueden requerir otros comandos de Grub y ajustes de parámetros de arranque.

2 LVM, RAID y sistemas de archivos cifrados deberían funcionar gracias a la biblioteca de utilidades de Grub, pero no los probé.

David Foerster
fuente
2
Guauu ! que guion! Hice lo mismo de forma manual simplemente agregando una entrada en /etc/grub.d/40_custom y encontrando los buenos parámetros; No es tan difícil dada la ayuda que tuve con wiki.archlinux.org/index.php/…
solsTiCe
9

La virtualización es, con mucho, la más simple.

Sin embargo, aquí tiene 2 casos de uso separados, que tendrán diferentes soluciones

1. Pruebe nuevas distribuciones

Las distribuciones están determinadas básicamente por las aplicaciones empaquetadas y el entorno del espacio de usuario (por ejemplo, SystemDvs initpara el arranque)

Si desea "evaluar" el UIX de una distribución diferente, cualitativamente, le recomendaría una virtualización completa donde instale el sistema operativo en su totalidad y evalúe su usabilidad. Esto está cubierto adecuadamente en otras respuestas.

Si simplemente necesita el entorno de espacio de usuario para la prueba, siga leyendo.

2. Pruebas y "instancias de descarte" en diferentes entornos

Es más fácil, más barato y más rápido usar la contenedorización, una forma de virtualización liviana que usa el kernel para crear entornos de espacio aislado.

Un contenedor comparte recursos del kernel con el Host, pero tiene su propio sistema de archivos raíz, espacio de usuario, pila de red, etc. Puede considerarse, conceptualmente, como un chrootesteroide. Sin embargo, debido a que el kernel se comparte, la virtualización es "delgada", lo que significa que para la mayoría de los propósitos prácticos se ejecuta a la misma velocidad que el sistema operativo host.

Hay un sistema contenedor utilizado comúnmente llamado docker. Docker tiene imágenes estandarizadas para prácticamente todas las distribuciones de Linux que desee, y se ejecuta en Windows (sin embargo, las imágenes de Windows solo funcionan en Windows, las imágenes de Linux funcionan en ambos). Tiene características útiles adicionales para ahorrar espacio y rendimiento.

También hay alternativas nativas de código abierto para Linux como LXC(¡que está integrado en el kernel!), Que se pueden usar para casi lo mismo (pero se requiere más configuración).

Ejemplo simplificado de un entorno de prueba o compilación en docker

# Dockerfile

FROM ubuntu:17.10

RUN apt-get update && apt-get install -y build-essential

WORKDIR /workdir
  • docker build --tag my-builder .

Luego, desde la línea de comandos, compile su proyecto o pruebas en ese entorno de varias maneras

"iniciar sesión" y compilar dentro del entorno, ejecutar pruebas, etc. Suponiendo que esté en el directorio fuente de su proyecto

$ 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 :) "

Usar como único

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

Incluso puedes pasar variables de entorno

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

O inicie una instancia persistente y copie archivos explícitamente

$ 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

Hay literalmente cientos de otros patrones de uso, sin embargo, la definición de imagen similar a un script, las imágenes extensibles y el uso de la línea de comandos lo hacen extremadamente atractivo para entornos de desarrollo, prueba e incluso implementación.

crasico
fuente
1
Si desea contenedores del sistema, probablemente debería buscar LXD (mucho más simple que las herramientas tradicionales de espacio de usuario de LXC) en lugar de Docker (que está diseñado más para contenedores de aplicaciones). Dicho esto, ambos se basan en el soporte de kernel LXC / cgroups. Ver también, unix.stackexchange.com/questions/254956/…
Bob
3

Mantengo una partición separada en mi disco (recomiendo 20GB mínimo, más si puedes).

Puedo instalar en esa partición cualquier SO que quiera probar y luego reiniciarlo.

Si todo funciona bien, puedo desaprobar mi partición original del sistema operativo y, finalmente, reutilizarla.

Pero si el nuevo sistema operativo no funciona para mí (problemas de controladores, software no disponible), entonces simplemente puedo reiniciar en mi sistema operativo anterior , ¡y agradecer que todavía lo tenga!

Notas:

  • De esta manera, realmente puede probar el nuevo sistema operativo en su hardware, por lo que puede detectar problemas de controladores.

  • Pero si solo desea experimentar cómo se siente el nuevo sistema operativo, una de las otras soluciones de virtualización es probablemente más rápida, fácil y segura para usted.

  • Mantengo mi /homeen una gran partición separada, por lo que es independiente de los dos OS-es. (¡No formatee accidentalmente esa partición!)

  • Pero le recomiendo que no use una /homepartición compartida durante las pruebas. Si los dos sistemas operativos tienen versiones de software significativamente diferentes, una aplicación puede cambiar sus archivos de configuración de una manera que no sea adecuada para el otro sistema operativo. Por lo tanto, mantenga archivos de configuración separados para cada sistema operativo, hasta que se comprometa con uno de ellos. (*) vea abajo

  • No necesita crear una segunda partición de intercambio. Puede usar la misma partición de intercambio para ambos sistemas operativos.

  • Por supuesto, debe tener cuidado con las particiones que formatea / instala. Realice una copia de seguridad y anote los identificadores y tamaños de partición (dividido, p, q), antes de instalar un nuevo sistema operativo.

  • Para realizar un arranque dual entre los dos sistemas operativos, necesita grub para detectarlos a ambos. En mi experiencia, grub siempre ha hecho esto automáticamente. (¡Pero lilo solía ser una historia diferente!)

  • A menudo es posible ejecutar software desde un sistema operativo mientras está en el otro sistema operativo. He conseguido que el uso sudo chroot /mnt/original_os, a pesar de que era un violín para establecer : que tenía que unirse para montaje /devy /proc.

Mi récord fue de 4 sistemas operativos Linux en una máquina y un Windows XP. Solía ​​arrancar en Gentoo por velocidad y diversión, pero ejecuté mi servidor web y servidor de correo en un chroot al confiable sistema operativo Debian.

(*) Puede configurar una carpeta de inicio diferente para cada SO, editando /etc/passwd. Configure su hogar para /home/you/arch-testluego apuntar a la partición de inicio compartida /etc/fstaby reiniciar. Puede vincular simbólicamente algunos archivos de puntos para compartirlos en ambos sistemas operativos, mientras deja que otros sean específicos del sistema operativo.

joeytwiddle
fuente
1
Necesito confiar realmente en sus scripts de instalación .....
mckenzm
Sí, hay más riesgos asociados con este método. Si realmente es una persona cuidadosa, puede intentar primero la virtualización y luego la instalación de una partición, y solo abandonar su instalación original si eso funciona.
joeytwiddle
Nunca haría esto de nuevo. Una vez me encontré con un error aparentemente oscuro que eliminó todas las particiones cifradas, incluso las que no formaban parte de la instalación solicitada. AFAIK este error no se ha solucionado.
Michael Hampton
3

Básicamente tiene tres opciones: virtualización (VirtualBox o Docker), una unidad flash de arranque (alternativa moderna a un CD en vivo) o arranque dual desde una partición. Elegir entre los tres depende de sus necesidades, hardware y experiencia. Algunas de las otras respuestas entran en más detalles sobre un enfoque particular, pero aquí hay una comparación de alto nivel para darle un marco para decidir entre ellas.

1. Virtualización

Pros :

  • bastante fácil de configurar
  • no afectará a su entorno de desarrollo primario
  • puede configurar fácilmente todos los que desee, siempre que tenga espacio en el disco duro, incluso crear instantáneas antes de realizar cambios importantes, y simplemente eliminarlas cuando haya terminado con ellas

Contras :

  • requiere hardware decente para ejecutar dos o más sistemas operativos simultáneamente
  • el rendimiento está limitado por los recursos asignados a la VM, por lo que realmente no tendrá una idea precisa de cómo la versión del sistema operativo que está probando se compara con su sistema operativo primario
  • Como el hardware está todo virtualizado, tampoco tendrá una idea precisa de la disponibilidad / compatibilidad del controlador

2. Unidad flash de arranque

Pros :

  • moderadamente fácil de configurar
  • no afectará a su entorno de desarrollo primario
  • el rendimiento generalmente es bueno con una unidad flash USB3, aunque definitivamente hay alguna variación dependiendo de la calidad de la unidad flash (USB2 será más lento, lo evitaría para este propósito)
  • usa su hardware real (que no sea el dispositivo de almacenamiento), para que pueda ver qué tan bien funciona con los controladores y otras cosas
  • puede configurar fácilmente tantos como desee, siempre que tenga suficientes unidades flash (y puede formatearlas fácilmente si desea probar otra cosa)

Contras :

  • requiere tener una (o más) unidades flash dedicadas a este propósito
  • el rendimiento depende de la calidad de la unidad flash que use

3. Arranque dual desde una partición

Pros :

  • le da la mejor idea de rendimiento, compatibilidad de controladores, etc., ya que se ejecuta exactamente en el mismo hardware que su sistema operativo principal
  • puede configurar múltiples a la vez, siempre que tenga espacio en el disco duro (solo tiene que configurar una partición separada para cada uno)

Contras :

  • requiere algunos conocimientos de bajo nivel para configurar correctamente
  • jugar con particiones de disco duro y cargadores de arranque siempre tiene algún potencial para alterar su configuración actual (asegúrese de tener una unidad flash de arranque o un CD en vivo a mano antes de comenzar)
Sean the Bean
fuente
Si separa la alternativa de Docker como separada de la virtualización en su publicación, estaría dispuesto a marcarla como la respuesta que cubre todas las alternativas. En mi humilde opinión, creo que los contenedores no son una virtualización verdadera debido a que no se ejecutan verdaderos initsistemas completos y núcleos completos. Los contenedores (docker, LXC, etc.) son más livianos en recursos en comparación con la virtualización completa (etc.) ...
Ted Cahall
2

QEMU

QEMU es una solución de virtualización que resuelve teóricamente los requisitos de esta pregunta de manera barata y simple.

Permite arrastrar y soltar el arranque de los archivos iso del sistema operativo dentro de un host Linux o Windows.

También permite el arranque de discos duros USB en vivo, dentro de un sistema host y utiliza la persistencia si está disponible.

No es necesario construir un disco duro virtual como con VBox.

QEMU está disponible como una aplicación de línea de comandos para Linux, Windows y otros sistemas operativos. También está disponible como GUI y se incluye con las versiones de MultiBootUSB Linux y Windows http://multibootusb.org/ .

QEMU

QEMU también se puede ejecutar desde Virtual Machine Manager, que es más rápido que MBUSB pero no es arrastrar y soltar.

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

Para pruebas de sistema operativo a más largo plazo, un sistema instalado VirtualBox es superior.

CSCameron
fuente
¡Gracias! No había oído hablar de esta opción. Le echaré un vistazo.
Ted Cahall
2

La forma más simple y fácil es usar la virtualización. Puede descargar VirtualBox (es de código abierto) e instalar cualquier sistema operativo. Y, le recomiendo que cree una instantánea antes de ejecutarla por primera vez, de esta manera puede retroceder a su estado anterior si comete algún error al configurarla, cambiar la configuración, etc.

Tengo uso y prueba varios SO de esta manera. Es muy simple y rápido. Incluso, he usado MSDOS y Windows 3.1 usando virtualización. Puede instalar cualquier cosa, incluso ChromeOS (con un poco de trabajo) o cualquier versión de Windows o Linux, sin importar su sabor de escritorio.

Luis Arriojas
fuente
1

He arrancado con éxito las instalaciones completas de Ubuntu desde unidades USB durante los últimos 3 años. USB 2.0 fue un poco más lento que un anterior 3G SATA HD (7200 rpm 16 MB de caché), pero USB 3.0 está a unos segundos de un SSD en una interfaz 3G SATA.

CSharpQuestions
fuente