Linux: Online Festplatte vergrössern

 

Linux kann online, ohne reboot, erkennen, wenn eine Festplatte vergrössert wurde. Gerade für VMware oder auch CloudStack ist das hilfreich.

Für neue Systeme: Man vermeide es, eine Linux LVM PV als „logisches Laufwerk“ in einer erweiterten Partition (Extended Partition) zu erzeugen. Besser, man legt das PV als letzte „normale“ Partition auf der Festplatte an!

Inhaltsverzeichnis

Festplatte „physisch“ vergrössern

Zuerst wird die Festplatte „physisch“ vergrössert. Wie das geht, ist out-of-scope für diese Beschreibung.

Rescan

Um den Kernel die neue Plattengrösse herausfinden zu lassen, muss eine 1 an die rescan „Datei“ im /sys/class/scsi_disk Ordner gesendet werden. Es mag mehrere Unterordner geben.

local@allelv-vh01-stage:~$ ls /sys/class/scsi_disk/
32:0:0:0

Auf dem System gibt es nur 1 Festplatte und somit nur einen Unterordner.

local@allelv-vh01-stage:~$ echo 1 | sudo dd of=/sys/class/scsi_disk/32\:0\:0\:0/device/rescan
0+1 records in
0+1 records out
2 bytes copied, 0.000580769 s, 3.4 kB/s

Im /var/log/syslog sieht man, das der Kernel den Befehl empfangen hat:

Aug 28 12:00:24 allelv-vh01-stage kernel: [4814229.136379] sd 32:0:0:0: [sda] 356515840 512-byte logical blocks: (183 GB/170 GiB)
Aug 28 12:00:24 allelv-vh01-stage kernel: [4814229.136583] sda: detected capacity change from 128849018880 to 182536110080

Partition vergrössern

Falls das System „legacy“ Partitionen hat, so muss die letzte Partition vergrössert werden. Hierzu muss die Partition „gelöscht“ und mit identischem Start Block neu angelegt werden.

Falls eine „Extended Partition“ „im Weg“ ist, so kann man versuchen, statt dessen eine weitere primäre Partition anzulegen.

local@allelv-vh01-stage:~$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): p

Selected partition 4
First sector (3500032-356515839, default 3500032): 251656192
Last sector, +sectors or +size{K,M,G,T,P} (251656192-356515839, default 356515839): 

Created a new partition 4 of type 'Linux' and of size 50 GiB.

Command (m for help): p
Disk /dev/sda: 170 GiB, 182536110080 bytes, 356515840 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: dos
Disk identifier: 0xc1efb381

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048   1499135   1497088   731M  b W95 FAT32
/dev/sda2  *      1499136   3500031   2000896   977M 83 Linux
/dev/sda3         3502078 251656191 248154114 118.3G  5 Extended
/dev/sda4       251656192 356515839 104859648    50G 83 Linux
/dev/sda5         3502080   3504127      2048     1M 83 Linux
/dev/sda6         3506176 251656191 248150016 118.3G 83 Linux

Partition table entries are not in disk order.

Command (m for help): t
Partition number (1-6, default 6): 4
Partition type (type L to list all types): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): p
Disk /dev/sda: 170 GiB, 182536110080 bytes, 356515840 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: dos
Disk identifier: 0xc1efb381

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048   1499135   1497088   731M  b W95 FAT32
/dev/sda2  *      1499136   3500031   2000896   977M 83 Linux
/dev/sda3         3502078 251656191 248154114 118.3G  5 Extended
/dev/sda4       251656192 356515839 104859648    50G 8e Linux LVM
/dev/sda5         3502080   3504127      2048     1M 83 Linux
/dev/sda6         3506176 251656191 248150016 118.3G 83 Linux

Partition table entries are not in disk order.

Command (m for help): w

Als Start Sektor wurde 251656192 eingegeben, da die Extended Partitin sda3 einen Sektor vorher, auf 251656191 endet.

Extended → Nur offline!

Falls das System eine „Extended Partition“ und somit ein oder mehrere logische Laufwerke hat, so wird dies u.U. nicht gelingen von Hand. Man boote [Grml][grml] oder ein anderes Rescue System und verwende gparted.

Partitionstabelle neu lesen

Nachdem die Partitionstabelle von fdisk neu geschrieben wurde, weiss der Kernel nicht direkt was davon, was durch folgende Meldung gezeigt wird:

Command (m for help): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
local@allelv-vh01-stage:~$ ls -la /dev/sda?
brw-rw---- 1 root disk 8, 1 Jul  3 18:43 /dev/sda1
brw-rw---- 1 root disk 8, 2 Jul  3 18:43 /dev/sda2
brw-rw---- 1 root disk 8, 3 Aug 28 12:11 /dev/sda3
brw-rw---- 1 root disk 8, 5 Aug 28 12:29 /dev/sda5
brw-rw---- 1 root disk 8, 6 Aug 28 12:29 /dev/sda6

partprobe hilft hier:

local@allelv-vh01-stage:~$ sudo partprobe /dev/sda
local@allelv-vh01-stage:~$ ls -la /dev/sda?
brw-rw---- 1 root disk 8, 1 Jul  3 18:43 /dev/sda1
brw-rw---- 1 root disk 8, 2 Jul  3 18:43 /dev/sda2
brw-rw---- 1 root disk 8, 3 Aug 28 12:11 /dev/sda3
brw-rw---- 1 root disk 8, 4 Aug 28 12:33 /dev/sda4
brw-rw---- 1 root disk 8, 5 Aug 28 12:33 /dev/sda5
brw-rw---- 1 root disk 8, 6 Aug 28 12:33 /dev/sda6

LVM Volume Group (VG) vergrössern

Falls nur die Partition vergrössert wurde, so muss die bestehende Physical Volume (PV) vergrössert werden:

local@allelv-vh01-stage:~$ sudo lvm pvresize /dev/sda6
  Physical volume "/dev/sda6" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

Falls eine neue Partition angelegt wurde, so ist eine weitere Physical Volume anzulegen und die Volume Group zu erweitern.

local@allelv-vh01-stage:~$ sudo lvm pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created
local@allelv-vh01-stage:~$ sudo vgextend system /dev/sda4
  Volume group "system" successfully extended

 

 

 

 

Advertisements