Pertanyaan Metode untuk mencoba rilis OS baru tanpa mengusahakannya?


Saya ingin mencoba rilis OS baru saat mereka tiba, seperti Ubuntu 17.04 atau Ubuntu 17.10 untuk melihat fitur baru. Saya juga ingin melihat Kubuntu, CentOS atau distro lain (Windows 11 ketika tiba?) - atau mengatur lingkungan pengujian mengetahui saya dapat mengotori mereka dan tidak ingin melakukan ini ke mesin inti saya.

Kumpulan alternatif apa yang ada untuk melakukan ini tanpa mempertaruhkan mesin pengembangan utama saya? Saya tidak mencari perdebatan tentang cara TERBAIK, tetapi alternatif mana yang tersedia.


19
2018-03-07 12:50


asal


Saya kebanyakan melakukannya dengan mesin virtual. Lihat pertanyaan ini untuk panduan ke pengaturan yang sangat cepat dan mudah menggunakan VirtualBox yang mungkin ingin Anda tautkan ke dalam jawaban Anda. - Takkat
Secara pribadi, saya menggunakan docker karena wadah Anda didefinisikan dengan skrip yang mudah dipahami. Anda memiliki kontrol penuh atas gambar dasar dan apa yang Anda pasang. Mudah untuk berbagi file dan perangkat host, membuat jaringan virtual wadah, secara selektif mengekspos port dengan argumen baris perintah, Anda dapat mengirim perintah langsung ke shell kontainer dan menjalankan aplikasi dalam konteks kontainer. Misalnya Anda dapat mencoba centos userspace dengan satu-liner docker run -it centos /bin/bash - crasic
"Live CD" dulu adalah hal yang besar. Saat ini akan menjadi drive USB langsung. - immibis
Mengingat model pembaruan Windows 10, sepertinya tidak akan pernah ada "Windows 11". Bahkan jika ada pembangunan kembali besar-besaran dari OS, Microsoft kemungkinan besar akan menyebutnya sesuatu yang lain. - OrangeDog
Pada dasarnya Anda memiliki tiga pilihan: mesin virtual (VirtualBox atau Docker), flash drive bootable (alternatif modern untuk live CD), atau dual boot. Memilih antara ketiganya tergantung pada kebutuhan, perangkat keras, dan pengalaman Anda. - Sean the Bean


Jawaban:


Alternatif USB

Alternatif USB bagus, kapan

  • Anda ingin menguji kinerja (pada besi kosong)
  • komputer tidak cukup kuat untuk menjalankan sistem dengan baik di mesin virtual

Anda dapat menggunakan USB flashdisk dengan ruang drive minimal 2GB dan membuat file

  • hidup Sistem Ubuntu di dalam flashdisk.

    Boot dari USB flashdisk dan pilih 'Coba Ubuntu' di menu boot (dan sesuatu yang mirip dengan distro linux lainnya). Jika Anda menyimpan data, menginstal program atau mengubah sistem dalam drive langsung (hanya untuk hidup), itu akan tidak selamat mati atau reboot.


Jika Anda menghendaki

  • coba Ubuntu dengan cara yang lebih maju atau
  • simpan data, instal program atau tweak sistem dan
  • Anda memiliki / mendapatkan USB flashdisk cepat minimal 4 GB,

Anda bisa membuat

  • hidup terus-menerus Sistem Ubuntu

atau jika Anda memiliki / mendapatkan USB flashdisk cepat minimal 16 GB, Anda dapat membuat

  • diinstal Sistem Ubuntu (seperti dipasang di drive internal, tetapi di USB flashdisk).

    Sistem yang terinstal dalam drive USB stabil dan fleksibel, dapat terus diperbarui dan disesuaikan tanpa batas. Dengan cara ini, itu lebih baik daripada sistem live persisten. Ini portabel antara komputer, jika Anda dapat menghindari driver proprietary, tetapi sistem live persisten lebih portabel.

Tautan



25
2018-03-07 14:48



