Festplattenvergrößerung Checkmk virt1 Appliance

Es kann natürlich vorkommen, dass während des Gebrauchs die Festplatten für die virt1 Appliance vergrößert werden müssen. Dies kann direkt mit folgenden Schritten erledigt werden:

In der Virtualisierung der 100GB Festplatte, ist die Standardgröße, zum Beispiel weitere 100GB zuweisen

und die Appliance neu starten und dann in der Konsole als root folgende Schritte ausführen:

Einmal alle Checkmk Seiten stoppen

omd stop

Alle TMP Verzeichnisse aushängen

omd umount

Nun die Partition /omd aushängen

umount /omd

Jetzt die Dateisystemprüfung ausführen

e2fsck -fv /dev/sdb2

Nun kann mit Hilfe von Parted die Partition vergrößert werden

parted /dev/sdb
resizepart 2 215GB
quit

Nun kann das Dateisystem der vergrößerten Partition angepasst werden

resize2fs -p /dev/sdb2

Sicherheitshalber noch einmal das Dateisystem prüfen

e2fsck -fv /dev/sdb2

Jetzt wieder /omd einhängen und die Seiten starten

mount /omd
omd start

PortChecker in Powershell

Bei der Einrichtung von neuen Programmen, ist meistens ein Port nötig. Um prüfen zu können, ob ein Port von einem Host erreichbar ist und nicht von einer Firewall blockiert wird, kann dieses einfache Skript helfen. Das Skript kann mit mehreren Hostnamen und Ports aufgerufen werden.

function portChecker {
  param (
    [Parameter(Mandatory=$true, ParameterSetName="Multi")]
    [System.string[]]
    $Hosts,
    [Parameter(Mandatory=$true, ParameterSetName="Multi")]
    [System.string[]]
    $Ports
  )

  foreach ($Client in $Hosts) {
    "`n${Client}:"
    "---------------"

    foreach ($Port in $Ports) {
      $Socket = New-Object Net.Sockets.TcpClient
      $ErrorActionPreference = 'SilentlyContinue'
      $Socket.ReceiveTimeout = 3000;
      $Socket.Connect($Host, $Port)
      $ErrorActionPreference = 'Continue'

      if ($Socket.Connected) {
        "{0,4:#} {1}" -f $Port, ": open"
        $Socket.Close()
      } else {
        "{0,4:#} {1}" -f $Port, ": closed or filtered"
      }

      $Socket.Dispose()
      $Socket = $null
    }
  }
}

Disk images mit partclone

Wurde mit partclone ein Image erstellt und dies ist in mehrere Dateien aufgeteilt, dann kann nicht direkt mit dem Image unter Linux gearbeitet werden. Es ist möglich, das aufgeteilte Image wieder zusammen zu fassen und direkt einhängbar zu machen. Hier wird das zerteilte Image zu einer großen Datei zusammengefasst:

cat sda1ptcl.gz.* | gzip -d -c | partclone.restore -C -s - -O sda1.img

In diesem Schritt wird das Entpacken direkt erledigt:

zcat sda1.gz.* | partclone.restore -C -s - -O sda1.img

Anschließend kann das Image unter Linux gemounted werden:

mount -o loop hda1.img /mnt

Disk images mit ntfsclone

Wurde mit ntfsclone ein Image erstellt und dies ist in mehrere Dateien aufgeteilt, dann kann nicht direkt mit dem Image unter Linux gearbeitet werden. Es ist möglich, das aufgeteilte Image wieder zusammen zu fassen und direkt einhängbar zu machen. Hier wird das zerteilte Image zu einer großen Datei zusammengefasst:

cat sda1.gz.* | gzip -d -c | ntfsclone --restore-image -o sda1.img -

In diesem Schritt wird das Entpacken direkt erledigt:

zcat sda1.gz.* | ntfsclone --restore-image -o sda1.img -

Anschließend kann das Image unter Linux gemounted werden:

mount -o loop hda1.img /mnt

Dateiwiederherstellung

Vielleicht ist es Ihnen auch schon mal passiert, dass einfach zu schnell auf Return gedrückt wurde und der Löschbefehl hat ein paar Dateien zuviel erwischt oder einfach die falschen Dateien gelöscht. Eine schnelle Hilfe ist hier angesagt, da die Daten dann noch ohne größeren Aufwand wiederhergestellt werden können. Dies geschieht mit Hilfe des grep-Befehls:

grep -a -B[Zeilen vor dem Fragment] -A[Zeilen nach dem Fragment] 'Suchtext' /dev/[Partitionsname]

Ein kleines Beispiel hierfür:
Es wurde eine Sourcedatei von einem kleinen Programm gelöscht. In der Datei ist eine Zeile mit dem Inhalt:
cout << „Summe: “ << sum;
enthalten. Nun kann mit Hilfe des grep-Befehles nach diesem Fragment gesucht werden und der Dateiinhalt wieder hergeholt werden.

grep -a -B100 -A20 'cout << "Summe: " << sum;' /dev/sda1

Die Ausgabe kann direkt in eine Datei umgeleitet werden oder man kann sich den Inhalt auf dem Bildschirm ausgeben lassen. Für weitere Möglichkeiten kann die Manpage vom grep-Befehl angesehen werden.