Schlagwort-Archive: Debian

get virsh console working

In my last blog post I described how you can shut down your virtual machines with the virsh shutdown command under Debian and Ubuntu. Now I want to show you how virsh console can be used to access the serial console for login and watching the virtual machine’s shutdown and startup.

Step 1A: Preparing an Ubuntu Guest VM

  1. login on the ubuntu vm with ssh
  2. Copy tty1.conf to ttyS0.conf:
    sudo cp /etc/init/tty1.conf /etc/init/ttyS0.conf
  3. open ttyS0 and change the last line to
    exec /sbin/getty -8 115200 ttyS0 xterm

Step 1B: Preparing a Debian Guest VM

  1. login on the ubuntu VM with ssh
  2. open /etc/inittab
  3. uncomment the following line:
    T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

Step 2: Make Grub output on ttyS0 (Debian & Ubuntu VM)

  1. open /etc/default/grub
  2. update GRUB_CMDLINE_LINUX:
    GRUB_CMDLINE_LINUX=“console=ttyS0″
  3. save & close the file and update grub with
    # update-grub
  4. reboot the virtual machine

On the host you can now access the serial console with virsh console vm1.

To get back to the host use ctrl + ]. An opened session will not be closed so you have to logout explicitly (like if you were right in front of the machine).

get virsh shutdown working

There is a quite common problem with kvm and virsh shutdown which is likely not working with all virtual guests. In my case, I’m using Ubuntu 10.04 LTS and 12.04 LTS as host OS. All guests are working with ubuntu or debian, too.

If your guests are ignoring the virsh-shutdown command, check these indicators:

  • Enable ACPI in the guest configuration file
    ...
      <features>
        ...
        <acpi/>
        ...
      </features>
    ...
  • Install acpid on the guest
    # apt-get install acpid
  • Install acpi-support-base package
    # apt-get install acpi-support-base

Next time, I will show how to get the virsh console command working properly.

If you also want to get the virsh console command working properly read the article Get virsh console working.

Debian sauber halten – Pakete mit rc Status vollständig entfernen

Debian zeichnet sich als konservative, aber sehr robuste und zuverlässige Distribution aus und war nicht zuletzt aus diesem Grund meine Wahl für einige Server-Systeme, die mittlerweile schon einige Jahre auf dem Buckel haben.

Mittlerweile wurde ein System zum dritten mal auf eine neues Major-Release gehoben und mit der Zeit sammelt sich allerhand historischer Datenmüll auf der Platte. Auch bei Desktop-Systemen mit kürzeren Release-Zyklen wie bei Ubuntu kann sich in wenigen Jahren viel Balast auftürmen.

Ein Weg, das System zu entschlacken ist das Löschen alter Konfigurationsdateien. Listet man durch dpkg -l  installierte Pakete auf, fällt der Status „rc“ bei einigen Zeilen auf. Bei rc ist das Paket nicht installiert, jedoch sind seine Konfigurationsdateien auf dem System vorhanden. Diese entstehen bei Technologiewechseln während Major-Upgrades oder durch das manuelle installieren und deinstallieren von Software.

Dieser Schlacke kann man einfach über folgende Kommandos untersuchen (Output ist gleich, rein aus Lernzwecken sind beide aufgeführt):

dpkg -l | grep ^rc | tr -s " " | cut -d " " -f 2
dpkg -l | grep ^rc | awk '{print $2}'

Beispiel Output:

dpkg -l | grep ^rc | awk '{print $2}'
automysqlbackup
libbind9-50
libdatrie0
libdevmapper1.02
libdns55

Es ist sehr wichtig, die Pakete manuell zu prüfen! Es kann auch false-positives durch z.B. manuell installierte Pakete geben, die nicht aus dem Repository installiert wurden.

Ist man sich seiner Sache sicher, können die Pakete bzw. ihre Konfigurationsdateien vollständig entfernt werden:

apt-get purge `dpkg -l | grep ^rc | awk '{print $2}'`

Beispiel Output:

apt-get purge `dpkg -l | grep ^rc | awk '{print $2}'`
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
automysqlbackup* libbind9-50* libdatrie0* libdevmapper1.02* libdns55*