Partition anlegen mit der Shell

Um eine Partition anlegen zu können und mit der Shell zu formatieren, bringt Linux bzw. die Konsole einige Hilfsmittel mit. Ich zeige euch das hier mit einer neuen Festplatte von 100 GB, die formatiert und im System eingebunden wird. Sofern ihr ein Linux mit einer grafischen Oberfläche verwendet, findet ihr dort auch benutzerfreundliche Anwendungen wie z.B. GParted. In meinem Fall war das System ein Serversystem und der Fall war etwas komplexer. Wir brauchen dafür einige Werkzeuge wie lsblk, fdisk, mount und mke2fs. Damit wird das formatieren und Anlegen einer neuen Partition sehr einfach. Anschließend werden wir auch noch kurz auf die Datei /etc/fstab eingehen. So dass unsere neue Partition bei dem nächsten Neustart wieder verfügbar ist.

Übersicht über das System

lsblk verwenden wir, um eine Übersicht über unseres bestehendes System zu erhalten. Es listet alle blockorientierten Geräte auf, wie Festplatten, CD Laufwerke oder auch Bandlaufwerke. Diese Geräten speichern Daten in festdefinierten Blöcken. Mehr über blockorientierte Systeme könnt ihr z.B. hier lesen. Mittels

 # lsblk -f

erhalten wir eine Übersicht aller bestehenden Geräte.

NAME   FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
fd0
sda
├─sda1 ext4         11d4ea46-ea8f-4f63-853d-6585b5dc03c5      2G    91% /
├─sda2
└─sda5 swap         11ae3bce-c515-4a29-bfb4-b22b5450c7dd                [SWAP]
sdb
sr0

Unter Linux bzw. Unix artigen Betriebsystemen gibt es für die hier stehenden Namen ein eindeutiges Schema. Dieses findet ihr auch unter diesem Link. Bei unseren Aufruf können wir erkennen, dass es eine SSD mit der Bezeichnung sda gibt. Diese hat mehrere Partitionen, was wir an der Numerierung erkennen. Zusätzlich stehen zu den Partitionen das Filesystem und der Mountpoint dazu. So sehen wir, dass die Root Partition auf sda1 liegt und mittels ext4 formatiert ist. Ebenfalls haben wir eine Swap Partition auf sda5. sdb exisitiert, hat aber keinen Partition. Das wollen wir, im Verlauf des Artikels, ändern. Bei der SWAP und der ext4 formatierten Partition sehen wir auch eine UUID, die für uns am Ende nochmal wichtig wird.

Partition anlegen mit der Shell

Mittels fdisk bearbeiten wir die Partitionstabelle. Das Speichermedium, egal ob SSD, Festplatte oder nvme, können wir damit partitionieren. Im Verlauf müssen dann verschiedene Fragen beantwortet.

# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.Be careful before using the write command.
Command (m for help): F
Unpartitioned space /dev/sdb: 100 GiB, 107373133824 bytes, 209713152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Start       End   Sectors  Size
 2048 209715199 209713152  100G
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199):
Created a new partition 1 of type 'Linux' and of size 100 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

fdisk bekommt beim Aufruf das Gerät, worauf wir die Partitionstabelle anlegen bzw. ändern wollen, übergeben. Hier /dev/sdb. Unter /dev finden wir auf unix artigen Systemen in der Regel alle eingebundenen Geräte.

  1. Anschließend habe ich F eingebeben um mehr Informationen zu dem Gerät zu erhalten. Die wichtige Information für uns ist, dass das Gerät 100GB verfügbaren Platz bereit hält.
  2. Mit der Eingabe n legen wir einene neue Partition an und werden im Verlauf u.a. gefragt, welcher Partitionstyp wir anlegen wollen.
  3. Hier p für eine Primäre Partition, die wir im System verwenden wollen. Mittels e hätten wir einene Erweitrte Parttion anlegen könnne. So was wird z.B. für SWAP verwendet. Wir brauchen das hier nicht.
  4. Anschließend können wir sagen welcher der vier möglichen primären Partition anlegen wollen. Da dies unserer erste ist haben wir natürlich 1 gewählt.
  5. Anschließend können wir die Sektoren eingeben. Ab wo unsere Partition anfängt und wie groß diese dann wird. Wir wollen die ganze Kapazität nutzen, daher haben wir hier die Default Werte verwendet. Wollt ihr mehr Partitionen anlegen, müsst ihr dann eine für euch passende Größe wählen und die Schritte wiederholen.
  6. Als letzten Schritt geben wir w ein, was bedeutet das er die Partitionstabelle auf das Gerät schreibt. Anschließend wird fdisk automatisch beendet.

Partition formatieren mit der Konsole

