Good to Know Database

Ubuntu 18.04: Root-Dateisystem auf die HDD transferieren


Standardmäßig bootet man den Odroid HC2 von einer MicroSD-Karte auf welcher sich die Boot- und Root-Partition befindet. Da SD-Karten nur eine begrenzte Anzahl an Schreibzyklen besitzen und es sehr häufig zu Dateisystemfehlern kommt wenn die Stromversorgung unterbrochen wird ohne dass das System ordnungsgemäß heruntergefahren wurde, stellt sich die Frage welche Alternativen es gibt. In dieser Anleitung soll die Root-Partition auf die Festplatte ausgelagert werden. Zum Booten wird auch weiterhin eine MicroSD-Karte benötigt, auf welcher sich nur noch die Boot-Partition befinden muss.

Benötigte Tools installieren

Aktualisieren Sie zuerst die lokale Paketdatenbank und installieren anschließend die Pakete gdisk und rsync.

root@odroid:~# apt-get update
root@odroid:~# apt-get install gdisk rsync

Festplatte partitionieren

Verschaffen Sie sich mit fdisk einen Überblick über die verfügbaren Datenträger und deren Devicenamen.

root@odroid:~# sudo fdisk -l

Hinweis: Im weiteren Verlauf wird davon ausgegangen, dass die Boot-Partition mit /dev/mmcblk0p1, die Root-Partition mit /dev/mmcblk0p2 und die Festplatte mit /dev/sda angesprochen wird. Sollte dies bei Ihnen nicht der Fall sein, müssen Sie bei den hier gezeigten Befehlen die entsprechenden Devicenamen anpassen. Sollten Sie einen falschen Devicenamen verwenden, kann dies zu Datenverlust führen.

Starten Sie jetzt gdisk, löschen die bestehenden Partitionen vom Datenträger /dev/sda und erstellen zwei neue Partitionen. In diesem Fall wird eine 20GB große Root-Partition und eine Datenpartition erstellt.

Beim Start von gdisk wird geprüft ob bereits eine GUID Partition Table auf dem Datenträger existiert. Ist dies nicht der Fall, wird gdisk automatisch eine GUID Partition Table erzeugen.

Hinweis: Beachten Sie, dass bei den folgenden Schritten alle Daten auf der Festplatte verloren gehen.

root@odroid:~# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): d
Using 1

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-3907029134, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}: +20G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

Command (? for help): n
Partition number (2-128, default 2):
First sector (34-3907029134, default = 41945088) or {+-}size{KMGTP}:
Last sector (41945088-3907029134, default = 3907029134) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /dev/sda: 3907029168 sectors, 1.8 TiB
Model:                
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 1DC90128-2E25-4214-9D69-9685EFB7B555
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 3907029134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        41945087   20.0 GiB    8300  Linux filesystem
   2        41945088      3907029134   1.8 TiB     8300  Linux filesystem

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.

Dateisysteme anlegen

Nachdem die Partitionen /dev/sda1 und /dev/sda2 erstellt wurden, müssen Sie in diesen noch Ext4-Dateisysteme anlegen.

root@odroid:~# mkfs.ext4 /dev/sda1
root@odroid:~# mkfs.ext4 /dev/sda2

Systemdateien auf die Festplatte kopieren

Mounten Sie jetzt das zukünftige Root-Dateisystem in das Verzeichnis /mnt.

root@odroid:~# mount /dev/sda1 /mnt

Starten Sie jetzt die Datenübertragung von der MicroSD-Karte auf auf die Festplatte. Dieser Vorgang dauert je nach der Datenmenge auf der Root-Partition und der Übertragungsgeschwindigkeit mehrere Minuten.

root@odroid:~# rsync -ax --progress / /mnt/

Konfigurationsdateien anpassen

