Arkiv for kategorien "Linux"

Sette opp kvm for Ubuntu 10.04

Kvm er det foretrukne verktøyet for virtualisering på Ubuntu. Med unntak av adhoc virtualisering eller for virtualisering på arbeidsstasjonanar der i hvertfall eg foretrekk VirtualBox. Virtualisering med kvm på ubuntu er ikkje så veldig vanskeleg. Her er ei lita rettleiing på korleis det kan settast opp. Dersom du er usikker på om cpuen din støtter virtualisering kan du sjekke dette med denne komandoen:

egrep '(vmx|svm)' --color=always /proc/cpuinfo

Installasjon av kvm

Installer nødvendige pakker:

sudo apt-get install kvm libvirt-bin bridge-utils

* kvm er kvm :-).
* libvirt-bin er administrasjonsverktøy for kvm.
* bridge-utils er for å sette opp nettverksbridge mellom dei virtuelle maskinene og det fysiske nettverkskortet.

Dersom du skal bruke ein vanleg brukar til å administrere kvm må den leggast til i libvirtd gruppa:

sudo usermod -G libvirtd -a <brukar>

Logg ut og inn igjen og kjør deretter følgande kommando for å sjå at kvm er riktig satt opp så lang:

$ virsh -c qemu:///system list
 Id Name                 State
----------------------------------

$

Dersom du får noko feilmeldinger her bør du fiksa det. Sjekk at du har skrivetilgang til /var/run/libvirt/libvirt-sock.

Oppsett av bridge

Rediger /etc/network/interfaces så den ser ut som under. Du må sjølvsagt bytte ut iper og slikt med det som passer for ditt nettverk.

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
 address 192.168.10.10
 network 192.168.10.0
 netmask 255.255.255.0
 broadcast 192.168.10.255
 gateway 192.168.10.1
 bridge_ports eth0
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0

Då er det bare å restarte nettverksinterfacene. Dersom du ikkje sitt lokalt på maskina er det bare å krysse fingrene og håpe du har har gjort alt riktig.

sudo /etc/init.d/networking restart

Litt til slutt…

Det finnes fine verktøy for å sette opp nye virtuelle maskiner (f.eks. ubuntu-vm-builder). Eg er imidlertid så sær(?) at eg foretrekk å gjera det manuelt slik eg har beskrive det i ei tidlegare posting.

Ssh-autentisering utan passord

Morro med LensbabySsh (secure shell) er ein protokoll som blant anna gjev deg kryptert tilgang til andre datamaskiner og servere. Den blir stort sett installert som standard på Linux- og Unixmaskiner men finnes også for Windows. Den vanlegaste bruken av den er som erstatning for telnet, rsh og rlogin der den gjev deg tilgang til shellet (kommandolinja) på serveren. Det vanlegaste er å autorisere seg med brukarnamn og passord mot ssh serveren. Ein annan (og meir elegant?) måte er å nytta nøkkelpar (privat og offentleg nøkkel) til autentisering. Dette krev at du lager ein privat nøkkel som du har på klienten og ein offentleg nøkkel du legg på serveren du skal logga deg på. Det er svært viktig at du held den private nøkkelen hemmeleg ettersom den vil erstatta passordet ditt. For å laga eit nøkkelpar køyrer du kommandoen:

ssh-keygen -t dsa

Du vil her få spørsmål om du vil ha passord på den private nøkkelen din. Dersom du vel det må du skriva inn passordet ditt kvar gang du bruker nøkkelen, eller du kan bruka ein ssh-agent til å hugsa passordet. Ssh-keygen vil laga to nøkler; ~/.ssh/id_dsa (privat nøkkel) og ~/.ssh/id_dsa.pub (offentleg nøkkel). Den offentlege nøkkelen må kopierast over på maskina du skal logga deg (foobar) på for eksempel følgjande måte:

cat ~/.ssh/id_dsa.pub | ssh brukar@foobar: "cat - >> ~/.ssh/authorized_keys"

eller du kan bruka ssh-copy-id dersom du har den installert:

ssh-copy-id brukar@foobar

Du kan no logga deg på den andre maskina med ssh utan å bruka passord dersom du laga den private nøkkelen utan passord eller om du bruker ein ssh-agent.

Korleis rescanne scsi-bussen

Av og til bytter eg ut utstyr (hotswap) eller set inn noko nytt  i ein linux boks medan den er i drift. Gjerne fiber channel-, scsi-, sas-, sata- eller esata-utstyr som harddisker, SAN, eller tapestasjoner. Usb utstyr klarer seg som kjent stort sett sjølv. Dersom dette ustyret nyttar scsi-drivarar, noko det meste gjer no etter kvart, treng eg bare å scanne scsi bussen på nytt for at systemet skal finne dette. Dette kan gjerast ved å kjøyra kommandoen ‘cat «- – -» > /sys/class/scsi_host/hostX/scan‘ der X er hostnummeret til scsikontrolleren.  For å forenkla dette har eg laga eit lite shellscript, scsiscan.sh, som gjer dette.

