Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:partitionierung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
lpi1:partitionierung [2018/11/12 10:58] – stefan_miethkelpi1:partitionierung [2026/10/09 19:23] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 2: Zeile 2:
   lsblk   lsblk
  
-===== Kernel Partitionsliste aktualisieren ===== +====== Partitionierung ====== 
-Nach Änderungen an einem Boot-Datenträger. (Im Paket parted) +===== Format der Partitionstabelle ===== 
-  partprobe +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. 
-====== 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. +
  
-====== Übung: default-Werte für Mount-Optionen herausfinden ====== +Tools: 
-Test-Image erstellen und mounten: +  * ''fdisk'' - MBR und GPT Partitionstabellen 
-  dd if=/dev/zero of=/tmp/zero.img bs=1M count=500 +  * ''gdisk'' - Spezialist für GPT Partitionstabellen 
-  mkfs.ext4 /tmp/zero.img +  * ''parted'' - MBR und GPT Partitionstabellen
-  mkdir /mnt/img +
-  mount /tmp/zero.img /mnt/img+
  
-''exec'': +===== Beispiel: neue Partition anlegen ===== 
-  cp -a /usr/bin/tail /mnt/img +==== mit gdisk ==== 
-Ist ''/mnt/img/tail'' ausführbar?+++++ 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''
  
-''suid'': +=== Partition erstellen === 
-  chmod u+s /mnt/img/tail +[[wpde>Byte#Vergleich|2 Gigibyte]] große Partition auf Festplatte ''/dev/sda'' anlegen: 
-Als Nutzer: +  gdisk /dev/sda 
-  /mnt/img/tail /etc/shadow +Aktuelle Partitionstabelle anzeigen: 
-Ist das SUID-Bit wirksam?+  p 
 +Neue Partition erstellen: 
 +  n 
 +Startblock auswählen: //Bei der ersten Partition sollte hier Sektor 2048 oder ein Vielfaches davon stehen//
  
-''dev'': +Größe angeben: 
-  mknod /mnt/img/sda b 8 0 +  +2G 
-  fdisk -l /mnt/img/sda +Label ändern: 
-Ist der Zugriff auf das Device ''/mnt/img/sda'' möglich?+  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
  
-====== Übung: virtuelle Festplatte partitionieren ====== +=== Prüfen, ob der Kernel die geänderte Partitionstabelle kennt == 
-Erstellen einer virtuellen Festplatte und vorbereiten für den Einsatz in einer VM+  cat /proc/partitions 
 +Wenn nicht, Kernel Partitionstabelle neu einlesen lassen: 
 +  blockdev --rereadpt /dev/sda 
 +((oder 
 +  partprobe 
 +)) 
 +==== 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]]).//
  
-Pakete installieren: +Größe angeben: 
-  * CentOS 7: ''qemu-img'' +  +2G 
-  * Debian 8: ''qemu-utils'' +geänderte Partitionstabelle speichern: 
-  * openSUSE 42.2: ''qemu-tools''+  w
  
-===== Beispiel: GPT mit parted =====+=== 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 
 +))
  
-Virtuelle Festplatte erstellen: +==== mit parted ==== 
-  qemu-img create /srv/vmdisk1.img 2G+++++ 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''
  
-=== Partitionieren: === +=== Partition erstellen === 
-  parted /srv/vmdisk1.img +2 Gibibyte große Partition auf Festplatte ''/dev/sda'' anlegen: 
- +  parted /dev/sda 
-GPT-Partitionstabelle anlegen: (In der ''parted'' Kommandozeile) +Aktuelle Partitionierung ausgeben: 
-  mklabel gpt +  print 
- +Neue Partition erstellen: 
-[[wpde>Mebibyte|100 MiB - 1MiB]] (parted arbeitet mit festen Endwerten) Swap-Partition anlegen: +  mkpart 
-  mkpart linux-swap 1MiB 100MiB +Partition type?  primary/logical? 
- +  l 
-Daten-Partition anlegen: +File system type? 
-  mkpart ext4 100MiB 100% +  ext3 
- +Start? 
-''parted'' verlassen:+  xxx 
 +End?  
 +  xxx 
 +Parted verlassen:
   quit   quit
