Root-Partition verkleinern und LVM anlegen
ich möchte hier einmal beschreiben wie die Root-Partition eines laufen Servers mit einem Reboot verkleinert werden kann und anschließend der freigewordenen Speicherplatz für ein LVM genutzt wird.
Wir fangen an mit dem ersten Script für den Boot Prozess. Hier wird die nötige Vorbereitung zum Resize der Festplatte durchgeführt. Die Binary wird beim Boot Prozess deployed.
1 | nano /etc/initramfs-tools/hooks/resize-hook |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/bin/sh PREREQ="" prereqs() { echo "$PREREQ" } case "${1:-}" in prereqs) prereqs exit 0 ;; esac . /usr/share/initramfs-tools/hook-functions # copy the binary as early as possible copy_exec /sbin/resize2fs /sbin copy_exec /sbin/e2fsck /sbin |
Das eigentliche Script zum verkleinern der Festplatte ist dann folgendes:
1 | nano /etc/initramfs-tools/scripts/local-premount/resize |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/bin/sh PREREQ="" prereqs() { echo "$PREREQ" } case $1 in # get pre-requisites prereqs) prereqs exit 0 ;; esac e2fsck -fy /dev/sda2 resize2fs /dev/sda2 200g |
WICHTIG: Im Script ist die Größe (200g = 200GB) angeben auf die die Root-Partition verkleinert werden soll, sowie die Root-Partitions Bezeichnung: /dev/sdaX.
Annahme ist hier das Ihr soviel Platz auf dem System habt, bzw die Nutzdaten nicht die Zielgröße überschreitet. Achtung: Datenverlust möglich.
Als nächste die Script ausführbar machen und die „Initramfs“ neu bauen/aktualisieren.
1 2 | chmod +x /etc/initramfs-tools/hooks/resize-hook chmod +x /etc/initramfs-tools/scripts/local-premount/resize |
1 | update-initramfs -u |
Anschließend wird der Server neu gestartet. Im Boot-Prozess wird dann die Festplatte auf die angegebene Größe verkleinert.
1 | fdisk /dev/sda |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | Welcome to fdisk (util-linux 2.31.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 931 GiB, 999653638144 bytes, 1952448512 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 79E5B2B1-04FA-4367-A29A-7848BBE62B82 Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 419434495 419430400 931G Linux filesystem Command (m for help): d Partition number (1-3, default 3): 2 Partition 2 has been deleted. Command (m for help): n Partition number (2,4-128, default 2): First sector (4096-419434495, default 4096): Last sector, +sectors or +size{K,M,G,T,P} (4096-419434495, default 419434495): +200G Created a new partition 2 of type 'Linux filesystem' and of size 200 GiB. Partition #2 contains a ext4 signature. Do you want to remove the signature? [Y]es/[N]o: N Command (m for help): p Disk /dev/sda: 931 GiB, 999653638144 bytes, 1952448512 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 79E5B2B1-04FA-4367-A29A-7848BBE62B82 Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 419434495 419430400 200G Linux filesystem Command (m for help): |
Innerhalb von „fdisk“ die alte Partition löschen und eine neue mit der Zielgröße anlegen.
Anschließend wird das LVM auf den freigewordenen Speicherplatz angelegt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | Welcome to fdisk (util-linux 2.31.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 931 GiB, 999653638144 bytes, 1952448512 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 79E5B2B1-04FA-4367-A29A-7848BBE62B82 Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 419434495 419430400 200G Linux filesystem Command (m for help): n Partition number (3-128, default 3): First sector (419434496-1952448478, default 419434496): Last sector, +sectors or +size{K,M,G,T,P} (419434496-1952448478, default 1952448478): Created a new partition 3 of type 'Linux filesystem' and of size 731 GiB. Partition #3 contains a LVM2_member signature. Do you want to remove the signature? [Y]es/[N]o: N Command (m for help): t Partition number (1-3, default 3): 3 Partition type (type L to list all types): 31 Changed type of partition 'Linux filesystem' to 'Linux LVM'. Command (m for help): p Disk /dev/sda: 931 GiB, 999653638144 bytes, 1952448512 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 79E5B2B1-04FA-4367-A29A-7848BBE62B82 Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 419434495 419430400 200G Linux filesystem /dev/sda3 419434496 1952448478 1533013983 731G Linux LVM Command (m for help): w -> Speicher und Exit |
Das LVM kann jetzt mit einem PV (Physical Volume) geschrieben werden.
1 | pvcreate /dev/sda3 |
In unserem PV kommt dann die VG (Volume Group).
1 | vgcreate "NAME" /dev/sda3 |
In das VG können dann mit „lvcreate“ die Partitionen angelegt werden.
Noch keine Kommentare vorhanden.