Методы, чтобы опробовать новые выпуски ОС без фиксации?

Я хочу попробовать новые версии ОС по мере их появления, такие как Ubuntu 17.04 или Ubuntu 17.10, чтобы увидеть новые функции. Мне также нравится смотреть на Kubuntu, CentOS или другие дистрибутивы (Windows 11, когда она появится?) - или настраивать тестовые среды, зная, что я могу их удалить и не хочу делать это с моей основной машиной.

Какие есть альтернативы, чтобы сделать это, не рискуя моей основной машиной для разработки? Я не ищу дебаты о ЛУЧШЕМ способе, но какие альтернативы доступны.

9 ответов

Альтернативы USB

Альтернативы USB хороши, когда

  • Вы хотите проверить производительность (на голом металле)
  • компьютер не достаточно мощный, чтобы хорошо запустить систему на виртуальной машине

Вы можете использовать USB-накопитель с объемом дискового пространства не менее 2 ГБ и создать

  • живая система Ubuntu в Pendrive.

    Загрузитесь с USB-накопителя и выберите "Try Ubuntu" в меню загрузки (и что-то похожее с другими дистрибутивами Linux). Если вы сохраняете данные, устанавливаете программы или настраиваете систему в режиме реального времени (только для использования в режиме реального времени), она не выдержит выключения или перезагрузки.


Если хотите

  • попробуйте Ubuntu более продвинутым способом или
  • сохранить данные, установить программы или настроить систему и
  • у вас есть / получите быстрый USB-накопитель объемом не менее 4 ГБ,

Вы можете создать

  • постоянная живая система Ubuntu

или если у вас есть / получите быстрый USB-накопитель объемом не менее 16 ГБ, вы можете создать

  • установленная система Ubuntu (как установленная на внутреннем диске, но на USB-накопителе).

    Установленная система на USB-накопителе стабильна и гибка, ее можно обновлять и настраивать без каких-либо ограничений. Таким образом, это лучше, чем постоянная живая система. Он переносим между компьютерами, если вы можете избежать проприетарных драйверов, но постоянная живая система более переносима.

связи


Один из способов тестирования новых дистрибутивов и версий ОС - виртуализация. Не требуется места для дополнительного ПК / клавиатуры / видео / мыши или адаптеров для запуска нескольких ПК с одной клавиатурой, видео, мышью. Требуется только один компьютер и некоторое программное обеспечение для виртуализации.

Это предполагает, что у вас есть машина с многоядерным процессором, способным к виртуализации и разумным объемом памяти. Я бы порекомендовал по крайней мере 8 ГБ памяти с 16 ГБ лучше, если у вас есть.

Если вы используете Ubuntu и хотите попробовать только дистрибутивы Linux (я не верю, что Windows будет работать), вы можете использовать бесплатное программное обеспечение для виртуализации, поставляемое в Ubuntu: KVM или Xen. Оба работают нормально, БЕСПЛАТНО и могут работать с различными дистрибутивами Linux. Однако инструментов для управления виртуальными машинами несколько не хватает. У Oracle есть БЕСПЛАТНАЯ версия инструмента виртуализации VirtualBox, и, конечно, всегда есть коммерческий продукт VMWare. VirtualBox и VMWare также могут запускать Ubuntu на компьютере с Windows, если это ваш рабочий стол.

Используя диспетчер виртуальных машин, вы сможете добавлять новые дистрибутивы по мере их появления, тестировать их, играть с новыми функциями, а затем отбрасывать их при появлении нового выпуска. Они только поглощают дисковое пространство, когда не работают, поэтому их даже не нужно выбрасывать, если только это не станет жестким. С помощью менеджера виртуальных машин легко сбалансировать 5, 10 или более дистрибутивов на машине и иметь возможность загружать их и снимать их по мере необходимости. Если вам повезло иметь компьютер на 32 или 64 ГБ, вы можете запустить их все параллельно.

