Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:partitionierung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Letzte Überarbeitung Beide Seiten, nächste Überarbeitung
admin_grundlagen:partitionierung [2013/05/14 19:20]
ingo_wichmann
admin_grundlagen:partitionierung [2024/01/24 08:03]
sh [Beispiel: GPT mit parted]
Zeile 2: Zeile 2:
   lsblk   lsblk
  
 +===== Kernel Partitionsliste aktualisieren =====
 +Nach Änderungen an einem Boot-Datenträger. (Im Paket parted)
 +  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. ​
 +
 +====== Übung: default-Werte für mount-Optionen herausfinden ======
 +Test-Image erstellen und mounten:
 +  dd if=/​dev/​zero of=/​tmp/​zero.img bs=1M seek=500 count=0
 +  mkfs.ext4 /​tmp/​zero.img
 +  mkdir /mnt/img
 +  mount /​tmp/​zero.img /mnt/img
 +
 +=== Ist die mount-Option suid aktiv? ===
 +  cp -a /​usr/​bin/​tail /mnt/img
 +  chmod u+s /​mnt/​img/​tail
 +Als Nutzer:
 +  /​mnt/​img/​tail /etc/shadow
 +Ist das SUID-Bit wirksam?
 +
 +=== Ist die mount-Option exec aktiv? ===
 +  cp -a /​usr/​bin/​tail /mnt/img
 +  /​mnt/​img/​tail /etc/passwd
 +Ist ''/​mnt/​img/​tail''​ ausführbar?​
 +
 +=== 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?
 +
 +====== Übung: virtuelle Festplatte partitionieren ======
 +Erstellen einer virtuellen Festplatte und vorbereiten für den Einsatz in einer VM
 +
 +Pakete installieren:​
 +  * CentOS 7: ''​parted qemu-img''​
 +  * Debian 8: ''​parted qemu-utils''​
 +  * 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 =====
 +
 +Virtuelle Festplatte erstellen:
 +  qemu-img create /​srv/​vmdisk1.img 2G
 +
 +=== Partitionieren:​ ===
 +  parted /​srv/​vmdisk1.img
 +
 +GPT-Partitionstabelle anlegen: (In der ''​parted''​ Kommandozeile)
 +  mklabel gpt
 +
 +[[wpde>​Mebibyte|100 MiB - 1MiB]] (parted arbeitet mit festen Endwerten) Swap-Partition anlegen:
 +  mkpart linux-swap 1MiB 100MiB
 +
 +Daten-Partition anlegen:
 +  mkpart ext4 100MiB 100%
 +
 +GRUB BIOS Partition aktivieren:
 +  set 1 bios_grub on
 +
 +''​parted''​ verlassen:
 +  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 -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 ====== ====== Partitionstabelle sichern und wiederherstellen ======
 ==== sfdisk ==== ==== sfdisk ====
Zeile 8: Zeile 105:
 === wiederherstellen === === wiederherstellen ===
   sfdisk /dev/sda <  part-table.txt   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 ==== ==== dd ====
 geht nur bei identischer Festplatte geht nur bei identischer Festplatte
Zeile 19: Zeile 124:
 === wiederherstellen === === wiederherstellen ===
 geht nur von Hand geht nur von Hand
 +
 +==== gdisk ====
 +=== sichern ===
 +  gdisk -l > partitionierung.txt
 +=== wiederherstellen ===
 +geht nur von Hand
 +
  
 ==== parted ==== ==== parted ====
Zeile 24: Zeile 136:
   parted /dev/sda print > partitionierung.txt   parted /dev/sda print > partitionierung.txt
 === wiederherstellen === === wiederherstellen ===
 +geht nur von Hand
 +
 Leere Partitionstabelle erstellen: Leere Partitionstabelle erstellen:
   parted /dev/sda mklabel ​   parted /dev/sda mklabel ​
Zeile 32: Zeile 146:
  
 ====== Partitionierung ====== ====== Partitionierung ======
-===== fdisk =====+===== fdisk/​gdisk ​===== 
 +  * fdisk - MBR und GPT Partitionstabellen 
 +  * gdisk - Spezialist für GPT Partitionstabellen
 ==== Benötigte Pakete ==== ==== Benötigte Pakete ====
 Debian: Debian:
Zeile 54: Zeile 170:
 Startblock auswählen: Startblock auswählen:
  
-Vorgabe einfach mit Enter bestätigen ​)+//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: Größe angeben:
Zeile 67: Zeile 183:
   blockdev --rereadpt /​dev/​sda ​   blockdev --rereadpt /​dev/​sda ​
 )) ))
 +
 Neue Kerneltabelle prüfen: Neue Kerneltabelle prüfen:
   cat /​proc/​partitions   cat /​proc/​partitions
Zeile 102: Zeile 219:
   quit   quit
  
-==== BeispielPartition im laufenden Betrieb anlegen ​===+=== FehlermeldungThe resulting partition is not properly aligned for best performance ​=== 
-Partition anlegen: +eine Lösung wird nicht mehr Bereitgestellt
-  parted /dev/sda +
-  print +
-  mkpart +
-  quit +
-Mountpoint anlegen und temporär mounten +
-  mkfs.ext3 /dev/sda6 +
-  mkdir /mnt/sda6 +
-  mount /dev/sda6 /mnt/sda6 +
-Daten in die neue Partition kopieren: +
-  cp -a /usr/bin/. /mnt/sda6 +
-Kopie überprüfen:​ +
-  ( cd /usr/bin; tar c . ) | ( cd /mnt/sda6; tar d . ) +
-Partition wieder aushängen ​  +
-  umount /mnt/sda6 +
-Partition entgü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 +
- +
-====== einfache Performance Tests ====== +
-  hdparm -t -T /dev/sda +
- +
-<​file>​ +
-/dev/sda: +
- ​Timing cached reads: ​  2900 MB in  2.00 seconds = 1448.77 MB/sec +
- ​Timing buffered disk reads: ​  82 MB in  3.13 seconds =  26.22 MB/sec +
-</​file>​ +
  
  
admin_grundlagen/partitionierung.txt · Zuletzt geändert: 2024/02/20 14:33 von ingo_wichmann