Clonezilla Images via serielle Console TTY erstellen

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Clonezilla ist ein ideales Tool zum Erstellen von Datenträgerimages. Standardmäßig funktioniert Clonezilla mit angeschlossenem Monitor und Tastatur. Wie es bei Hardware ohne grafischen Videoausgang trotzdem möglich ist, Clonezilla zu verwenden, zeigt dieser Artikel.

Clonezilla mit grafischem Videoausgang gestartet und als TTY Konsole

Inhalt des Artikels

Dieser Artikel beschreibt folgende Problemstellung und Lösung:

  • Erstellen von Datenträgerimages von Hardware ohne grafischen Videoausgang.
  • Serial Redirection: Ermöglicht die Distribution über die serielle Schnittstelle verfügbar zu machen.
  • Anschließend kann Clonezilla über die Serielle Konsole im Legacy & UEFI Mode gebootet werden.
  • Ziel: Clonezilla USB Live Stick / Imaging wird dann über serielle Konsole gestartet und veränderbare Daten auf der Root Partition des Clonezilla Sticks abgelegt.

Testumgebung

Die folgenden Komponenten werden für diese Anleitung eingesetzt:

  • Clonezilla Version: Clonezilla_live_2.7.2-39 ISO (stable)

Vorbereitung

Hinweis: Um hier mit der seriellen Konsole und Serial Redirection arbeiten zu können, muss diese im BIOS vorhanden und enabled, sprich aktiviert, sein. Es wird zusätzlich noch der USB Stick passend partitioniert, somit könnten auch kleinere Daten Snapshots direkt auf dem Stick abgelegt werden.

Wichtiger Hinweis: Hier im Beispiel wird das Device /dev/sdi verwendet, bitte überprüfen Sie vorher das das richtige Device beschrieben wird, ansonsten verursacht der Vorgang Datenverlust.

Clonezilla Live Version ISO Downloaden

Um Clonezilla verwenden zu können, downloaden Sie die stable Live Version (als ISO Datei) herunter. Nachdem der ISO Download mit sha256 auf Integrität geprüft worden ist (optional),erstellen wir einen Mountpoint und mounten das ISO Image als Loop Device.

Mountpoint erstellen

Ein Mountpoint kann mit den folgenden Kommandos erstellt werden.

ISO File mounten
  • Verzeichnis erstellen:
    $ sudo mkdir /media/iso
  • ISO in dieses Verzeichnis mounten:
    $ sudo mount -o loop clonezilla-live-2.7.2-39-amd64.iso /media/iso/

Vorbereiten des USB Sticks

Der USB Stick wird nun mit folgendem Schema vorbereitet:

Identifizieren des Ziel USB Sticks
  • Eine Bootpartition mit den Daten des Clonezilla ISOs wird erstellt.
  • Zusätzlich wird eine größere Partition zum Aufnahme des erstellten Images erstellt.
  • Identifikation des Sticks auf der Shell mittels:
    $ lsblk | grep "sd"
  • Hier im Beispiel ist der USB Stick: /dev/sdi

USB Stick einrichten

Im vorherigen Schritt wurden die vorbereitenden Maßnahmen getroffen, in diesem Abschnitt wird nun der USB Stick eingerichtet.

Wichtiger Hinweis: Bitte überprüfen Sie nochmals, dass hier das richtige Device (hier im Beispiel /dev/sdi) verwendet wird. Ansonsten droht ein Datenverlust.

Mit fdisk den USB Stick partitionieren

Mit fdisk wird nun der USB Stick partitioniert:

$ sudo fdisk /dev/sdi

