Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:partitionierung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:partitionierung [2022/03/18 00:38] – [Beispiel: lesend genutztes Verzeichnis im laufenden Betrieb auf neue Partition verschieben] ingo_wichmannadmin_grundlagen:partitionierung [2026/10/09 19:23] (aktuell) – [CentOS 7 ins Image installieren] ingo_wichmann
Zeile 2: Zeile 2:
   lsblk   lsblk
  
-===== Kernel Partitionsliste aktualisieren ===== +====== Partitionierung ====== 
-Nach Änderungen an einem Boot-Datenträger. (Im Paket parted)+===== Format der Partitionstabelle ===== 
 +Das lange unter Linux gebräuchliche [[wpde>Master Boot Record|MSDOS oder MBR]] Format kann man nur bei Festplatten unter 2TB verwenden. Es ist komplizierter zu benutzen(( zumindest wenn man mehr als 4 Partitionen anlegen will)). Wenn man (wie bei aktuellen Rechnern üblich) eine [[wpde>Unified Extensible Firmware Interface|UEFI]] Firmware an Stelle des [[wpde>BIOS]] vorfindet, muss man zum Booten [[wpde>GUID Partition Table|GPT]] verwenden. Labels sind nützlich, wenn man mehrere Festplatten eingebaut hat - die gibt es nicht bei MBR Partitionen.  
 + 
 +Tools: 
 +  * ''fdisk'' - MBR und GPT Partitionstabellen 
 +  * ''gdisk'' - Spezialist für GPT Partitionstabellen 
 +  * ''parted'' - MBR und GPT Partitionstabellen 
 + 
 +===== Beispiel: neue Partition anlegen ===== 
 +==== mit gdisk ==== 
 +++++ Wichtige gdisk Befehle | 
 +| ? | Hilfe | 
 +| d | Partition löschen | 
 +| n | neue Partition erstellen | 
 +| t | Typ der Partition setzen | 
 +| c | Name/Label der Partition setzen | 
 +| p | Partitionstabelle anzeigen | 
 +| w | geänderte Partitionstabelle speichern | 
 +| q | gdisk verlassen ohne zu speichern | 
 +++++ 
 +=== Benötigte Pakete === 
 +  * Debian: ''gdisk'' 
 + 
 +=== Partition erstellen === 
 +[[wpde>Byte#Vergleich|2 Gigibyte]] große Partition auf Festplatte ''/dev/sda'' anlegen: 
 +  gdisk /dev/sda 
 +Aktuelle Partitionstabelle anzeigen: 
 +  p 
 +Neue Partition erstellen: 
 +  n 
 +Startblock auswählen: //Bei der ersten Partition sollte hier Sektor 2048 oder ein Vielfaches davon stehen// 
 + 
 +Größe angeben: 
 +  +2G 
 +Label ändern: 
 +  c 
 +Name eingeben: ((Wenn in dem Computer viele Festplatten eingebaut sind, dann wird man wahrscheinlich nur eine Partition anlegen und den Platz mit [[LVM]], [[RAID]], [[lpi2:btrfs]] oder [[ZFS]] verwalten. Dann ist ein Namensschema nützlich, z.B. f/b für Front/Back,r0 für Reihe 0 von oben und c0 für Spalte 0 von links)) 
 +  fr0c0 
 +geänderte Partitionstabelle speichern: 
 +  w 
 + 
 +=== Prüfen, ob der Kernel die geänderte Partitionstabelle kennt == 
 +  cat /proc/partitions 
 +Wenn nicht, Kernel Partitionstabelle neu einlesen lassen: 
 +  blockdev --rereadpt /dev/sda 
 +((oder
   partprobe   partprobe
-====== Format der Partitionstabelle ====== +)) 
-Das lange unter Linux gebräuchliche MSDOS oder [[wpde>Master Boot Record|MBR]] Format sollte man nur bei Festplatten unter 2TB verwenden. Für größere Festplatten, und wenn man wie bei aktuellen Rechnern üblich eine [[wpde>Unified Extensible Firmware Interface|UEFI]] Firmware an Stelle des [[wpde>BIOS]] vorfindet, sollte man für die Partitionstabelle [[wpde>GUID Partition Table|GPT]] verwenden. +==== mit fdisk ==== 
 +++++ Wichtige fdisk Befehle | 
 +| m | Hilfe | 
 +| d | Partition löschen | 
 +| n | neue Partition erstellen | 
 +| t | Typ der Partition setzen | 
 +| p | Partitionstabelle anzeigen | 
 +| w | geänderte Partitionstabelle speichern | 
 +| q | fdisk verlassen ohne zu speichern | 
 +++++ 
 +=== Benötigte Pakete === 
 +  * Debian: ''util-linux'' 
 +=== Partition erstellen === 
 +[[wpde>Byte#Vergleich|2 Gigibyte]] große Partition auf Festplatte ''/dev/sda'' anlegen: 
 +  fdisk /dev/sda 
 +Aktuelle Partitionstabelle anzeigen: 
 +  p 
 +Neue Partition erstellen: 
 +  n 
 +Partition als logische Partition erstellen (//nur bei MSDOS/MBR//): 
 +  l 
 +Startblock auswählen: //Bei der ersten Partition sollte hier Sektor 2048 oder ein Vielfaches davon stehen. Wenn die Sektorgröße 512 Bytes ist, dann liegt der Partitionsbeginn bei 1048576 Bytes ([[wpde>Mebibyte|=1 MiB]]).// 
 + 
 +Größe angeben: 
 +  +2G 
 +geänderte Partitionstabelle speichern: 
 +  w 
 + 
 +=== Prüfen, ob der Kernel die geänderte Partitionstabelle kennt == 
 +  cat /proc/partitions 
 +Wenn nicht, Kernel Partitionstabelle neu einlesen lassen: 
 +  blockdev --rereadpt /dev/sda 
 +((oder 
 +  partprobe 
 +)) 
 + 
 +==== mit parted ==== 
 +++++ Wichtige parted Befehle | 
 +| help    | Hilfe | 
 +| rm      | Partition löschen | 
 +| mklabel | neue Partitionstabelle erstellen | 
 +| mkpart  | neue Partition erstellen | 
 +| set     | Typ der Partition setzen | 
 +| print   | Partitionstabelle anzeigen | 
 +| quit    | fdisk verlassen ohne zu speichern | 
 +++++ 
 +=== Benötigte Pakete === 
 +  * Debian: ''parted'' 
 + 
 +=== Partition erstellen === 
 +2 Gibibyte große Partition auf Festplatte ''/dev/sda'' anlegen: 
 +  parted /dev/sda 
 +Aktuelle Partitionierung ausgeben: 
 +  print 
 +Neue Partition erstellen: 
 +  mkpart 
 +Partition type?  primary/logical? 
 +  l 
 +File system type? 
 +  ext3 
 +Start? 
 +  xxx 
 +End?  
 +  xxx 
 +Parted verlassen: 
 +  quit 
 + 
 +====== Partitionstabelle sichern und wiederherstellen ====== 
 +==== sfdisk ==== 
 +=== sichern === 
 +  sfdisk -d /dev/sda > part-table.txt 
 +=== wiederherstellen === 
 +  sfdisk /dev/sda <  part-table.txt 
 + 
 +==== sgdisk ==== 
 +nur für GPT Partitionen 
 +=== sichern === 
 +  sgdisk --backup=sda.gpt.bkup /dev/sda 
 +=== wiederherstellen === 
 +  sgdisk --load-backup=sda.gpt.bkup /dev/sda 
 + 
 +==== dd ==== 
 +geht nur bei identischer Festplatte 
 +=== sichern === 
 +  dd if=/dev/sda of=part-table.img bs=1 count=512 
 +=== wiederherstellen === 
 +  dd if=part-table.img of=/dev/sda bs=1 count=64 skip=446 seek=446 
 + 
 +==== fdisk ==== 
 +=== sichern === 
 +  fdisk -l > partitionierung.txt 
 +=== wiederherstellen === 
 +geht nur von Hand 
 + 
 +==== gdisk ==== 
 +=== sichern === 
 +  gdisk -l > partitionierung.txt 
 +=== wiederherstellen === 
 +geht nur von Hand 
 + 
 +==== parted ==== 
 +=== sichern === 
 +  parted /dev/sda print > partitionierung.txt 
 +=== wiederherstellen === 
 +geht nur von Hand
  
 ====== Übung: default-Werte für mount-Optionen herausfinden ====== ====== Übung: default-Werte für mount-Optionen herausfinden ======
 Test-Image erstellen und mounten: Test-Image erstellen und mounten:
 +  fallocate -l 500M /tmp/zero.img
 +((
 +oder
   dd if=/dev/zero of=/tmp/zero.img bs=1M seek=500 count=0   dd if=/dev/zero of=/tmp/zero.img bs=1M seek=500 count=0
 +oder
 +  dd if=/dev/zero of=/tmp/zero.img bs=1M 500
 +))
   mkfs.ext4 /tmp/zero.img   mkfs.ext4 /tmp/zero.img
-  mkdir /mnt/img +  mount -m /tmp/zero.img /mnt/img
-  mount /tmp/zero.img /mnt/img+
  
 === Ist die mount-Option suid aktiv? === === Ist die mount-Option suid aktiv? ===
Zeile 19: Zeile 173:
   chmod u+s /mnt/img/tail   chmod u+s /mnt/img/tail
 Als Nutzer: Als Nutzer:
-  /mnt/img/tail /etc/shadow +  /mnt/img/tail -n0 /etc/shadow 
-Ist das SUID-Bit wirksam?+-> Ist das SUID-Bit wirksam?
  
 === Ist die mount-Option exec aktiv? === === Ist die mount-Option exec aktiv? ===
   cp -a /usr/bin/tail /mnt/img   cp -a /usr/bin/tail /mnt/img
   /mnt/img/tail /etc/passwd   /mnt/img/tail /etc/passwd
-Ist ''/mnt/img/tail'' ausführbar?+-> Ist ''/mnt/img/tail'' ausführbar?
  
 === Ist die mount-Option dev aktiv? === === Ist die mount-Option dev aktiv? ===
   mknod /mnt/img/sda b 8 0   mknod /mnt/img/sda b 8 0
   fdisk -l /mnt/img/sda   fdisk -l /mnt/img/sda
-Ist der Zugriff auf das Device ''/mnt/img/sda'' möglich?+-> Ist der Zugriff auf das Device ''/mnt/img/sda'' möglich?
  
 ====== Übung: virtuelle Festplatte partitionieren ====== ====== Übung: virtuelle Festplatte partitionieren ======
Zeile 39: Zeile 193:
   * Debian 8: ''parted qemu-utils''   * Debian 8: ''parted qemu-utils''
   * openSUSE 42.2: ''parted qemu-tools''   * openSUSE 42.2: ''parted qemu-tools''
 +
 +===== Beispiel: Loop-Devices mit Sparse-Files =====
 +Nicht in der Praxis ;-)
 +
 +== Sparse-File erzeugen ==
 +  dd if=/dev/zero of=disc1 bs=1K count=0 seek=200M
 +  ls -lsh disc*
 +  losetup -f disc1 --show
 +  losetup -a
 +
 +== Loop-Devices partitionieren ==
 +  lsblk
 +  {fdisk,gdisk,parted} /dev/loopxx
 +
 +== Partitionen sichtbar machen ==
 +  partprobe
 +  partprobe /dev/loopxx
  
 ===== Beispiel: GPT mit parted ===== ===== Beispiel: GPT mit parted =====
Zeile 73: Zeile 244:
   mkfs.xfs -d agcount=2 /dev/loop0p2   mkfs.xfs -d agcount=2 /dev/loop0p2
  
-==== CentOS 7 ins Image installieren ==== 
-  yumdownloader centos-release.x86_64 
-  rpm -ihv --nodeps --root /mnt/loop centos-release-7-*.rpm 
-  install -b --suffix=.orig /etc/yum.repos.d/CentOS-Base.repo /mnt/loop/etc/yum.repos.d/CentOS-Base.repo 
-  yum -y --nogpg --releasever=7 --installroot=/mnt/loop install grub2 iproute tmux passwd procps-ng systemd yum 
-  grub2-install --root-directory=./ /dev/loop0 
- 
-   
-TODO: formatieren, vergrößern 
-====== Partitionstabelle sichern und wiederherstellen ====== 
-==== sfdisk ==== 
-für MBR-partitionierte Blockgeräte 
-=== sichern === 
-  sfdisk -d /dev/sda > part-table.txt 
-=== wiederherstellen === 
-  sfdisk /dev/sda <  part-table.txt 
- 
-==== sgdisk ==== 
-für GPT Partitionen 
-=== sichern === 
-  sgdisk --backup=sda.gpt.bkup /dev/sda 
-=== wiederherstellen === 
-  sgdisk --load-backup=sda.gpt.bkup /dev/sda 
- 
-==== dd ==== 
-geht nur bei identischer Festplatte 
-=== sichern === 
-  dd if=/dev/sda of=part-table.img bs=1 count=512 
-=== wiederherstellen === 
-  dd if=part-table.img of=/dev/sda bs=1 count=64 skip=446 seek=446 
-==== fdisk ==== 
-=== sichern === 
-  fdisk -l > partitionierung.txt 
-=== wiederherstellen === 
-geht nur von Hand 
- 
-==== gdisk ==== 
-=== sichern === 
-  gdisk -l > partitionierung.txt 
-=== wiederherstellen === 
-geht nur von Hand 
- 
- 
-==== parted ==== 
-=== sichern === 
-  parted /dev/sda print > partitionierung.txt 
-=== wiederherstellen === 
-geht nur von Hand 
- 
-Leere Partitionstabelle erstellen: 
-  parted /dev/sda mklabel  
-  msdos 
-oder 
-  gpt 
-Partitionierung [[partitionierung#beispielneue_partition_anlegen| von Hand anlegen]] 
- 
-====== Partitionierung ====== 
-===== fdisk/gdisk ===== 
-fdisk - ausschließlich MBR-Partitionierte Blockgeräte\\ 
-gdisk - GPT Blockgeräte 
-==== Benötigte Pakete ==== 
-Debian: 
-  util-linux 
-=== Wichtige fdisk Befehle === 
-| m | Hilfe | 
-| d | Partition löschen | 
-| n | neue Partition erstellen | 
-| t | Typ der Partition setzen | 
-| p | Partitionstabelle anzeigen | 
-| w | geänderte Partitionstabelle speichern | 
-| q | fdisk verlassen ohne zu speichern | 
- 
-==== Beispiel: neue Partition anlegen ==== 
-2100 MByte große Partition auf Festplatte ''/dev/sda'' anlegen: 
-  fdisk /dev/sda 
-Neue Partition erstellen: 
-  n 
-Partition als logische Partition erstellen: 
-  l 
-Startblock auswählen: 
- 
-//Bei der ersten Partition sollte hier Sektor 2048 oder ein Vielfaches davon stehen. Wenn die Sektorgröße 512 Bytes ist, dann liegt der Partitionsbeginn bei 1048576 Bytes ([[wpde>Mebibyte|=1 MiB]]). Bei virtuellen Maschinen kann man hier auch 0 angeben.// 
- 
-Größe angeben: 
-  +2100M 
-geänderte Partitionstabelle speichern: 
-  w 
-Alte Kerneltabelle ansehen: 
-  cat /proc/partitions 
-Kernel Partitionstabelle neu einlesen lassen: 
-  partprobe 
-((oder 
-  blockdev --rereadpt /dev/sda  
-)) 
- 
-Neue Kerneltabelle prüfen: 
-  cat /proc/partitions 
- 
-===== Mit parted ===== 
-==== Benötigte Pakete ==== 
-Debian: 
-  parted 
- 
-=== Wichtige parted Befehle === 
-| help    | Hilfe | 
-| rm      | Partition löschen | 
-| mklabel | neue Partitionstabelle erstellen | 
-| mkpart  | neue Partition erstellen | 
-| set     | Typ der Partition setzen | 
-| print   | Partitionstabelle anzeigen | 
-| quit    | fdisk verlassen ohne zu speichern | 
- 
-==== Beispiel: neue Partition anlegen ==== 
-2100 MByte große Partition auf Festplatte ''/dev/sda'' anlegen: 
-  parted /dev/sda 
-Aktuelle Partitionierung ausgeben: 
-  print 
-Neue Partition erstellen: 
-  mkpart 
-Partition type?  primary/logical? 
-  l 
-File system type? 
-  ext3 
-Start? 
-  16500 
-End?  
-  19077 
-Parted verlassen: 
-  quit 
- 
-=== Fehlermeldung: The resulting partition is not properly aligned for best performance === 
-eine Lösung wird nicht mehr Bereitgestellt 
  
  
admin_grundlagen/partitionierung.1647563922.txt.gz · Zuletzt geändert: 2022/03/18 00:38 von ingo_wichmann