- 
-=== formatieren === 
-Partitionen aus der Image-Datei im System sichtbar machen: 
-  losetup --show -f -P /srv/vmdisk1.img 
- 
-Swap-Partition formatieren: 
-  mkswap /dev/loop0p1 
- 
-System/Datenpartition mit XFS für VM mit 2 vCPUs formatieren: 
-  mkfs.xfs -d agcount=2 /dev/loop0p2 
- 
-==== CentOS 7 ins Image installieren ==== 
-  yumdownloader centos-release.x86_64 
-  rpm --root /mnt/loop -ihv 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 systemd passwd yum procps-ng iproute tmux grub 
-  grub2-install --root-directory=./ /dev/loop0 
- 
-   
-TODO: formatieren, vergrößern 
  
 ====== Partitionstabelle sichern und wiederherstellen ====== ====== Partitionstabelle sichern und wiederherstellen ======
 ==== sfdisk ==== ==== sfdisk ====
-für MBR-partitionierte Blockgeräte 
 === sichern === === sichern ===
   sfdisk -d /dev/sda > part-table.txt   sfdisk -d /dev/sda > part-table.txt
Zeile 87: Zeile 126:
  
 ==== sgdisk ==== ==== sgdisk ====
-für GPT Partitionen+nur für GPT Partitionen
 === sichern === === sichern ===
   sgdisk --backup=sda.gpt.bkup /dev/sda   sgdisk --backup=sda.gpt.bkup /dev/sda
Zeile 99: Zeile 138:
 === wiederherstellen === === wiederherstellen ===
   dd if=part-table.img of=/dev/sda bs=1 count=64 skip=446 seek=446   dd if=part-table.img of=/dev/sda bs=1 count=64 skip=446 seek=446
 +
 ==== fdisk ==== ==== fdisk ====
 === sichern === === sichern ===
Zeile 110: Zeile 150:
 === wiederherstellen === === wiederherstellen ===
 geht nur von Hand geht nur von Hand
- 
  
 ==== parted ==== ==== parted ====
Zeile 118: Zeile 157:
 geht nur von Hand geht nur von Hand
  
