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
admin_grundlagen:partitionierung [2013/11/07 18:49]
ingo_wichmann
admin_grundlagen:partitionierung [2024/05/21 06:59] (aktuell)
ingo_wichmann
Zeile 2: Zeile 2:
   lsblk   lsblk
  
-====== ​Partitionstabelle sichern und wiederherstellen ​====== +====== ​Partitionierung ​====== 
-==== sfdisk ​===+===== Format der Partitionstabelle ​===== 
-=== sichern ​=== +Das lange unter Linux gebräuchliche MSDOS oder [[wpde>Master Boot Record|MBR]] Format kann man nur bei Festplatten unter 2TB verwendenFür größere Datenträger,​ oder 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
-  ​sfdisk -d /​dev/​sda ​part-table.txt +
-=== wiederherstellen === +
-  sfdisk /dev/sda <  part-table.txt +
-==== 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+
  
-==== parted ==== +Tools: 
-=== sichern === +  * fdisk - MBR und GPT Partitionstabellen 
-  ​parted /dev/sda print > partitionierung.txt +  ​* gdisk - Spezialist für GPT Partitionstabellen 
-=== wiederherstellen === +  * parted - MBR und GPT Partitionstabellen
-geht nur von Hand+
  
-Leere Partitionstabelle erstellen:​ +===== Beispiel: neue Partition anlegen ​===== 
-  parted /dev/sda mklabel  +==== mit fdisk ==== 
-  msdos +=== Benötigte Pakete === 
-oder +  ​* ​Debian: ​''​util-linux''​
-  gpt +
-Partitionierung [[partitionierung#​beispielneue_partition_anlegen| von Hand anlegen]] +
- +
-====== Partitionierung ====== +
-====fdisk ===== +
-==== Benötigte Pakete ​==== +
-Debian: +
-  ​util-linux+
 === Wichtige fdisk Befehle === === Wichtige fdisk Befehle ===
 | m | Hilfe | | m | Hilfe |
Zeile 47: Zeile 24:
 | q | fdisk verlassen ohne zu speichern | | q | fdisk verlassen ohne zu speichern |
  
-==== Beispiel: neue Partition ​anlegen ==== +=== Partition ​erstellen ​=== 
-2100 MByte große Partition auf Festplatte ''/​dev/​sda''​ anlegen:+2 Gigibyte ​große Partition auf Festplatte ''/​dev/​sda''​ anlegen:
   fdisk /dev/sda   fdisk /dev/sda
 +Aktuelle Partitionstabelle anzeigen:
 +  p
 Neue Partition erstellen: Neue Partition erstellen:
   n   n
-Partition als logische Partition erstellen:+Partition als logische Partition erstellen ​(//nur bei MSDOS/​MBR//​):
   l   l
-Startblock auswählen: +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]]).//
- +
-Vorgabe einfach mit Enter bestätigen ​)+
  
 Größe angeben: Größe angeben:
-  +2100M+  +2G
 geänderte Partitionstabelle speichern: geänderte Partitionstabelle speichern:
   w   w
-Alte Kerneltabelle ansehen:+ 
 +=== Prüfen, ob der Kernel die geänderte Partitionstabelle kennt ==
   cat /​proc/​partitions   cat /​proc/​partitions
-Kernel Partitionstabelle neu einlesen lassen:+Wenn nicht, ​Kernel Partitionstabelle neu einlesen lassen:
   partprobe   partprobe
 ((oder ((oder
Zeile 70: Zeile 48:
 )) ))
  
-Neue Kerneltabelle prüfen: +==== Mit parted ==== 
-  cat /​proc/​partitions +=== Benötigte Pakete === 
- +  ​* ​Debian: ​''​parted''​
-===== Mit parted ​===== +
-==== Benötigte Pakete ​==== +
-Debian: +
-  ​parted+
  
 === Wichtige parted Befehle === === Wichtige parted Befehle ===
Zeile 87: Zeile 61:
 | quit    | fdisk verlassen ohne zu speichern | | quit    | fdisk verlassen ohne zu speichern |
  
-==== Beispiel: neue Partition ​anlegen ==== +=== Partition ​erstellen ​=== 
-2100 MByte große Partition auf Festplatte ''/​dev/​sda''​ anlegen:+2 Gibibyte ​große Partition auf Festplatte ''/​dev/​sda''​ anlegen:
   parted /dev/sda   parted /dev/sda
 Aktuelle Partitionierung ausgeben: Aktuelle Partitionierung ausgeben:
Zeile 99: Zeile 73:
   ext3   ext3
 Start? Start?
-  ​16500+  ​xxx
 End?  End? 
-  ​19077+  ​xxx
 Parted verlassen: Parted verlassen:
   quit   quit
  
-==== BeispielPartition im laufenden Betrieb anlegen ​==== +====== Partitionstabelle sichern und wiederherstellen ====== 
-Partition anlegen+==== sfdisk ==== 
-  ​parted ​/dev/sda +=== sichern === 
-  ​print +  sfdisk -d /dev/sda > part-table.txt 
-  mkpart+=== 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 
 + 
 +====== Übungdefault-Werte für mount-Optionen herausfinden ====== 
 +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 
 +oder 
 +  dd if=/​dev/​zero of=/​tmp/​zero.img bs=1M 500 
 +)) 
 +  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   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 ====== +=== formatieren ​=== 
-  ​hdparm ​--/dev/sda+Partitionen aus der Image-Datei im System sichtbar machen: 
 +  ​losetup ​--show -f -P /​srv/​vmdisk1.img 
 + 
 +Swap-Partition formatieren:​ 
 +  mkswap ​/dev/loop0p1
  
-<​file>​ +System/Datenpartition mit XFS für VM mit 2 vCPUs formatieren
-/dev/sda+  ​mkfs.xfs -d agcount=/dev/loop0p2
- 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>+
  
 +==== 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
  
admin_grundlagen/partitionierung.1383850173.txt.gz · Zuletzt geändert: 2013/11/07 18:49 von ingo_wichmann