Karena poster memiliki instalasi Ubuntu (?) Yang berjalan, boot ISO secara langsung dari hard disk juga merupakan kemungkinan. Atur tautan ke ISO (baru), gunakan tautan di grub (tambahkan ke /etc/grub.d/40_custom), dan buat partisi FAT dengan direktori untuk file casper-rw (PERSISTENCE_PATH untuk mengidentifikasi yang mana yang akan digunakan ). Tambahkan "toram" dan kinerja boot ISO setara (atau bahkan lebih cepat) daripada menginstal hard disk normal. - ubfan1
Ya, alternatif @ ubfan1 bagus, saya telah menggunakannya beberapa kali. Mungkin itu sedikit lebih rumit untuk mengatur daripada membuat USB flashdisk, tetapi setelah Anda memilikinya, itu bisa bekerja dengan baik :-) Lihat tautan ini, help.ubuntu.com/community/Grub2/… - sudodus
Instalasi pada perangkat penyimpanan terpisah adalah cara terbaik ketika Anda ingin menguji bagaimana sebenarnya rilis OS baru berperilaku dengan perangkat keras Anda. - pa4080
Ini benar-benar jawaban yang benar. Mencoba untuk menguji OS melalui lapisan virtualisasi (atau Docker, God forbid) pada OS Anda saat ini seperti mengambil mobil baru untuk "test drive" dengan menariknya di trailer di belakang mobil Anda saat ini: tentu, Anda agak bisa melihat apa itu terlihat seperti, tetapi itu tidak akan memberi Anda gambaran tentang kinerja. - A C
Dengan USB3, ini mungkin akan berfungsi ok. Jika Anda memiliki mesin yang lebih tua dengan USB2, mungkin akan terasa lebih lama untuk memuat. - Sean the Bean


Salah satu cara untuk menguji distro baru dan versi OS adalah dengan virtualisasi. Ini tidak memerlukan ruang untuk PC / keyboard / video / mouse tambahan atau adaptor untuk menjalankan beberapa PC dengan satu keyboard, video, mouse. Hanya membutuhkan satu PC dan beberapa perangkat lunak virtualisasi.

Ini mengasumsikan bahwa Anda memiliki mesin dengan CPU multi-core yang mampu melakukan virtualisasi dan jumlah memori yang masuk akal. Saya akan merekomendasikan setidaknya 8GB memori dengan 16GB lebih baik jika Anda memilikinya.

Jika Anda menjalankan Ubuntu dan hanya ingin mencoba distro Linux (saya tidak percaya Windows akan bekerja), Anda dapat menggunakan perangkat lunak virtualisasi gratis yang dikemas dalam Ubuntu: KVM atau Xen. Keduanya bekerja dengan baik, GRATIS, dan dapat menjalankan berbagai distro Linux. Namun, alat untuk mengelola VM agak kurang. Oracle memiliki versi gratis alat virtualisasi yang disebut VirtualBox dan tentu saja selalu ada produk VMWare komersial. Baik VirtualBox dan VMWare juga dapat menjalankan Ubuntu di atas mesin Windows jika itu adalah desktop pilihan Anda.

Dengan menggunakan manajer VM, Anda akan dapat menambahkan distro baru ketika mereka keluar, mengujinya, bermain dengan fitur-fitur baru, dan kemudian membuangnya ketika rilis baru muncul. Mereka hanya memakan ruang disk saat tidak berjalan, sehingga mereka bahkan tidak perlu dibuang kecuali jika menjadi ketat. Dengan seorang manajer VM, mudah untuk menyeimbangkan 5, 10 atau lebih distro pada mesin dan dapat mem-boot mereka dan mengambilnya sesuai kebutuhan. Jika Anda cukup beruntung untuk memiliki mesin 32GB atau 64GB, Anda bahkan dapat menjalankan semuanya secara paralel.


15
2018-03-07 12:50



Windows dapat dijalankan di dalam VM; Namun, versi yang lebih baru begitu berat sehingga Anda membutuhkan multicore yang cukup cepat agar dapat digunakan. - ravery
Lingkungan virtual juga bergantung pada dukungan untuk OS itu. Rilis Windows baru akan membutuhkan perubahan pada perangkat lunak mesin virtual untuk mendukungnya sehingga mungkin ada sedikit kemunduran. Meskipun saya mengharapkan mereka mempersiapkan rilis baru ;-) - Rinzwind
ya - untuk pengujian kita pasti perlu meningkatkan solusi virtualisasi ke rilis terbaru agar dapat mem-boot rilis OS terbaru. - Takkat
KVM menjalankan Windows 10 dan 7 dengan baik. Jika oleh Xen Anda mengacu ke Citrics Xen Server, itu juga menjalankan windows 10 & 7 juga. - Robby1212
@EricDuminil Mereka tentang dapat digunakan seperti Windows umumnya. :) - Michael Hampton


Bahkan lebih cepat dan alternatif yang lebih murah jawaban sudodus Anda dapat melakukan boot langsung dari image drive yang dapat di-boot mengajukan alih-alih drive khusus (USB).

