Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
admin_grundlagen:partitionierung [2015/04/15 12:03] ingo_wichmann |
admin_grundlagen:partitionierung [2022/03/18 00:38] ingo_wichmann [Beispiel: lesend genutztes Verzeichnis im laufenden Betrieb auf neue Partition verschieben] |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
lsblk | lsblk | ||
+ | ===== Kernel Partitionsliste aktualisieren ===== | ||
+ | Nach Änderungen an einem Boot-Datenträger. (Im Paket parted) | ||
+ | partprobe | ||
====== Format der Partitionstabelle ====== | ====== 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. | + | 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: 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 ==== | ||
+ | für MBR-partitionierte Blockgeräte | ||
=== sichern === | === sichern === | ||
sfdisk -d /dev/sda > part-table.txt | sfdisk -d /dev/sda > part-table.txt | ||
=== wiederherstellen === | === wiederherstellen === | ||
sfdisk /dev/sda < part-table.txt | 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 ==== | ==== dd ==== | ||
geht nur bei identischer Festplatte | geht nur bei identischer Festplatte | ||
Zeile 22: | Zeile 108: | ||
=== wiederherstellen === | === wiederherstellen === | ||
geht nur von Hand | geht nur von Hand | ||
+ | |||
+ | ==== gdisk ==== | ||
+ | === sichern === | ||
+ | gdisk -l > partitionierung.txt | ||
+ | === wiederherstellen === | ||
+ | geht nur von Hand | ||
+ | |||
==== parted ==== | ==== parted ==== | ||
Zeile 37: | Zeile 130: | ||
====== Partitionierung ====== | ====== Partitionierung ====== | ||
- | ===== fdisk ===== | + | ===== fdisk/gdisk ===== |
+ | fdisk - ausschließlich MBR-Partitionierte Blockgeräte\\ | ||
+ | gdisk - GPT Blockgeräte | ||
==== Benötigte Pakete ==== | ==== Benötigte Pakete ==== | ||
Debian: | Debian: | ||
Zeile 59: | Zeile 154: | ||
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 109: | Zeile 204: | ||
=== Fehlermeldung: The resulting partition is not properly aligned for best performance === | === Fehlermeldung: The resulting partition is not properly aligned for best performance === | ||
- | Lösung: http://support.hp.com/us-en/document/c03479326 | + | eine Lösung wird nicht mehr Bereitgestellt |
- | + | ||
- | ==== Beispiel: Partition im laufenden Betrieb anlegen ==== | + | |
- | Partition anlegen: | + | |
- | parted /dev/sda | + | |
- | + | ||
- | 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 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 | + | |