В качестве еще более быстрой и дешевой альтернативы ответу sudodus вы можете загружаться непосредственно из файла образа загрузочного диска вместо выделенного (USB) диска.

По крайней мере для образов ISO Ubuntu (и производных, таких как Linux Mint) работает следующий рецепт. Другие дистрибутивы могут нуждаться в дальнейшей настройке.

  1. Сохраните образ (ы) загрузочного диска в формате ISO1 где-нибудь в виде файла на вашем внутреннем накопителе (дисках)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, если хотите.

  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, но я их не тестировал.

Виртуализация, безусловно, самая простая.

Однако у вас есть 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

Существуют буквально сотни других шаблонов использования, однако определение изображений в виде сценариев, расширяемые изображения и использование командной строки делают его чрезвычайно привлекательным для сред разработки, тестирования и даже развертывания.

Я держу отдельный раздел на своем диске (рекомендую минимум 20 ГБ, больше, если можно).

Я могу установить на этот раздел любую ОС, которую я хочу протестировать, и затем перезагрузить ее.

Если все работает хорошо, я могу отказаться от своего исходного раздела ОС и в конце концов переназначить его.

Но если новая ОС не работает для меня (проблемы с драйверами, недоступное программное обеспечение), тогда я могу просто перезагрузиться в свою старую ОС и быть благодарным, что она у меня все еще есть!

Заметки:

  • Таким образом, вы действительно сможете протестировать новую ОС на своем оборудовании, чтобы вы могли обнаружить проблемы с драйверами.

  • Но если вы только хотели узнать, как чувствует себя новая ОС, одно из других решений для виртуализации, вероятно, быстрее, проще и безопаснее для вас.

  • Я держу свой /home на большом отдельном разделе, поэтому он не зависит от двух ОС. (Не переформатируйте этот раздел случайно!)

  • Но я рекомендую вам не использовать общий /home раздел во время тестирования. Если две ОС имеют существенно различающиеся версии программного обеспечения, приложение может изменить свои файлы конфигурации способом, который не подходит для другой ОС. Так что сохраняйте отдельные файлы конфигурации для каждой ОС, пока не перейдете к одной из них. (*) увидеть ниже

  • Вам не нужно создавать второй раздел подкачки. Вы можете использовать один и тот же раздел подкачки для обеих ОС.

  • Конечно, вы должны быть осторожны, на какие разделы вы форматируете / устанавливаете. Поэтому сделайте резервную копию и запишите свои идентификаторы и размеры разделов (parted, p, q) перед установкой новой ОС.

  • Для двойной загрузки между двумя операционными системами вам потребуется grub для обнаружения обеих. По моему опыту, Grub всегда делал это автоматически. (Но Лило был другой историей!)

  • Часто можно запускать программное обеспечение из одной ОС, пока вы работаете в другой ОС. Мне удалось это с помощью sudo chroot /mnt/original_os, хотя это было скрипкой, чтобы настроить: я должен был связать-монтировать /dev а также /proc,

Моя запись была 4 ОС Linux на одной машине и Windows XP. Раньше я загружался в Gentoo для скорости и удовольствия, но запускал мой веб-сервер и почтовый сервер в chroot для доверенной ОС Debian.

(*) Вы можете настроить разные домашние папки для каждой ОС, отредактировав /etc/passwd, Установите свой дом на /home/you/arch-test затем выберите целевой общий раздел в /etc/fstab и перезагрузите компьютер. Вы можете создать символическую ссылку на некоторые точечные файлы для совместного использования в обеих ОС, оставив другие для конкретной ОС.

В основном у вас есть три варианта: виртуализация (VirtualBox или Docker), загрузочная флешка (современная альтернатива live CD) или двойная загрузка из раздела. Выбор между тремя зависит от ваших потребностей, оборудования и опыта. В некоторых других ответах более подробно рассказывается о конкретном подходе, но здесь приведено сравнение на высоком уровне, чтобы дать вам основу для выбора между ними.