Setidaknya untuk gambar ISO Ubuntu (dan turunan seperti Linux Mint), resep berikut ini berfungsi. Distribusi lain mungkin perlu tweaking lebih lanjut.

  1. Menyimpan image drive yang dapat di-boot (s) dalam format ISO1 di suatu tempat sebagai file pada drive penyimpanan internal Anda (s)2.

  2. Tambahkan file “bagian” Grub, e. g. 35_isofiles, dengan kontennya

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

    untuk /etc/grub.d dan membuatnya bisa dieksekusi.

    Edit jalur file di baris yang ditunjukkan untuk menyesuaikan kebutuhan Anda. Anda dapat menambahkan beberapa jalur dan / atau pola glob Bash jika Anda mau.

  3. Jadikan file dapat dieksekusi:

    sudo chmod a+x /etc/grub.d/35_isofiles
    
  4. Pastikan bahwa Menu Grub diaktifkan.

  5. Perbarui konfigurasi Grub:

    sudo update-grub
    
  6. Reboot dan pilih entri menu Grub yang baru ditambahkan untuk boot dari file gambar masing-masing.


1 Jenis sistem file lainnya adalah mungkin tetapi mungkin memerlukan perintah Grub lainnya dan tweaking parameter boot.

2 LVM, RAID, dan sistem file terenkripsi seharusnya berfungsi berkat perpustakaan utilitas Grub, tetapi saya tidak mengujinya.


12
2018-03-08 00:23



Wow ! apa naskahnya! Saya membuat hal yang sama secara manual hanya dengan menambahkan entri di /etc/grub.d/40_custom dan menemukan parameter yang baik; Tidak sulit mengingat bantuan yang saya miliki wiki.archlinux.org/index.php/… - solsTiCe


Virtualisasi sejauh ini adalah yang paling sederhana.

Namun Anda memiliki 2 kasus penggunaan terpisah di sini, yang akan memiliki solusi berbeda

1. Coba distro baru

Distribusi pada dasarnya ditentukan oleh aplikasi paket, dan lingkungan userspace (misalnya SystemD vs init untuk boot)

Jika Anda ingin "mengevaluasi" UIX dari distribusi yang berbeda, secara kualitatif, maka saya akan merekomendasikan virtualisasi full-blown di mana Anda menginstal OS secara keseluruhan dan mengevaluasi kegunaannya. Ini tercakup secara memadai dalam jawaban lain.

Jika Anda hanya membutuhkan lingkungan userspace untuk pengujian kemudian baca terus.

2. Menguji dan "membuang-buang contoh" di lingkungan yang berbeda

Lebih mudah, lebih murah, dan lebih cepat menggunakan containerization, suatu bentuk virtualisasi ringan yang menggunakan kernel untuk membuat lingkungan yang terkotak-kotak.

Sebuah wadah berbagi sumber daya kernel dengan Host, tetapi sebaliknya memiliki sistem file root sendiri, userspace, jaringan stack, dll. Hal ini dapat dipikirkan, secara konseptual sebagai chroot pada steroid. Namun, karena kernel dibagi virtualisasi adalah "tipis", yang berarti bahwa untuk sebagian besar tujuan praktis itu berjalan pada kecepatan yang sama dengan OS host.

Ada sistem wadah yang biasa digunakan disebut docker. Docker memiliki gambar standar untuk hampir semua distribusi linux yang Anda inginkan, dan berjalan di windows (namun, gambar windows hanya berfungsi di windows, gambar linux bekerja pada keduanya). Ini memiliki fitur tambahan yang berguna untuk menghemat ruang dan kinerja.

Ada juga alternatif open source asli untuk linux seperti LXC (yang dibangun ke kernel!), yang dapat digunakan untuk banyak hal yang sama (tetapi dengan lebih banyak konfigurasi yang diperlukan).

Contoh sederhana dari pengujian atau membangun lingkungan di docker

# Dockerfile

FROM ubuntu:17.10

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

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

Kemudian dari baris perintah, kompilasi proyek Anda atau tes di lingkungan itu dalam berbagai cara

"login" dan kompilasi dalam lingkungan, jalankan tes, dll. Dengan asumsi Anda berada di direktori sumber proyek Anda

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

Gunakan sebagai satu-off

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

Anda bahkan dapat melewatkan variabel lingkungan

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

Atau mulailah contoh yang gigih dan salin file ke dalamnya secara eksplisit

$ 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

Ada ratusan pola penggunaan lainnya, namun, definisi gambar seperti skrip, gambar yang dapat diperluas, dan penggunaan baris perintah membuatnya sangat menarik untuk pengembangan, pengujian, dan bahkan lingkungan penyebaran