Opprette ny virtuell maskin i kvm

Eg kjøyrer kvm på Ubuntu-serveren min heime. For dei uinnvidde kan kvm (Kernel-based Virtual Machine) forklarast som ein måte å kjøre fleire virtuelle datamaskiner på ei datamaskin. Det finnes masse dokumentasjon på korleis du set det opp, så det har eg ikkje tenkt å skriva noko om no. Diverre er det så sjeldan eg oppretter nye virtuelle maskiner at eg er litt usikker på detaljane kvar gang eg gjer det og det er sikkert fleire enn meg som slit med det. Difor har eg laga ein liten «howto» på korleis ein kan gjere det på den manuelle måten med libvirt og virsh. Det er også ein enkel forklaring på nokre av parameterane. Den forutsett litt kunskap om  kvm, virsh og xml (og sjølvsagt Linux).

Det er fleire måter å opprette diskfiler på. Her er eit par eksempel:

qemu-img create -f qcow2 /kvm/foobar/disk0.qcow2 32G
dd if=/dev/zero of=/kvm/foobar/disk1.img count=0 seek=$[32*1024*1024*2]

Opprett ei xml fil med beskrivelse av den virtuell maskina. Fila lagres som foobar.xml:

<domain type='kvm'>
  <name>foobar</name>
  <uuid>ec5293c1-9949-44d8-b1d0-3c8dd7336e63</uuid>
  <memory>2097152</memory>
  <currentMemory>2097152</currentMemory>
  <vcpu>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-0.11'>hvm</type>
    <boot dev='cdrom'/>
  </os>
  <features>
    <acpi/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='cdrom'>
      <source file='/kvm/foobar/debian-504-amd64-netinst.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
    </disk>
    <disk type='file' device='disk'>
      <source file='/kvm/foobar/disk0.qcow2'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <disk type='file' device='disk'>
      <source file='/kvm/foobar/disk1.qcow2'/>
      <target dev='vdb' bus='virtio'/>
    </disk>
    <interface type='bridge'>
      <mac address='52:54:de:ad:be:ef'/>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5920' autoport='no' listen='192.168.10.50'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
    </video>
  </devices>
</domain>

Denne xml fila må sjølvsagt tilpassas dine behov. Det meste er sjølvforklarande, men det er nokre verdiar som alltid bør endrast:
* <name>: namnet på vm-en.
* <uuid>: bruk kommandoen uuidgen for å generere ein unik id.
* <source>: sti og filnamn til diskfila.
* <mac address>: denne må være unik. Heximal (0-9,a-f).
* <graphics>: port=’unik port på 59xx’, listen=’ip til serveren kvm kjører på’.

Då må fila lesast inn i med vrish. Kjøyr kommandoen virsh define foobar.xml og start med virsh start foobar. Då er det bare å ta favoritt vnc-klient, logge seg på og starte installasjonen. Når operativsystemet er ferdig installert må <boot dev=’cdrom’> endrast til <boot dev=’hd’> for at den skal boote frå diskimaget. Dette kan enklart gjerast ved å kjøre virsh edit foobar, gjere nødvendige endringer. Restart vm’en.

Ser på gamle filmer

Meg for 14 år sidan.

Dei siste dagane har eg digitalisert ein del gamle vhs kassettar eg har liggande. Mykje morro å sjå der, og alle ser jo så unge ut på desse opptaka…

For å få dette til har eg funne fram litt kabler og anna utstyr frå skuffer og skap og det eg mangla (videospelar) har eg lånt. Å komme i gang var gjort på fem minutt; fann fram ein Elgato eyetv hybrid usb-tv-mottaker som eg hadde liggande og plugga den i Mac Minien. Plugga i videospelar og installerte siste versjon av EyeTV og så var det bare å starte videomaskina og sette macen på opptak. Kvaliteten blei overraskande bra også, i allefall til å vera frå billege vhs kassetter.

Ein time video tar ca 3GB, og tenkte eg skulle brenne desse filmane på dvd. Ting pleier å vera ganske enkelt på macen, men her var det ikkje rett fram. iDvd ville ikkje forminska filmane så mykje som eg ville, den ville berre gje meg plass til ein god time på kvar dvd. Planen min var å få 3-4 timar på kvar dvd – er jo ikkje hd-kvalitet dette. Løysinga blei installere DeVeDeUbuntuen. Med den kan ein laga dvd av alt som Mplayer klarer å spela av; det vil seie det meste. DeVeDe finnes og i ein Windows versjon for dei som brukar slikt. Så no har eg laga to dvder frå folkehøgskuletida, og så får eg sjå kva meir eg lagar. Kan bli mange timar med tvtitting dette…