Befolgen Sie dann folgende Schritte zur Anlage der Partition:

  • Tippen Sie o (MS-DOS MBR Scheme)
  • Danach n / p / 1 / Ausgabe: First Sector : leer / Return drücken, Last sector: +500M (Partition ist dann 500MB groß, ausreichend für Boot)
  • Abschließend n / p / 2 / Ausgabe: First Sector: leer / Return drücken, Last sector: auch hier mit Return bestätigen (es wird automatisiert der Rest des USB Sticks als Datenpartition angelegt (hier 7.5GB).
Zuweisung FAT32 via FDISK

Partitionen mit korrektem Filesystem Type

Jetzt werden die Partionen mit dem richtigen FileSystem Type versehen. Um hier die größtmögliche Kompatibiliät zu erhalten, ist der Typ Hex c für FAT32/LBA auszuwählen.

  • Tippen Sie t (typ) --> 1 (Partitionsnummer) --> c (W95 FAT32 LBA)
  • Danach t (typ) --> 2 (Partitionsnummer)-- > c (W95 FAT32 LBA)
  • Dann wird abschließend mit w die Partitionstabelle auf den USB Stick geschrieben.

FAT32 Dateisystem erstellen

Nun wird ein FAT32 Dateisystems auf beiden Partitionen des USB Sticks erstellt. Bitte beachten Sie die richtigen Partionsnamen zu verwenden, ansonsten droht Datenverlust.

 $ sudo mkfs.vfat /dev/sdi1 && sudo mkfs.vfat /dev/sdi2

Kopieren der ISO Daten auf die Root Partition des USB Sticks

Nachdem das Anlegen der Partitionen erledigt ist, mounten wir die erste Partition des USB Stick auf einen vorher erstellten Mountpoint. Anschließend werden die Daten aus dem gemounteten ISO dort hinkopiert.

  • Mountpoint erstellen:
$ sudo mkdir /media/usbstick
  • USB Stick mounten:
$ sudo mount /dev/sdi1 /media/usbstick
  • Kopieren der Daten aus dem gemounteten ISO Verzeichnis:
$ sudo cp -rf /media/iso/* /media/usbstick
  • Das Bootflag ist noch auf die erste Partition zu setzen, damit der Stick bootfähig ist:
$ sudo parted /dev/sdi set 1 boot on
  • Nun ist der Stick bootfähig.

Bootsektor im MBR erstellen

Kopieren des Bootsektors via DD auf den USB Stick

Um den Bootsektor im MBR zu erstellen verwenden wir diesen aus dem Tool Syslinux. Bei den meisten Distributionen ist Syslinux vorinstalliert. Wenn nicht ist es in den Repositories enthalten.

  • Der BootSektor mbr.bin, der in dem Syslinux Paket enthalten ist, wird nun auf den USB Stick geschrieben:
$ sudo dd conv=notrunc bs=440 count=1 if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdi

Somit wären nun die Daten auf dem Stick beschreibbar/veränderbar abgelegt, der Stick ist jetzt bootfähig.

Einrichten des Boots für serielle Konsole

In diesem Abschnitt wird die Serielle Konsole eingerichtet.

grub.cfg Einstellungen
  • Dazu muss die /boot/grub.cfg auf dem USB Stick geändert werden:
$ sudo nano /media/usbstick/boot/grub/grub.cfg
  • Dann die serielle Konsole auskommentieren, oder wie hier im Beispiel anfügen (steht im oberen Drittel der Datei):
serial --unit=0 --speed=115200
terminal_input serial
terminal_output serial
  • Weiterhin ist im ersten Eintrag menuentry der Verweis auf die serielle Konsole als Kerneloption mitzugeben/auszutauschen, in unserem Beispiel:
menuentry "Clonezilla live (VGA 800x600)" --id live-default
  • Der komplette Aufruf:
$ linux_cmd /live/vmlinuz boot=live union=overlay username=user config components quiet noswap edd=on nomodeset enforcing=0 locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0  splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 console=ttyS0,115200
  • Speichern Sie nun und hängen Sie die Partitionen aus:
$ sudo umount /dev/sdi1

Booten Clonezilla via TTY / serieller Konsole

Verbinden Sie zum Boot vom USB Stick ein serielles Kabel zwischen Client und Host. Nun kann Clonezilla auch über die Serielle Konsole gebootet werden.

  • Starten Sie nun putty (Konsolenviewer), im Beispiel hängt das serielle Konsolenkabel auf /dev/ttyUSB0:
$ putty /dev/ttyUSB0 -serial -sercfg 115200,8,n,1,N -fn "client:Ubuntu Mono 12"
Ausgabe nach Boot von USB Stick über Putty
  • Um auf der Shell Clonezilla vollständig zu verwenden muss der Befehl clonezilla via sudo eingegeben werden. Danach kann wie gewohnt weiter mit Clonezilla gearbeitet und mit dem Imaging begonnen werden.
$ sudo -i
# clonezilla
Arbeiten mit Clonezilla über TTY / Imaging Auswahl

Einzelnachweise


Foto Wilfried Seifert.jpg

Autor: Wilfried Seifert

Wilfried Seifert, tätig in der Abteilung Systems Engineering bei Thomas-Krenn, ist in seinem Arbeitsbereich für die System-/Prototypenentwicklung sowie Softwaredeployment / Rollout zuständig. LPIC 3 zertifiziert, beschäftigt sich u.a. mit Aufbau / Programmierung Embedded Systemen.


Das könnte Sie auch interessieren

Intel Microcode unter Linux aktualisieren
IPv6 deaktivieren
LoRaWAN Transceiver in The Things Stack (TTS) einbinden