9
2018-03-07 18:35



Jika Anda ingin wadah sistem Anda mungkin harus melihat LXD (jauh lebih sederhana daripada alat-alat LXC userspace tradisional) daripada Docker (yang dirancang lebih untuk wadah aplikasi). Yang mengatakan, keduanya membangun di atas dukungan kernel LXC / cgroups. Lihat juga, unix.stackexchange.com/questions/254956/… - Bob


Saya menyimpan partisi terpisah pada drive saya (merekomendasikan minimal 20GB, lebih banyak jika Anda bisa).

Saya dapat menginstal ke partisi itu setiap OS yang ingin saya uji, dan kemudian reboot ke dalamnya.

Jika semuanya bekerja dengan baik, saya dapat menghentikan partisi OS asli saya, dan akhirnya menggunakan ulang.

Tetapi jika OS baru tidak bekerja untuk saya (masalah driver, perangkat lunak tidak tersedia) maka saya bisa saja reboot kembali ke OS lama saya, dan bersyukur aku masih memilikinya!

Catatan:

  • Dengan cara ini Anda benar-benar dapat menguji OS baru di perangkat keras Anda, sehingga Anda dapat mendeteksi masalah driver.

  • Tetapi jika Anda hanya ingin mengalami bagaimana OS baru terasa, salah satu solusi virtualisasi lainnya mungkin lebih cepat, lebih mudah, dan lebih aman bagi Anda.

  • Saya menyimpan /home pada partisi terpisah yang besar, sehingga tidak bergantung pada dua OS-es. (Jangan memformat partisi itu secara tidak sengaja!)

  • Tapi saya merekomendasikan Anda tidak gunakan yang dibagikan /home partisi saat pengujian. Jika dua OS-es memiliki versi perangkat lunak yang sangat berbeda, aplikasi mungkin mengubah file konfigasinya dengan cara yang tidak sesuai untuk OS lainnya. Jadi, simpan file konfigurasi terpisah untuk setiap OS, sampai Anda berkomitmen untuk salah satunya. (*) Lihat di bawah

  • Anda tidak perlu membuat partisi swap kedua. Anda dapat menggunakan partisi swap yang sama untuk kedua OS.

  • Tentu saja kamu perlu hati-hati partisi mana yang Anda format / pasang. Jadi lakukan pencadangan, dan catat ID dan ukuran partisi Anda (dipisahkan, p, q), sebelum menginstal OS baru.

  • Agar dual boot antara kedua OS, Anda perlu grub untuk mendeteksi keduanya. Menurut pengalaman saya, grub selalu melakukan ini secara otomatis. (Tapi lilo digunakan untuk menjadi cerita yang berbeda!)

  • Seringkali mungkin untuk menjalankan perangkat lunak dari satu OS saat Anda berada di OS lain. Saya berhasil menggunakan itu sudo chroot /mnt/original_os, meskipun itu sebuah biola untuk mengatur: Saya harus mengikat-mount /dev dan /proc.

Rekor saya adalah 4 OS Linux pada satu mesin, dan Windows XP. Saya terbiasa masuk ke Gentoo untuk kecepatan dan kesenangan, tapi jalankan server web dan mailserver saya di chroot ke OS Debian tepercaya.

(*) Anda dapat mengonfigurasi folder rumah yang berbeda untuk setiap OS, dengan mengedit /etc/passwd. Atur rumah Anda /home/you/arch-test kemudian targetkan partisi rumah bersama di /etc/fstab dan reboot. Anda dapat men-symlink beberapa dotfile untuk dibagikan di kedua OS, sementara membiarkan yang lain menjadi OS-specific.


3
2018-03-08 02:22



Perlu benar-benar mempercayai skrip pemasangan mereka ..... - mckenzm
Ya, ada lebih banyak risiko yang terkait dengan metode ini. Jika Anda benar-benar orang yang berhati-hati, Anda dapat mencoba virtualisasi terlebih dahulu dan kemudian instalasi partisi, dan hanya meninggalkan instalasi asli Anda jika itu berhasil. - joeytwiddle
Saya tidak akan pernah melakukan ini lagi. Saya pernah mengalami bug d-i yang tampaknya tidak jelas yang menghancurkan setiap partisi terenkripsi, bahkan yang bukan bagian dari instalasi yang diminta. AFAIK bug ini belum diperbaiki. - Michael Hampton