-Leere Partitionstabelle erstellen: +====== Übung: default-Werte für mount-Optionen herausfinden ====== 
-  parted /dev/sda mklabel  +Test-Image erstellen und mounten: 
-  msdos+  fallocate -l 500M /tmp/zero.img 
 +((
 oder oder
-  gpt +  dd if=/dev/zero of=/tmp/zero.img bs=1M seek=500 count=0 
-Partitionierung [[partitionierung#beispielneue_partition_anlegen| von Hand anlegen]]+oder 
 +  dd if=/dev/zero of=/tmp/zero.img bs=1M 500 
 +)) 
 +  mkfs.ext4 /tmp/zero.img 
 +  mount -m /tmp/zero.img /mnt/img
  
-====== Partitionierung ====== +=== Ist die mount-Option suid aktiv? === 
-===== fdisk/gdisk ===== +  cp -a /usr/bin/tail /mnt/img 
-fdisk - ausschließlich MBR-Partitionierte Blockgeräte\\ +  chmod u+s /mnt/img/tail 
-gdisk - GPT Blockgeräte +Als Nutzer: 
-==== Benötigte Pakete ==== +  /mnt/img/tail -n0 /etc/shadow 
-Debian: +-> Ist das SUID-Bit wirksam?
-  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 ==== +=== Ist die mount-Option exec aktiv? === 
-2100 MByte große Partition auf Festplatte ''/dev/sda'' anlegen: +  cp -a /usr/bin/tail /mnt/img 
-  fdisk /dev/sda +  /mnt/img/tail /etc/passwd 
-Neue Partition erstellen: +-> Ist ''/mnt/img/tail'' ausführbar?
-  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.//+=== Ist die mount-Option dev aktiv? === 
 +  mknod /mnt/img/sda b 8 0 
 +  fdisk -l /mnt/img/sda 
 +-> Ist der Zugriff auf das Device ''/mnt/img/sda'' möglich?
  
-Größe angeben: +====== Übung: virtuelle Festplatte partitionieren ====== 
-  +2100M +Erstellen einer virtuellen Festplatte und vorbereiten für den Einsatz in einer VM 
-geänderte Partitionstabelle speichern: + 
-  w +Pakete installieren: 
-Alte Kerneltabelle ansehen: +  * CentOS 7: ''parted qemu-img'' 
-  cat /proc/partitions +  * Debian 8: ''parted qemu-utils'' 
-Kernel Partitionstabelle neu einlesen lassen:+  * 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
-((oder +  partprobe /dev/loopxx
-  blockdev --rereadpt /dev/sda  +
-))+
  
-Neue Kerneltabelle prüfen: +===== Beispiel: GPT mit parted =====
-  cat /proc/partitions+
  
-===== Mit parted ===== +Virtuelle Festplatte erstellen: 
-==== Benötigte Pakete ==== +  qemu-img create /srv/vmdisk1.img 2G
-Debian: +
-  parted+
  
-=== Wichtige parted Befehle === +=== Partitionieren: === 
-| help    | Hilfe | +  parted /srv/vmdisk1.img
-| 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 ==== +GPT-Partitionstabelle anlegen: (In der ''parted'' Kommandozeile) 
-2100 MByte große Partition auf Festplatte ''/dev/sda'' anlegen: +  mklabel gpt
-  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 === +[[wpde>Mebibyte|100 MiB - 1MiB]] (parted arbeitet mit festen Endwerten) Swap-Partition anlegen: 
-Lösung: http://support.hp.com/us-en/document/c03479326+  mkpart linux-swap 1MiB 100MiB
  
-==== Beispiel: Partition im laufenden Betrieb anlegen ==== +Daten-Partition anlegen: 
-Partition anlegen: +  mkpart ext4 100MiB 100% 
-  parted /dev/sda + 
-  print +GRUB BIOS Partition aktivieren: 
-  mkpart+  set 1 bios_grub on 
 + 
 +''parted'' verlassen:
   quit   quit
-Mountpoint anlegen und temporär mounten + 
-  mkfs.ext3 /dev/sda6 +=== formatieren === 
-  mkdir /mnt/sda6 +Partitionen aus der Image-Datei im System sichtbar machen: 
-  mount /dev/sda6 /mnt/sda6 +  losetup --show -f -P /srv/vmdisk1.img 
-Daten in die neue Partition kopieren: + 
-  cp -a /usr/bin/. /mnt/sda6 +Swap-Partition formatieren: 
-Kopie überprüfen: +  mkswap /dev/loop0p1 
-  ( cd /usr/bin; tar c . ) | ( cd /mnt/sda6; tar d . ) + 
-Partition wieder aushängen   +System/Datenpartition mit XFS für VM mit 2 vCPUs formatieren: 
-  umount /mnt/sda6 +  mkfs.xfs -d agcount=2 /dev/loop0p2 
-Partition endgültig mounten:   +
-  mount /dev/sda6 /usr/bin +
-  tail -n 1 /etc/mtab >> /etc/fstab +
-Daten auf Orginalpartition löschen:   +
-  mkdir /mnt/original +
-  mount --bind / /mnt/original +
-  shopt -s dotglob +
-  rm /mnt/original/usr/bin/* +
-  ls -la /mnt/original/usr/bin +
-  umount /mnt/original+
  
  
lpi1/partitionierung.1542020336.txt.gz · Zuletzt geändert: 2018/11/12 10:58 von stefan_miethke