Методы тестирования новых версий ОС без обязательств?

Вопрос или проблема

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

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

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

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

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

Вы можете использовать USB-накопитель как минимум того же размера, что и ISO-файл (в 2024 году 8 ГБ необходимы для Ubuntu Desktop, 4 ГБ для некоторых остальных версий (например, Lubuntu, Xubuntu и Ubuntu Server)) и создать

  • живую систему Ubuntu на USB-накопителе.

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


Если вы хотите

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

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

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

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

  • установленную систему 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 'Найдено "%s" изображение: %s\n' "$label" "$1" >&2
    }
    
    
    for iso in /path/to/image.iso # <-- задайте путь к вашему ISO-образу здесь
    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 "Теперь в контейнере docker"
# make
...
# build/test/my-test
...
# exit
$ echo "Артефакты сборки теперь находятся в директории вашей хост-ОС :) "

Используйте как одноразовый вариант

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

Вы также можете передавать переменные окружения

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

Или запустить постоянный экземпляр и явно скопировать в него файлы

$ Запустите наш экземпляр в фоновом режиме 
$ docker run --name my-builder-inst -d my-builder
$ echo "Копировать файлы в экземпляр" 
$ docker cp /my/source/dir my-builder-inst:/workdir
$ echo "запустить сборку проекта"
$ docker exec my-builder-inst make
$ echo "скопировать артефакты сборки"
$ docker cp my-builder-inst:/workdir/build /my/output/dir
$ echo "уничтожить и удалить контейнер" 
$ docker rm -f  my-builder-inst

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

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

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

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

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

Примечания:

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

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

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

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

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

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

  • Чтобы включить двойную загрузку между двумя ОС, вам нужно, чтобы grub обнаружил обе из них. По моему опыту, grub всегда делал это автоматически. (Но lilo раньше был другим делом!)

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

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

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

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

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

Плюсы:

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

Минусы:

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

2. Загрузочный флеш-накопитель

Плюсы:

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

Минусы:

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

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

Плюсы:

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

Минусы:

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

QEMU

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

Он позволяет без拖动 и бросания загружать образы операционных систем ISO в до другой Linux или Windows хост.

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

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

QEMU доступен как приложение командной строки для Linux, Windows и других ОС. Он также доступен в виде графического интерфейса и включен в 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, будет превосходной.

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

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

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

Ответ или решение

Способы тестирования новых версий ОС без риска для основной машины

Когда речь идет о том, чтобы попробовать новые версии операционных систем, такие как Ubuntu 17.04 или 17.10, Kubuntu, CentOS или даже Windows 11, существует несколько эффективных и безопасных методов, которые позволяют протестировать эти системы, не нанося ущерба вашей основной рабочей среде. Рассмотрим наиболее распространенные и доступные варианты.

1. Использование USB-накопителей

Преимущества:

  • Тестирование на «железе»: Запуск ОС с USB-накопителя позволяет проверить ее производительность на реальном оборудовании, что важно для оценки совместимости драйверов и работы системы в целом.
  • Отсутствие воздействия на основную ОС: Работая с USB, вы не рискуете повредить свои основные данные или настройки.

Методы:

  • Live USB: Создайте Live USB с образами ОС (наиболее распространенный вариант), чтобы протестировать систему без установки. Пользуясь им, вы увидите работу ОС, однако изменения и настройки не сохранятся после перезагрузки.
  • Постоянный Live USB: Установка системы на USB-накопитель с поддержкой «persistent». Это позволяет сохранить настройки и установленные программы между перезагрузками.
  • Установка ОС на USB: Они действуют так же, как установленная ОС на внутреннем накопителе, с возможностью обновлений и настройки. Этот вариант подойдёт, если у вас есть достаточно качественный USB-накопитель (минимум 32 ГБ).

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

Преимущества:

  • Удобство и быстрота: Процесс настройки виртуальных машин весьма прост и экономит место — вы можете тестировать сразу несколько ОС, не загружая основную систему.
  • Изоляция: Виртуальные машины изолированы от хоста, поэтому вы можете свободно экспериментировать, не боясь повредить свою основную среду.

Рекомендации по программному обеспечению:

  • Oracle VirtualBox: Бесплатное и многофункциональное решение для виртуализации, подходящее для большинства пользователей.
  • KVM/Xen: Если вы используете Linux, это встроенные инструменты виртуализации, которые хорошо подходят для различных дистрибутивов.
  • VMware: Коммерческое решение с широкими возможностями и удобным интерфейсом.

3. Двуухатная загрузка (Dual Boot)

Преимущества:

  • Наилучшая производительность: Этот метод позволяет протестировать ОС в полной мере, используя все ресурсы вашего оборудования.
  • Тестирование драйверов: Вы сможете сразу проверить, совместима ли новая система с вашим оборудованием и программным обеспечением.

Как настроить:

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

4. Контейнеризация

Преимущества:

  • Легковесность и скорость: Контейнеры, такие как Docker, позволяют запуска готовых образов ОС без необходимости полной установки.
  • Эффективность: Контейнеры используют ядро основной системы, поэтому их производительность близка к родной ОС.

Пример использования Docker:

# Создание образа в Dockerfile
FROM ubuntu:17.10
RUN apt-get update && apt-get install -y build-essential
WORKDIR /workdir

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

Заключение

Ваша задача — найти оптимальное решение для ваших нужд и особенностей оборудования. Если вам нужен легкий и быстрый вариант, выбирайте USB-накопители или виртуализацию. Для более глубокого оценивания ОС эффективность двуухатной загрузки будет максимальной. Контейнеризация идеально подходит для тестирования приложений и изоляции окружений разработки. Выбор за вами!

Оцените материал
Добавить комментарий

Капча загружается...