Physical volumen kutistaminen ja komplikaatiot

Lyhyesti:minulla on 1 teran ulkoinen kovo. Katselin että siinä on jonkin verran tyhjää tilaa minkä voisi ottaa hyötykäyttöön. Meinasin jotta asennan kokeeksi vaikka jonkin linux-distron.
Aika triviaalia.
Missä alkaa mennä jännäksi on se että suurin osa siitä teran kapasiteetista on osiotaulussa annettu physical volumen käyttöön. Ja kokemus sanoo että ongelmia tulee mikäli käyttää logical volumea /-osiona.
Eli pitäisi saada raivattua ulkoiselle kovolle osiotauluun tilaa 2 uudelle osiolle, mielellään niin että se kovolle aiemmin tallennettu sisältö ei kärsisi vahinkoa.
Ulkoisen kovon volume groupin sisältä löytyvän loogisen volumen kutistus onnistui komennoilla e2fsck+resize2fs+lvresize. Näytti vieläpä toimivan se ext3-osio sen kutistamisen jälkeen.
Seuraavana sitten sen physical volumen kutistaminen pvresize:lla jonka jälkeen fdiskillä ulkoisen kovon osiotaulun muuttaminen s.e. physical volumea pienemmäksi ja vapautuneeseen tilaan uudet osiot.
Paitsi että. Fdisk-hommien jälkeen linux ei suostu tunnistamaan että siltä kutistetulta volume groupilta löytyy mitään logical volumeita. Vaikka muutin sen physical volumen takaisin aiempaan kokoonsa niin eipä silti löydä sitä lv:tä mikä siellä volumegroupilla alunperin oli.
Jotain tässä on nyt mennyt pieleen ja alkoi kiinnostaa, pääsisikö jotenkin takaisin siihen tilanteeseen että se ulkoisen kovon logical volume löytyy?
Fdisk-hommien jälkeen ei siis lvdisplay löytänyt sitä lv:tä mikä aiemmin löytyi.

Löytyi pari linkkiä aiheeseen liittyen:

  1. http://unix.stackexchange.com/questions/67702/how-to-reduce-volume-group-size-in-lvm
  2. http://unix.stackexchange.com/questions/134586/how-to-reduce-lvm-size-and-increase-one-existing-partitions-size

tuon jälkimmäisen linkin ohjeiden vaiheet 6-10 vastaisivat aika lailla sitä mitä itse tein eilen.
Tosin ensimmäisessä linkissä onkin sitten mainittu tuo “–tv” - optio pvresize-komennolle sekä pvmove:n käyttö. No kun en “–tv”:tä keksinyt käyttää niin ei tullut “cannot resize”-urputustakaan näkyville ja pvmoven käyttökin jäi välistä.

Onkos tässä nyt jotain keinoa millä saisi sen ulkoisella kovolla sijaitsevan volumegroupin taas kuntoon? Jäin siihen tilanteeseen että sain sen ulkoisen kovon volumegroupin aktivoitua mutta lvdisplayn mielestä sillä vg:llä ei ole sitä loogista volumea mikä siellä pitäisi olla.
Volumegroupin kuntoon saamisella tarkoitan tietenkin sitä että toivottu lopputulos on se että lvdisplay sen loogisen volumen näkisi ja kyseinen lv:n sisältämän tiedostojärjestelmän pystyisi esim. mounttaamaan.

En välitä käyttää LVM-osiointia, koska tarve käyttää levyosioita muissakin jakeluissa on tarpeellista. Myös tilanteessa, jossa levyosiot sotkeutuvat (ääääääärrrriiimmmäisen harvinaista), voi tuolloin olla kohtuullisen vaikeaa käyttää yleisiä korjausohjelmia. Lähtökohdiltaan en tarvitse LVM:ää lainkaan.
Jos siis jostakin syystä haluaisin pienentää/muuttaa LVM-osiointia, tallentaisin kaiken datan osiolta - poistaisin osioinnin - muuttaisin osioiden koon haluamakseni - tekisin uuden osioinnin (vaikka siis LVM:ksi) - ja kopioisin tiedostot LVM-osioille.
Jos levytilaa siis yhä jäisi, voi tuon vapautuneen tilan osioida uudelleen, ja hyödyntää haluamallaan tavalla.
Linux/Unix -järjestelmissä on niin monia mahdollisuuksia liittää (mount) ja linkittää (ln) levyosioita/hakemistoja/tiedostoja varsinaiseen tiedostojärjestelmään, ettei dynaaminen levyosioiden käyttö (kaikissa tapauksissa) ole varmaankaan tarpeen.

Niin no siis lähtötilannehan oli seuraavanlainen

  • on teran kokoinen ulkoinen kovalevy mille on aikoinaan luotu volumegroup ja tälle volumegroupille on annettu lähes koko teran kapasiteetti. Ei silloin tullut mieleen että LVM:n käyttö on kielletty.
  • tarkempi analyysi osoittaa että tuosta teran kapasiteetista on vain noin puolet käytössä
  • ne tavarat, mitkä noin puolet kapasiteetista vievät, olisi kiva säilyttää jos vain mahdollista (vaikka siellä jotain turhaakin varmaan oli joukossa)
  • valitettavasti noita ulkoisia kovoja löytyi vain 1 joten sisällön pallottelu edestakaisin ei ollut optio
  • ei nyt viikonloppuna napannut lähteä ostamaan uutta kovoa kun vanhaankin voisi vielä periaatteessa järjestää uutta tilaa

. Ilmeisin ratkaisu millä tuolle kovolle siis olisi saanut tilaa kokeiluja varten wanhan sisällön säilyttäen sisälsi siis volume groupin kutistamisen.

Tällä hetkellä on sellainen tilanne että volumegroupin saan aktivoitua mutta lvdisplay ei löydä sieltä sitä lv:tä mikä siellä aiemmin oli.

Vissiin tuon pvmove-loitsun väliin jättäminen aikaansai sen lv:n katoamisen. Tai sitten se kun yhdessä vaiheessa tein vgcreate:lla uuden vg:n tuosta pv:stä kun ei sitä vanhaa vg:tä saanut aktivoitua.

Sen tiedän että ext3-tiedostojärjestelmässä tehdään luontivaiheessa varmuuskopioita superblokista ja näiden kopioiden avulla voi rikki mennyttä ext3:sta yrittää korjata.
Onkohan mitään vastaavaa olemassa LVM2:selle?

Ja muuten kyllä LVM:ssä olisi kätevältä vaikuttavia ominaisuuksia.
Jos tarvitsee esim. lisää tilaa jollekin osiolle, riittää resize2fs+lvresize. Ei tarvitse linkityksiä tehdä/editoida fstabia eikä tule osiotaulun rajoitukset vastaan niin helposti.

Snapshotitkin olisivat ainakin periaatteessa hyvä idea, erityisesti / -osion kanssa. Jos kaikesta huolimatta jotain ei-toivottua tapahtuu niin voisi palata siihen tilanteeseen milloin asiat olivat kunnossa.

Tosin käytännössä sitten vähän toinen juttu.

Vastaan itsellleni edelliseen viestiin sen verran että google löysi esim. tämmöisiä
https://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/mdatarecover.html
https://www.novell.com/coolsolutions/appnote/19386.html
http://blog.adamsbros.org/2009/05/30/recover-lvm-volume-groups-and-logical-volumes-without-backups/
. Vissiin kokeilen noita ohjeita lähiaikoina.