Eine Partition nützt uns nichts, wenn wir nicht mit dieser arbeiten können. Daher brauchen wir noch ein Dateisystem (filesystem). Ext4 ist sehr gängig unter Linux. Wenn ihr ein anderes verwerndet wollt, könnt ihr den Namen analog zu ext4 dort eintragen. Folgender Befehl formatiert mit ext4 unsere neue Partition sdb1.

# mkfs -t ext4 /dev/sdb1

Während die Partition formatiert, wird für uns natürlich ein Status mitgeteilt, was er gerade macht und wie er die Partition formatiert.

mke2fs 1.44.5 (15-Dec-2018)
Found a dos partition table in /dev/sdb1
Proceed anyway? (y,N) y
Creating filesystem with 26214144 4k blocks and 6553600 inodes
Filesystem UUID: 72abc2b8-3d4e-4098-bff2-09ba3e6daf07
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done

Unter anderem steht dort die UUID der Partition: 72abc2b8-3d4e-4098-bff2-09ba3e6daf07. Diese sollten wir kopieren. Wir brauchen diese, später für die /etc/fstab. Ebenfalls, für uns an dieser Stelle nicht so relevant, aber die Information das er an bestimmten Stellen so genannte Superblöcke angelegt hat. An diesen Stellen finden sich für das Filesystem wichtige Verwaltungsinformation u.a. wo es die nächsten freien Blöcke findet, um die nächste neue Datei an diese Stelle abzulegen.

Partition mounten und reboot sicher machen

Mittels des folgenden mount Befehls können wir die Datei nun irgendwo einbinden, mounten, und dann auch gleich nutzen.

# mount /dev/sdb1 /path/<directory>

Das empfehle ich aber nicht, wenn ihr ihr das Filesystem dauerhaft verwenden wollt und es Reboot sicher sein sollte. Hierfür verwaltet Linux alle zum Neustart einzubindenenen Geräte mittels der /etc/fstab. Mittels

# cat /etc/fstab

könnt ihr diese Datei anschauen. Ihr bekommt dann vermutlich ein ähnliches Ergebnis wie hier:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/vda1 during installation
UUID=11d4ea46-ea8f-4f63-853d-6585b5dc03c5 /               ext4    errors=remount-ro 0       1
# swap was on /dev/vda5 during installation
UUID=11ae3bce-c515-4a29-bfb4-b22b5450c7dd none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Um unsere neue Partition ebenfalls hier einzuträgen, öffnet diese Datei mit dem Editor eurer Wahl. Vorsichtig, wenn ihr die Dateisyntax zerstört, kann beim nächsten Neustart ggf. euer System nicht sauber hochfahren. Daher testet nach jedem ändern der Datei ob das einbinden klappt. Ich zeige euch am Ende wie.

Tragt für eure Partiotion am Ende in einer neuen Zeile folgendes ein:

UUID=<UUID> /path/to/mount_Verzeichnis ext4    errors=remount-ro 0       2
  • Für <UUID> tragt ihr bitte eurer gesicherte UUID aus der Formatierung ein. Bei uns wäre es die 72abc2b8-3d4e-4098-bff2-09ba3e6daf07. Habt ihr sie vergessen, könnt ihr sie mittels des am Anfang vorgestellten Befehls lsblk -f noch einmal anzeigen lassen.
  • Sofern ihr ein anderes Filesystem als ext4 verwendet habt, tragt ihr bitte euer verwendetes ein.
  • Passt den Pfad für eurer System noch an. Wichtig ist, das dieser Pfad schon existieren muss, sonst kann es nicht gemountet werden.

Den Rest solltet ihr so belassen.

  • errors=remount-ro wird im Fehlerfall dafür sorgen das die Partition als read only eingebunden wird, so dass weitere Schäden möglichst vermieden werden.
  • Die 0 im dump Eintrag steht dafür das die Partition nicht mittels dump gesichert wird.
  • Für die pass Spalte solltet ihr 2 eintragen. Hier geht es um die Reiehenfolge wann welche Partition bei einem Neustart eingebunden wird. Außer der Root Partition sollten alle anderen Partitionen 0 oder 2 haben. 0 für keine Priorität/Dateisystem Überprüfung während des Neustarts. Die 2 zeigt auch die nachgelagerte Priorität an. Allerdings kann ggf. bei einem Fehler hier bei Neustart ein Dateisystem Check stattfinden.

Test der /etc/fstab

Habt ihr die Datei fertig bearbeitet könnt ihr mittels

# mount -a

überprüfen ob das Einbinden klappt. Solltet ihr einen Syntax Error produziert haben, so werdet ihr eine Fehler Meldung erhalten, dir ihr bitte vor dem nächsten Neustart beheben solltet. Andernfalls dürft ihr, im schlimmsten Fall euer System, mittels eines Rescue Linux mounten und die Datei reparieren. 😉

Schreibe einen Kommentar