Sobald alle Daten erfolgreich übertragen wurden, sollten Sie die UUID der neuen Root-Partition mit blkid ermitteln. Die UUID benötigen Sie für die /etc/fstab damit das richtige Dateisystem in das Root-Verzeichnis von Linux gemountet wird. Des Weiteren muss die UUID in der /media/boot/boot.ini hinterlegt werden, damit der Kernel auf die Root-Partition zugreifen kann.

root@odroid:~# blkid /dev/sda1
/dev/sda1: UUID="13c33713-485b-449b-85c1-9c1b41fe7a23" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="7d7d1b53-22fd-4a1e-b469-8bcbadcc304b"

Öffnen Sie jetzt die /etc/fstab auf der neuen Root-Partition (also die Datei /mnt/etc/fstab) mit einem Editor.

root@odroid:~# nano /mnt/etc/fstab

Hier sollten Sie unter anderem die folgende Zeile vorfinden.

UUID=e139ce78-9841-40fe-8823-96a304a09859 / ext4 errors=remount-ro,noatime 0 1

Ersetzen Sie die UUID der Root-Partition durch die zuvor ausgelesenen UUID der neuen Root-Partition.

UUID=13c33713-485b-449b-85c1-9c1b41fe7a23 / ext4 errors=remount-ro,noatime 0 1

Des Weiteren muss die Bootkonfiguration angepasst werden damit der Kernel die richtige Root-Partition verwendet. Öffnen Sie dazu die /media/boot/boot.ini mit einem Editor.

root@odroid:~# nano /media/boot/boot.ini

Suchen Sie hier nach der folgenden Zeile.

setenv bootrootfs "console=tty1 console=ttySAC2,115200n8 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro fsck.repair=yes net.ifnames=0"

Ersetzen Sie bei der Option root wieder die UUID mit der UUID der neuen Root-Partition.

setenv bootrootfs "console=tty1 console=ttySAC2,115200n8 root=UUID=13c33713-485b-449b-85c1-9c1b41fe7a23 rootwait ro fsck.repair=yes net.ifnames=0"

System neu starten

Sobald Sie alle Dateien übertragen und die beiden Konfigurationsdateien angepasst haben, können Sie die neue Root-Partition wieder aushängen und einen Neustart des Systems durchführen.

root@odroid:~# umount /mnt
root@odroid:~# shutdown -r now

Nach dem Neustart können Sie mit den Befehlen df -h und mount überprüfen ob die Root-Partition von der Festplatte (/dev/sda1) anstelle der von der MicroSD-Karte gemountet wurde.

root@odroid:~# df -h
root@odroid:~# mount

Für den Fall, dass Ihr System wider Erwartens nicht mehr startet, mounten Sie die erste Partition der MicroSD-Karte auf einem anderen Linux-System und setzen in der Datei boot.ini die UUID zurück auf den alten Wert. Dadurch startet der Odroid HC2 wieder mit der Root-Partition auf der MicroSD-Karte.

Datenpartition einhängen

Nachdem die Root-Partition auf die Festplatte transferiert wurde, können Sie die zweite erstellte Partition als Datenpartition einhängen. Erstellen Sie hierfür zuerst das Verzeichnis /data.

root@odroid:~# mkdir /data

Ermitteln Sie anschließend die UUID der Datenpartition.

root@odroid:~# blkid /dev/sda2
/dev/sda2: UUID="254b855a-997b-4044-9da3-035e0abe30e8" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="be5aed6b-d3f8-490a-ad29-93d2e62153cc"

Damit die Datenpartition automatisch beim Systemstart eingehängt wird, muss die /etc/fstab erweitert werden.

root@odroid:~# nano /etc/fstab

Fügen Sie am Ende der Datei die folgende Zeile mit der ermittelten UUID ein.

UUID=254b855a-997b-4044-9da3-035e0abe30e8 /data ext4 defaults 0 1

Nachdem Sie die Datei erweitert haben, können Sie die Datenpartition einhängen.

root@odroid:~# mount -a

Überprüfen Sie ob das Mounten erfolgreich war.

root@odroid:~# mount


Dieser Eintrag wurde am 27.10.2018 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_40_3021.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer