Clonezilla Images via serielle Console TTY erstellen
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.
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.
- 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:
- 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).
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
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.
- 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"
- 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
Einzelnachweise
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.
|