Pada dasarnya Anda memiliki tiga opsi: virtualisasi (VirtualBox atau Docker), flash drive yang dapat di-boot (alternatif modern untuk live CD), atau dual boot dari partisi. Memilih antara ketiganya tergantung pada kebutuhan, perangkat keras, dan pengalaman Anda. Beberapa jawaban lain membahas lebih detail tentang pendekatan tertentu, tetapi inilah perbandingan tingkat tinggi untuk memberi Anda kerangka kerja untuk memutuskan di antara mereka.

1. Virtualisasi

Pro:

  • cukup mudah diatur
  • tidak akan mempengaruhi lingkungan dev utama Anda
  • Anda dapat dengan mudah mengatur sebanyak yang Anda mau, selama Anda memiliki ruang hard drive - bahkan membuat foto sebelum membuat perubahan besar, dan hapus saja ketika Anda selesai dengan mereka

Cons:

  • membutuhkan perangkat keras yang layak untuk menjalankan dua atau lebih OS secara bersamaan
  • kinerja dibatasi oleh sumber daya yang dialokasikan ke VM, jadi Anda benar-benar tidak akan mendapatkan ide yang akurat tentang bagaimana versi OS yang Anda uji dibandingkan dengan OS utama Anda
  • karena perangkat keras semuanya tervirtualisasi, Anda tidak akan mendapatkan kepekaan ketersediaan driver / kompatibilitas yang akurat

2. Drive flash yang dapat di-boot

Pro:

  • cukup mudah disiapkan
  • tidak akan mempengaruhi lingkungan dev utama Anda
  • kinerja umumnya baik dengan USB3 flash drive, meskipun pasti ada beberapa variasi tergantung pada kualitas flash drive (USB2 akan lebih lambat - saya akan menghindarinya untuk tujuan ini)
  • menggunakan perangkat keras Anda yang sebenarnya (selain perangkat penyimpanan), sehingga Anda dapat melihat seberapa baik ia bermain dengan driver dan lainnya
  • Anda dapat dengan mudah mengatur sebanyak yang Anda mau, asalkan Anda memiliki cukup flash drive (dan Anda dapat memformat ulang dengan mudah jika Anda ingin mencoba yang lain)

Cons:

  • membutuhkan satu (atau lebih) flash drive yang didedikasikan untuk tujuan ini
  • kinerja tergantung pada kualitas flash drive yang Anda gunakan

3. Boot ganda dari partisi

Pro:

  • memberi Anda ide terbaik tentang kinerja, kompatibilitas driver, dll, karena berjalan pada perangkat keras yang sama persis dengan OS utama Anda
  • dapat mengatur beberapa sekaligus, asalkan Anda memiliki ruang hard drive (Anda hanya perlu mengatur partisi terpisah untuk masing-masing)

Cons:

  • membutuhkan beberapa pengetahuan tingkat rendah untuk mengatur dengan benar
  • mengotak-atik partisi hard drive dan bootloader selalu memiliki beberapa potensi untuk menggigit setup Anda saat ini (pastikan Anda memiliki flash drive bootable atau live CD yang berguna sebelum Anda memulai)

3
2018-03-09 16:19



Jika Anda memisahkan alternatif Docker sebagai terpisah dari virtualisasi dalam posting Anda, saya akan bersedia untuk menandainya sebagai jawaban yang mencakup semua alternatif. IMHO, saya merasa wadah virtualisasi tidak benar karena tidak berjalan benar penuh init sistem dan kernel penuh. Kontainer (buruh pelabuhan, LXC, dll.) Lebih ringan pada sumber daya dibandingkan dengan virtualisasi penuh (dll) ... - Ted Cahall


QEMU

QEMU adalah solusi virtualisasi yang secara teoritis memecahkan persyaratan pertanyaan ini dengan murah dan sederhana.

Ini memungkinkan drag and drop boot file sistem operasi iso di dalam Linux atau Windows host.

Ini juga memungkinkan booting dari hard drive Live USB, dalam sistem host dan menggunakan persistensi jika tersedia.

Tidak perlu membangun hard disk virtual seperti dengan VBox.

QEMU tersedia sebagai aplikasi baris perintah untuk Linux, Windows dan OS lainnya. Ini juga tersedia sebagai GUI dan disertakan dengan MultiBootUSB Versi Linux dan Windows http://multibootusb.org/.

QEMU

QEMU juga dapat dijalankan dari Virtual Machine Manager, yang lebih cepat dari MBUSB tetapi tidak drag dan drop.

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

Untuk pengujian OS jangka panjang sistem yang diinstal VirtualBox lebih unggul.


2
2018-03-11 00:14



Terima kasih! Saya belum mendengar opsi ini. Saya akan melihatnya. - Ted Cahall