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

20

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

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

Тед Кэхолл
источник
2
В основном я делаю это с виртуальными машинами. См. Этот вопрос, чтобы узнать о невероятно быстрой и простой настройке с использованием VirtualBox, на которую вы можете указать ссылку в своем ответе.
Таккат
1
Лично я использую, dockerпотому что ваш контейнер определен с помощью простого для понимания сценария. Вы имеете полный контроль над базовым образом и тем, что вы устанавливаете. Легко обмениваться файлами и устройствами хоста, создавать виртуальные сети контейнеров, выборочно предоставлять порты с аргументами командной строки, вы можете отправлять команды непосредственно в оболочку контейнера и выполнять приложения в контексте контейнера. Например, вы можете попробовать centos userspace с одной docker run -it centos /bin/bash
строкой
8
"Live CD" были большой вещью. В настоящее время это будет живой USB-накопитель.
user253751
1
Учитывая модель обновления Windows 10, маловероятно, что когда-либо появится «Windows 11». Даже если будет существенная перестройка ОС, Microsoft, скорее всего, назовет это как-то иначе.
Стоп Harm Monica
3
В основном у вас есть три варианта: виртуальная машина (VirtualBox или Docker), загрузочная флешка (современная альтернатива живому CD) или двойная загрузка. Выбор между тремя зависит от ваших потребностей, оборудования и опыта.
Шон Бин

Ответы:

26

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

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

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

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

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

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


Если хочешь

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

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

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

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

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

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

связи


sudodus
источник
2
Поскольку на постере установлена ​​работающая Ubuntu (?), Возможна загрузка ISO непосредственно с жесткого диска. Установите ссылки на (новый) ISO, используйте ссылку в grub (добавьте в ваш /etc/grub.d/40_custom) и создайте раздел FAT с каталогами для файлов casper-rw (PERSISTENCE_PATH, чтобы определить, какой из них использовать ). Добавьте «toram», и производительность при загрузке ISO будет эквивалентна (или даже выше), чем при обычной установке на жесткий диск.
ubfan1
2
Да, альтернатива @ ubfan1 хороша, я использовал ее несколько раз. Может быть, это немного сложнее настроить, чем создать USB-Pendrive, но как только он у вас есть, он может хорошо работать :-) Смотрите эту ссылку, help.ubuntu.com/community/Grub2/…
sudodus
2
Установка на отдельное устройство хранения данных - это лучший способ, если вы хотите проверить, как на самом деле новый выпуск ОС ведет себя с вашим оборудованием.
pa4080
Это абсолютно правильный ответ. Попытка протестировать ОС через уровни виртуализации (или, если не дай бог, Бог) в вашей текущей ОС - это все равно, что взять новую машину для «тест-драйва», буксировав ее на прицепе позади вашей машины: конечно, вы можете увидеть как это выглядит , но это просто не даст вам никакого представления о спектакле.
AC
С USB3 это, вероятно, будет работать нормально. Если у вас более старая машина с USB2, загрузка может занять значительно больше времени.
Шон Бин
15

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

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

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

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

Тед Кэхолл
источник
2
Windows может быть запущена внутри виртуальной машины; однако, новые версии настолько тяжелы, что вам понадобится довольно быстрый многоядерный, чтобы его можно было использовать.
Ревери
Виртуальная среда также зависит от поддержки этой ОС. Новые выпуски Windows потребуют внесения изменений в программное обеспечение виртуальной машины для его поддержки, так что это может быть небольшим недостатком. Хотя я ожидаю, что они будут готовиться к новым релизам ;-)
Rinzwind
да - для тестирования нам определенно необходимо обновить решение для виртуализации до самой последней версии, чтобы иметь возможность загружать последние версии ОС.
Таккат
2
KVM работает под управлением Windows 10 и 7 просто отлично. Если под Xen вы ссылаетесь на Citrics Xen Server, он также работает под управлением Windows 10 и 7.
Robby1212
1
@EricDuminil Они были примерно такими же удобными, как и Windows. :)
Майкл Хэмптон
12

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

По крайней мере для образов ISO Ubuntu (и производных, таких как 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, если хотите.

  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
Вот Это Да ! какой сценарий! Я сделал то же самое вручную, просто добавив запись в /etc/grub.d/40_custom и найдя подходящие параметры; Не так уж трудно , учитывая помощь , которую я имел с wiki.archlinux.org/index.php/...
солнцестояния
9

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

Однако у вас есть 2 отдельных варианта использования, которые будут иметь различные решения

1. Попробуйте новый дистрибутив

Распределения в основном определяются упакованными приложениями и средой пользовательского пространства (например, SystemDvs 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

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

crasic
источник
1
Если вам нужны системные контейнеры, вам, вероятно, следует обратить внимание на LXD (намного проще, чем традиционные инструменты пользовательского пространства LXC), а не на Docker (который больше предназначен для контейнеров приложений). Тем не менее, обе они основаны на поддержке ядра LXC / cgroups. См. Также, unix.stackexchange.com/questions/254956/…
Боб
3

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

joeytwiddle
источник
1
Нужно по-настоящему доверять их установочным скриптам .....
mckenzm
Да, есть больше риска, связанного с этим методом. Если вы действительно внимательный человек, вы можете сначала попробовать виртуализацию, а затем установить раздел, и отказаться от первоначальной установки, только если это работает.
Joeytwiddle
Я бы никогда не сделал это снова. Однажды я столкнулся с явно неясной ошибкой, которая уничтожала все зашифрованные разделы, даже те, которые не были частью запрошенной установки. AFAIK эта ошибка не была исправлена.
Майкл Хэмптон
3

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

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

Плюсы :

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

Минусы :

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

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

Плюсы :

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

Минусы :

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

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

Плюсы :

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

Минусы :

  • требует некоторого ноу-хау низкого уровня для правильной настройки
  • Работа с разделами жесткого диска и загрузчиками всегда может испортить текущую настройку (перед загрузкой убедитесь, что у вас есть загрузочная флешка или live CD)
Шон Боб
источник
Если вы выделите альтернативу Docker отдельно от виртуализации в своем посте, я хотел бы отметить ее как ответ, охватывающий все альтернативы. ИМХО, я чувствую, что контейнеры не являются настоящей виртуализацией из-за того, что не работают настоящие полные initсистемы и полные ядра. Контейнеры (докер, LXC и т. Д.) Более легки в ресурсах по сравнению с полной виртуализацией (и т. Д.) ...
Тед Кахолл,
2

QEMU

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

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

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

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

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

QEMU

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 установлена ​​лучше.

CSCameron
источник
Спасибо! Я не слышал об этом варианте. Я посмотрю на это.
Тед Кэхолл
2

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

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

Луис Арриохас
источник
1

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

CSharpQuestions
источник