LVM-Partition verschieben, LUKS-Partitionen vergrößern

Ich habe mir er­folg­reich mei­nen Lap­top ver­kon­fi­gu­riert. An­fangs war da nur eine Win­dows-In­stal­la­ti­on (*cough*) 'drauf, dann kam ein pro­vi­so­ri­sches Linux hinzu. In­zwi­schen ar­bei­te ich fast aus­schlie­ß­lich unter Linux, des­halb habe ich die Win­dows-Par­ti­ti­on deut­lich ver­klei­nert. Zwei Pro­ble­me gab es zu lösen: Der freie Platz mußte LVM zu­ge­schla­gen wer­den, und die darin be­find­li­chen (mit LUKS ver­schlüs­sel­ten) Par­ti­tio­nen mu­ß­ten ver­grö­ßert wer­den.

Die Li­nu­x­in­stal­la­ti­on ist be­reits auf LVM-Vo­lu­mes, al­ler­dings habe ich ver­se­hent­lich alle Par­ti­tio­nen als Pri­mä­re Par­ti­tio­nen an­ge­legt, so daß es nun nicht mög­lich war, dem frei­ge­wor­de­nen Platz einen Par­ti­ti­ons­ein­trag zu­zu­ord­nen. Wäre das ge­gan­gen, hätte ich ein­fach der Vo­lu­me Group ein wei­te­res Phy­si­cal Vo­lu­me (näm­lich die neue Par­ti­ti­on) hin­zu­fü­gen kön­nen... dumm. Noch düm­mer: par­ted (und di­ver­se an­de­re Pro­gram­me) wei­ger­ten sich, LVM-Par­ti­tio­nen zu ver­schie­ben, da ihnen das For­mat un­be­kannt war.
Glück­li­cher­wei­se ist LVM nicht von der phy­si­ka­li­schen Po­si­ti­on auf der Plat­te ab­hän­gig. Ein ein­fa­ches Um­ko­pie­ren mit dd funk­tio­niert. In mei­nem Fall war der frei­ge­wor­de­ne Platz klei­ner als die Größe mei­ner bis­he­ri­gen LVM-Par­ti­ti­on, des­halb habe ich sie kur­zer­hand auf eine ex­ter­ne Plat­te ko­piert:

  • LVM-Par­tii­ton si­chern: dd if=/dev/sda4 of=/mnt/exthd/lvmpart.​img
  • Par­ti­ti­on sda4 lö­schen, er­wei­ter­te Par­ti­ti­on (incl. des frei­en Plat­zes) an­le­gen, lo­gi­sche Par­ti­ti­on sda5 an­le­gen
  • Pa­ri­ti­on zu­rück­ko­pie­ren: dd if=/mnt/exthd/lvmpart.​img of=/dev/sda5
  • Phy­si­cal Vo­lu­me an die neue Größe an­pas­sen: pv­re­si­ze /dev/sda5

Pro-Tip: Statt dd dc­fldd ver­wen­den - da be­kommt man einen Fort­schritts­bal­ken an­ge­zeigt :-)

Das Ver­grö­ßern einer LUKS-ver­schlüs­sel­ten Par­ti­ti­on ge­stal­te­te sich glück­li­cher­wei­se eben­falls als sehr sim­pel:

  • Vo­lu­me Group mit Name "lap­top" ak­ti­vie­ren: vg­ch­an­ge -ay lap­top
  • Par­ti­ti­on um 20 GB ver­grö­ßern: lv­re­si­ze -L +20G /dev/lap­top/my­par­ti­ti­on
  • LUKS-Con­tai­ner öff­nen: crypt­se­t­up luks­Open /dev/lap­top/my­par­ti­ti­on my­par­ti­ti­on
  • Größe des LUKS-Con­tai­ners an­pas­sen: crypt­se­t­up re­si­ze my­par­ti­ti­on

Ab­schlie­ßend mußte noch das in­nen­lie­gen­de Da­tei­sys­tem an die neue Größe an­ge­pa­ßt wer­den. Bei ext4 waren dazu fol­gen­de Schrit­te nötig (die Pfad­an­ga­ben be­zie­hen sich auf den Map­per-Ein­trag, den crypt­se­t­up im vo­ri­gen Schritt an­ge­legt hat):

  • e2f­sck -f /dev/map­per/my­par­ti­ti­on
  • re­si­ze2fs /dev/map­per/my­par­ti­ti­on
  • e2f­sck -f /dev/map­per/my­par­ti­ti­on

Das war's! Hoffe, die­ser Spick­zet­tel hilft dem einen oder an­de­ren (und mir beim nächs­ten Mal ;-) wei­ter.