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.

  1. Noch keine Kommentare vorhanden.

  1. Noch keine TrackBacks.