1. Виртуализация

Плюсы:

  • довольно легко настроить
  • не повлияет на вашу основную среду разработки
  • Вы можете легко настроить столько, сколько хотите, при условии, что у вас есть место на жестком диске - даже создавать моментальные снимки, прежде чем вносить серьезные изменения, и просто удалять их, когда вы закончите с ними

Минусы:

  • требует достойного оборудования для запуска двух или более ОС одновременно
  • производительность ограничена ресурсами, выделенными для виртуальной машины, поэтому вы не получите точного представления о том, как версия ОС, которую вы тестируете, сравнивается с вашей основной ОС
  • поскольку все оборудование виртуализировано, вы также не получите точного представления о доступности / совместимости драйверов

2. Загрузочная флешка

Плюсы:

  • умеренно прост в настройке
  • не повлияет на вашу основную среду разработки
  • производительность флэш-накопителя USB3 в целом хорошая, хотя в зависимости от качества флэш-накопителя определенно возможны некоторые различия (USB2 будет работать медленнее - я бы этого не использовал)
  • использует ваше реальное оборудование (кроме запоминающего устройства), так что вы можете увидеть, насколько хорошо он играет с драйверами и еще много чего
  • вы можете легко настроить столько, сколько хотите, если у вас достаточно флешек (и вы можете легко переформатировать их, если хотите попробовать что-то еще)

Минусы:

  • требует наличия одной (или нескольких) флешек, предназначенных для этой цели
  • производительность зависит от качества используемой флешки

3. Двойная загрузка из раздела

Плюсы:

  • дает вам лучшее представление о производительности, совместимости драйверов и т. д., поскольку он работает на том же оборудовании, что и ваша основная ОС
  • Можно настроить несколько одновременно, если у вас есть место на жестком диске (вам просто нужно создать отдельный раздел для каждого)

Минусы:

  • требует некоторого ноу-хау низкого уровня для правильной настройки
  • Работа с разделами жесткого диска и загрузчиками всегда может испортить текущую настройку (перед загрузкой убедитесь, что у вас есть загрузочная флешка или live CD)

Самый простой и легкий способ - использовать виртуализацию. Вы можете скачать VirtualBox (это с открытым исходным кодом) и установить любую операционную систему. И я рекомендую вам создать моментальный снимок перед первым запуском, таким образом вы можете вернуться к его предыдущему состоянию, если допустите какую-либо ошибку при настройке, изменении конфигурации и т. Д.

Я должен использовать и протестировать несколько ОС таким образом. Это очень просто и быстро. Даже я использовал MSDOS и Windows 3.1 с помощью виртуализации. Вы можете установить что угодно, даже ChromeOS (с небольшим количеством работы) или любую версию Windows или Linux, это не имеет значения для его рабочего стола.

QEMU

QEMU - это решение для виртуализации, которое теоретически решает требования этого вопроса дешево и просто.

Он позволяет перетаскивать загрузку iso-файлов операционной системы на хост Linux или Windows.

Он также позволяет загружать жесткие диски Live USB в пределах хост-системы и использует постоянство, если оно доступно.

Нет необходимости создавать виртуальный жесткий диск, как в VBox.

QEMU доступен как приложение командной строки для Linux, Windows и других ОС. Он также доступен в виде графического интерфейса и включен в версии MultiBootUSB для Linux и Windows http://multibootusb.org/.

QEMU также можно запустить из Virtual Machine Manager, который работает быстрее, чем MBUSB, но его нельзя перетаскивать.

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

Для более длительного тестирования ОС система VirtualBox установлена ​​лучше.

Я успешно загрузил полную версию Ubuntu с USB-накопителей за последние 3 года. USB 2.0 был немного медленнее, чем старый 3G SATA HD (7200 об / мин, 16 МБ кэш-памяти), но USB 3.0 находится в паре секунд от SSD на интерфейсе 3G SATA.

Другие вопросы по тегам