Penafian:
Sekarang saya gunakan virt-manager
untuk membuat dan mengelola VM saya dan itu benar-benar penyelamat. Ini dapat digunakan dari jarak jauh (dari mesin ketiga, biasanya workstation Anda) jika tuan rumah tidak memiliki tampilan grafis.
Kemunculan vnc
dalam tutorial instalasi yang saya temukan membuat saya berpikir bahwa prosedur "yang direkomendasikan" memerlukan X stuff baik pada host, guest atau keduanya. Benar-benar tidak. Kesalahanku. Jika Anda berada dalam situasi yang sama, pikirkan dua kali sebelum mencoba menginstal VM dari baris perintah.
Saya mencoba untuk menginstal VM Debian di host Debian menggunakan virt-install
dan saya tidak tahu bagaimana menyampaikannya gambar .iso.
virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial'
Starting install...
Retrieving file info... | 160 B 00:00 ...
ERROR Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start prod
otherwise, please restart your installation.
root@versailles:/etc#
Solusi yang saya lihat tampak agak bengkok, seperti menggunakan apache untuk menyajikan gambar .iso secara lokal seolah-olah itu dari tempat yang jauh.
- Linux Mint 14: instal Ubuntu 12.10 Server dalam KVM via CLI (no GUI)
- [Pengguna Xen] menginstal vm dengan virt-install (Ini adalah Xen tetapi sepertinya itu adalah masalah yang sama.
Saya tidak percaya itu rumit. Apakah itu?
man virt-install
mengatakan:
If you want to use those options with CDROM media, you have a few options:
* Run virt-install as root and do --location ISO
* Mount the ISO at a local directory, and do --location DIRECTORY
* Mount the ISO at a local directory, export that directory over local http, and do --location http://localhost/DIRECTORY
Bukankah ini yang saya lakukan?
Seseorang mengatakan dia memindahkan .iso ke / cdrom dan itu berhasil tetapi saya tidak mengerti persis apa yang dia lakukan dan saya tidak bisa mereproduksi.
Saya tidak bisa menggunakan --cdrom
sebagai gantinya --location
dalam pertanyaan ini karena --extra-args
hanya berfungsi jika ditentukan dengan --location
.
virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --cdrom=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial'
ERROR --extra-args only work if specified with --location. See the man page for examples of using --location with CDROM media
Edit:
Masuk dengan --debug
virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial' --debug
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:187) Launched with command line: /usr/share/virt-manager/virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args=console=tty0 console=ttyS0,115200n8 serial --debug
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:195) Requesting libvirt URI qemu:///system
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:199) Received libvirt URI qemu:///system
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:193) Requesting virt method 'default', hv type 'kvm'.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:432) Received virt method 'kvm'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:433) Hypervisor name is 'hvm'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:476) DISPLAY is not set: defaulting to nographics.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (guest:208) Setting Guest.os_variant to 'debianwheezy'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (diskbackend:171) Path '/srv/vm' is target for pool 'srv-kvm'. Creating volume 'prod.qcow'.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (connection:228) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/media/cdrom0/debian-8.0.0-amd64-netinst.iso'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:551) Guest.has_install_phase: True
Starting install...
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (distroinstaller:417) Using scratchdir=/var/lib/libvirt/boot
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:204) Preparing mount at /var/lib/libvirt/boot/virtinstmnt.srz86f
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:214) mount cmd: ['/bin/mount', '-o', 'ro,loop', '/home/jerome/debian-8.0.0-amd64-netinst.iso', '/var/lib/libvirt/boot/virtinstmnt.srz86f']
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:302) Finding distro store for location=/home/jerome/debian-8.0.0-amd64-netinst.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/.treeinfo
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:325) Prioritizing distro store=<class 'virtinst.urlfetcher.DebianDistro'>
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/daily/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Fedora
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:99) Fetching URI: /var/lib/libvirt/boot/virtinstmnt.srz86f/.disk/info
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:110) Saved file to /var/lib/libvirt/boot/virtinst-info.lZMVqL
Retrieving file info... | 160 B 00:00 ...
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:1016) Regex didn't match, not a ALT Linux distro
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/install/netboot/version.info
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/SL
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/directory.yast
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/CentOS
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/VERSION
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Server
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Client
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/RedHat
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/images/pxeboot/vmlinuz
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/images/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/boot/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/netboot/mini.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/install/images/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:225) Cleaning up mount at /var/lib/libvirt/boot/virtinstmnt.srz86f
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:234) File "/usr/share/virt-manager/virt-install", line 876, in <module>
sys.exit(main())
File "/usr/share/virt-manager/virt-install", line 870, in main
start_install(guest, continue_inst, options)
File "/usr/share/virt-manager/virt-install", line 588, in start_install
fail(e, do_exit=False)
File "/usr/share/virt-manager/virtinst/cli.py", line 234, in fail
logging.debug("".join(traceback.format_stack()))
[mer., 03 juin 2015 17:46:12 virt-install 12991] ERROR (cli:235) Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:237)
Traceback (most recent call last):
File "/usr/share/virt-manager/virt-install", line 560, in start_install
dom = guest.start_install(meter=meter, noboot=options.noreboot)
File "/usr/share/virt-manager/virtinst/guest.py", line 384, in start_install
self._prepare_install(meter, dry)
File "/usr/share/virt-manager/virtinst/guest.py", line 277, in _prepare_install
util.make_scratchdir(self.conn, self.type))
File "/usr/share/virt-manager/virtinst/installer.py", line 201, in prepare
self._prepare(guest, meter, scratchdir)
File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 444, in _prepare
self._prepare_kernel_url(guest, fetcher)
File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 347, in _prepare_kernel_url
store = urlfetcher.getDistroStore(guest, fetcher)
File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 346, in getDistroStore
fetcher.location))
ValueError: Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:248) Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start prod
otherwise, please restart your installation.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start prod
otherwise, please restart your installation.
Ini bekerja dengan --location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
tetapi bukankah agak memalukan untuk melakukan ini ketika gambar iso tersedia secara lokal?
Kehilangan kemampuan telusur: Anda tidak dapat mereproduksi nanti dengan memastikan Anda mendapatkan sumber yang sama persis.
Penggunaan bandwidth yang berlipat ganda dari server / mirror.
Perlu akses internet.
Lebih lambat.
Jawaban:
virt-install
mencoba mengekstrak file kernel dan initrd dari image ISO. Dengan--debug
Anda dapat melihat seluruh aktivitasnya termasuk pemasangan loop, mencari file-file itu, dll.Saya kira
virt-install
tidak mendukung gambar ISO netinst Debian dengan--location
(tapi entah bagaimana Ubuntu didukung?).Untuk mem-boot kernel dengan
--extra-args
,virt-install
perlu memiliki kernel dan file initrd yang sesuai.--cdrom
cukup lampirkan ISO ke drive CD tamu, itu tidak cukup untuk bekerja dengannya--extra-args
.Jika Anda ingin menggunakan
--extra-args
, saya sarankan Anda untuk menggunakan file kernel / initrd "netboot" dengan menentukan URL pemasang Debian dari mirror terdekat Anda, seperti yang--location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
dijelaskan dalam manual.sumber
Metode ini bekerja untuk saya:
sumber
Perbedaannya terletak pada file iso yang digunakan.
Ini tidak terkait dengan cara
virt-install
digunakan (--location
digunakan dengan URL http dibandingkan--location
digunakan dengan path ke file iso lokal).Berikut adalah perintah yang berfungsi ketika menggunakan repositori online Debian sebagai
--location
(termasuk mendapatkan output untuk menyelesaikan instalasi sampai boot pertama (maka dua langkah lain diperlukan untuk akhirnya masuk ke VM baru, tapi itu cerita lain):Anda dapat mengambil perintah yang tepat sama, tetapi menggunakan yang disebutkan di atas berkas Centos ISO sebagai
--location
, dan itu bekerja dengan baik (kecuali bahwa koneksi ke konsol serial tampaknya tidak bekerja pada awalnya, tetapi pada prinsipnya dimulai instalasi menggunakan --location dan file ISO):Output adalah:
Tetapi jika Anda menggunakan file ISO Debian untuk
--location
, Anda mendapatkan kesalahan:IMHO ini membuktikan bahwa ada sesuatu yang hilang / sesuatu yang "salah" dengan ISO Debian (tidak yakin pada saat saya mendapatkannya, tetapi mungkin seseorang dapat mengunduh yang baru dan mengulangi pengujian ...)
sumber
virt-install
dapat "berjalan" struktur direktori mencariinitrd.img
dankernel.img
. Dengan ISO lokal,virst-install
harus terlebih dahulumount
ISO berjalan di struktur direktori, dan tentu saja,mount
membutuhkan akses root untuk me-mount lokasi yang arbitrer (bukanfstab
).--location
untuk semua 3. Centos-6virt-install
tidak mengenali struktur direktori Ubuntu , dan--debug
memberi tahu Anda hal itu. Level teratas Centos-7 termasuk a.treeinfo
, yang merupakan salah satu hal yangvirt-install
dicari, sehingga mencoba untuk mem-bootnya. Tapi gagal juga. Saya heran apa tumpukan perangkat lunak ini.Hal berikut ini berfungsi untuk saya menginstal Debian 10 dari sistem host Ubuntu 16.04:
sumber
Ini jelek, terutama jika Anda ingin menggunakan file kickstart, tapi inilah yang saya lakukan untuk menjalankan proses ini:
Perbedaan mendasar antara apa yang saya lakukan dan apa yang Anda lakukan adalah bahwa saya menggunakan
--location
tag (-l
singkatnya) untuk menunjuk ke iso saya.sumber
RHCE2
.baru-baru ini mengalami masalah ini. Cukup gunakan penginstal jarak jauh dengan --lokasi. Saya harus menekankan bahwa tergantung pada versi virsh Anda, tautan untuk penginstal jarak jauh mungkin sudah usang di halaman manual.
Saya baru saja mengikuti contoh ini dan semuanya berjalan dengan lancar: https://www.packet.com/developers/guides/kvm-and-libvirt/
Dalam kasus saya, saya mengubah 'xenial' untuk 'bionic' di http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/ dan instalasi berjalan. Akan menggunakan metode ini setiap saat mulai sekarang.
sumber