%!PS %%Title: Guide pratique de LVM %%Creator: html2ps version 1.0 beta5 %%EndComments save 2000 dict begin /d {bind def} bind def /D {def} d /t true D /f false D /FL [/Times-Roman /Times-Italic /Times-Bold /Times-BoldItalic /Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique /Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique] D /WF t D /WI 0 D /F 1 D /IW 454 F div D /IL 672 F div D /PS 842 D /EF [0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 2 2] D /EZ [11 9 19 17 15 13 12 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 8 8] D /Ey [0 0 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] D /EG [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1] D /Tm [1 1 0.8 0.8 0.8 0.8 0.8 0.8 0 0 0 0 0 0 0.5 1 1 1 1 0 0 1.3 0 0] D /Bm [1 1 0.5 0.5 0.5 0.5 0.5 0.5 0 0 0 0 0 0 0.5 1 1 1 1 0 0 1 0 0] D /Lm [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 0 0 2 0 0 0] D /Rm [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0] D /EU [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0] D /NO f D /YY [[{()}1][{()}0][{()}2]] D /ZZ [[{()}1][{()}0][{()}2]] D /Ts EZ 0 get D /TU f D /Xp t D /AU f D /SN 0 D /Cf f D /Tp f D /Fe f D /TI 1 Ts mul D /Fm 14 D /xL 71 D /xR 71 D /yL 757 D /yR 757 D /Wl 454 F div D /Wr 454 F div D /hL 672 F div D /hR 672 F div D /FE {newpath Fm neg Fm M CP BB IW Fm add Fm L IW Fm add IL Fm add neg L CP BB Fm neg IL Fm add neg L closepath} D /LA {PM 0 eq{/IW Wl D /IL hL D}{/IW Wr D /IL hR D}ie /W IW D /LL W D /LS W D TU PM 0 eq and{IW 56 F div add SA{Sf div}if 0 translate} {PM 0 eq{xL yL}{xR yR}ie translate F SA{Sf mul}if dup scale CS CF FS Cf{CA CL get VC}if /Bb f D}ie 0 0 M TF not Tc or {Cf{gsave SA{1 Sf div dup scale}if Cb VC FE fill grestore}if}if}D /Pi 0 Ts mul D /SG [0.8 1 1] D /Ab 15 D /J 0 D /Tc f D /NH 6 D /Nf f D /Pa f D /LH 1.2 D /XR f D /Xr {/pN E D ( [p ) WB pN WB (] )WB} D /Db [16#FF 16#FF 16#FF] D /Dt [16#00 16#00 16#00] D /eA f D /Fi f D /bT f D /Lc t D /Dl [16#00 16#00 16#00] D /LX f D /Br 0.25 D /IA ([IMAGE]) D /DS {/PF f D()WB NL NP()pop RC ZF} D /Gb f D /Mb t D /Hc [16#00 16#00 16#00] D /Bl 3 D /MI -15.2 D /DX (DRAFT) D /Di 0 D /Tt 113.385826771654 D /Th {()2 Al()BR ( ) 0 1 -1 H()4 FZ Ti ES()EH ( ) 0 2 -1 H() ME 0 get join EH()Ea()BR()} D /tH {()0 1 -1 H (Table of Contents) EH()} D /FD 2 D /Dy 2 D /cD [16#F0 16#F0 16#F0] D /FW 0.6 D /FU [16#00 16#00 16#00] D /ET {/RM f D /A0 0 D /PN SN D /OU t D /Ou t D /W IW D /LL W D D1 Ms not TP and{Ip}if /TF f D} D %-- End of variable part -- /MySymbol 10 dict dup begin /FontType 3 D /FontMatrix [.001 0 0 .001 0 0 ] D /FontBBox [25 -10 600 600] D /Encoding 256 array D 0 1 255{Encoding exch /.notdef put}for Encoding (e) 0 get /euro put /Metrics 2 dict D Metrics begin /.notdef 0 D /euro 651 D end /BBox 2 dict D BBox begin /.notdef [0 0 0 0] D /euro [25 -10 600 600] D end /CharacterDefs 2 dict D CharacterDefs begin /.notdef {} D /euro{newpath 114 600 moveto 631 600 lineto 464 200 lineto 573 200 lineto 573 0 lineto -94 0 lineto 31 300 lineto -10 300 lineto closepath clip 50 setlinewidth newpath 656 300 moveto 381 300 275 0 360 arc stroke -19 350 moveto 600 0 rlineto -19 250 moveto 600 0 rlineto stroke}d end /BuildChar{0 begin /char E D /fontdict E D /charname fontdict /Encoding get char get D fontdict begin Metrics charname get 0 BBox charname get aload pop setcachedevice CharacterDefs charname get exec end end}D /BuildChar load 0 3 dict put /UniqueID 1 D end definefont pop /Cd {aload length 2 idiv dup dict begin {D} repeat currentdict end} D /EX {EC cvx exec} D /DU {} d /BB {pop pop}d /ie {ifelse} d /E {exch} d /M {moveto} d /R {rmoveto} d /L {lineto} d /RL {rlineto} d /CP {currentpoint} d /SW {stringwidth} d /GI {getinterval} d /PI {putinterval} d /Sg {setgray} d /LW {setlinewidth} d /S {dup () ne OU and{0 Co R AT 3 eq LB and HF not and A1 0 ne A2 0 ne or and {A2 0 32 A1 0 6 -1 roll awidthshow}{show}ie 0 Co neg R}{pop}ie OU PH 3 eq or{/Ms t D}if} D /U {OU{gsave CP currentfont /FontInfo get /UnderlinePosition get 0 E currentfont /FontMatrix get dtransform E pop add newpath M dup SW pop CJ 0 RL stroke grestore}if} D /B {OU Br 0 gt and{CP Ts neg Ts .33 mul R gsave 0 Sg CP newpath Ts Br mul 0 360 arc closepath UI 2 mod 0 eq{stroke}{fill}ie grestore M CP E Ts Br 1 add mul sub E BB /Ms t D}if}D /NP {Ms TP not or PA and OU and{TP{OR}if f1{mF k2 /mF E D /YC 0 D}if TP TU not PM 0 eq or and{showpage}if DU Ip TE not{LA}if 0.6 LW /CI 0 D /TP t D /Hs f D /hl 6 D /Hv 6 D /HI hi D /Ms f D}if Bs XO BO M} D /Np {LE sub CP E pop gt PL 0 eq and{NP}if}D /Ip {/PN PN 1 add D /Pn RM{1}{4}ie PN Ns D /PM PN SN sub 2 mod D} D /GP {E dup 3 -1 roll get PN 1 add 2 mod get dup type /integertype eq {get 0 get}{E pop}ie}d /Fc {dup 2 GP exec SW pop /S1 E D dup 1 GP exec SW pop /S2 E D 0 GP exec SW pop /S3 E D S1 0 gt{S2 2 mul S1 add S3 2 mul S1 add 2 copy lt{E}if pop}{0}ie S2 S3 add 2 copy lt{E}if pop IW .9 mul div dup 1 gt{1 E div}{pop 1}ie}D /OR {Df{Sd}if tp not{gsave SA{1 Sf div dup scale}if Fe{Cf{FU VC}if FW LW 1 setlinejoin FE stroke}if /YO {60 F div dup 40 gt{pop 40}if}D /cs CS D /cf CF D /CF 0 D /pf PF D /PF f D /Fn FN D /At AT D /AT 0 D /FN EF Hf 1 add get D Fz Fs FS ZZ Fc Fz mul Fs FS EU Hf 1 add get dup type /arraytype eq Cf and{VC}{pop 0 Sg}ie IW IL neg YO sub M ZZ 1 GP exec dup SW pop neg 0 R Sh 0 IL neg YO sub M ZZ 0 GP exec Sh ZZ 2 GP exec dup SW pop IW E sub 2 div IL neg YO sub M Sh Fz Fs FS NO{/AW IW Pn SW pop sub D AW 2 div IL neg YO sub S1 0 gt S2 AW .45 mul gt or S3 AW .45 mul gt or{Fz 2 mul sub}if M Pn Sh}if EU Hf get dup type /arraytype eq Cf and{VC}{pop 0 Sg}ie YY Fc /FN EF Hf get D Hz mul HS FS IW YO M YY 1 GP exec dup SW pop neg 0 R Sh 0 YO M YY 0 GP exec Sh YY 2 GP exec dup SW pop IW E sub 2 div YO M Sh /FN Fn D /AT At D t Pb XO SZ SL get neg R /PF pf D grestore /CF 0 D cs cf FS}if}D /Sh {dup () ne{CP Hz 4 div sub BB show CP CS add BB}{pop}ie}D /Pb {/OU E D /Ou OU D /PB t D 0 0 M Ba{/Sa save D /BP t D /Fl t D RC /PL 0 D /PH 0 D /W IW D /LE IL .7 mul D /EO 0 D SI ZF /YA 0 D /BO 0 D /C1 () D BA 0 Ts neg R Bb{Xl Yl Xh Yh}if Bb CP Sa restore M {/Yh E D /Xh E D /Yl E D /Xl E D}if /Fl t D}if BL /OU t D /HM f D /Ou t D /PB f D} D /Bs {/BP Ba not D}D /reencodeISO { dup dup findfont dup length dict begin{1 index /FID ne{D}{pop pop}ie}forall /Encoding ISOLatin1Encoding D currentdict end definefont} D /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] D [128/backslash 129/parenleft 130/parenright 141/circumflex 142/tilde 143/perthousand 144/dagger 145/daggerdbl 146/Ydieresis 147/scaron 148/Scaron 149/oe 150/OE 151/guilsinglleft 152/guilsinglright 153/quotesinglbase 154/quotedblbase 155/quotedblleft 156/quotedblright 157/endash 158/emdash 159/trademark] aload length 2 idiv 1 1 3 -1 roll{pop ISOLatin1Encoding 3 1 roll put}for /colorimage where{pop}{ /colorimage { pop pop /Pr E D {/Cv Pr D /Gr Cv length 3 idiv string D 0 1 Gr length 1 sub {Gr E dup /i E 3 mul D Cv i get 0.299 mul Cv i 1 add get 0.587 mul add Cv i 2 add get 0.114 mul add cvi put}for Gr} image} D }ie /pdfmark where{pop}{userdict /pdfmark /cleartomark load put}ie WF{FL{reencodeISO D}forall}{4 1 FL length 1 sub{FL E get reencodeISO D}for}ie /Symbol dup dup findfont dup length dict begin {1 index /FID ne{D}{pop pop}ie}forall /Encoding [Encoding aload pop] dup 128 /therefore put D currentdict end definefont D /SF {/CS E D SZ SL CS put FO SL FN put /YI CS LH neg mul D dup ST cvs ( ) join CS ST cvs join C1 E join ( NF ) join /C1 E D CS NF /Wf WF FN 0 gt or D /BW Wf{( ) SW pop}{0}ie D}D /NF {/cS E D /cF E D cF 0 ge{FL cF get}{cF -1 eq{/Symbol}{/MySymbol}ie}ie findfont cS scalefont setfont} D /FS {CF or /CF E D FR SL CF put CF CF 0 ge{FN 4 mul add}if E SF} D /PC {SH /BP f D fin not GL not and{NL}if /HM t D /LL LS D} D /BS {/TX E D Wf{/fin f D /CW 0 D /LK 0 D /SC 0 D /RT TX D {RT ( ) search{/NW E D pop /RT E D /WH NW SW pop D CW WH add LL gt {TX SC LK SC sub 1 sub NN GI GL{SH cF cS OC 2 copy cS ne E cF ne or{NF}{pop pop}ie}{PC /CW WH BW add D}ie /SC LK D} {GL{JC}if /CW CW WH add BW add D /HM t D}ie /GL f D /Ph f D /LK LK NW length 1 add add D}{pop exit}ie}loop /fin t D TX SC LK SC sub GI SH RT () ne{GL not{CC}if}if /LC TX length D /WH RT SW pop D CW WH add Hy{HC SW pop add}if LL gt {RT GL{SH cF cS OC 2 copy cS ne E cF ne or{NF}{pop pop}ie Hy{/Ph t D}if /LL LS D}{NL /LL LS D SH}ie} {RT PC Hy{CC}if /Ph Ph Hy or D}ie RT () ne{/GL t D /HM t D}if} {TX SW pop LL le{TX SH}{/NW () D 0 2 TX length 1 sub {/CW E D TX 0 CW GI dup SW pop LL gt{pop NW SH /HM t D NL/LL W XO sub MR sub D /CW CW 2 sub NN D /TX TX CW TX length CW sub GI D TX BS exit} {/NW E D}ie}for}ie}ie /HM t D}D /CC {C0 length 0 gt{JC}if /C0 [C1 L1 YA YB Mf NS NB TB AF Bw] D /C1 () D /L0 L1 D /YA 0 D /YB 0 D /Mf 0 D /NS 0 D /NB 0 D}D /JC {C0 aload length 0 gt{pop pop pop NB add /NB E D NS add /NS E D dup Mf gt{/Mf E D}{pop}ie dup YB gt{/YB E D}{pop}ie dup YA gt{/YA E D}{pop}ie pop C1 join /C1 E D /C0 [] D}if}D /OC {C0 length 0 gt{C1 L1 L0 sub YA YB Mf NS NB TB AF Bw GL C0 aload pop /Bw E D /AF E D /TB E D /NB E D /NS E D /Mf E D /YB E D /YA E D /C0 [] D /L1 E D /C1 E D Ph{HC SH}if NL /GL E D /Bw E D /AF E D /TB E D /NB E D /NS E D /Mf E D /YB E D /YA E D /L1 E D /LL W L1 sub XO sub MR sub WH sub D /CW 0 D C1 E join /C1 E D}if}D /BT {/LB t D dup length string copy RS dup dup () ne E ( ) ne and {/CI 0 D /LS LL D /LL W L1 sub XO sub MR sub D BS} {dup ( ) eq{/GL f D}if dup () eq L1 0 eq or{pop}{SH /BP f D /Ph f D}ie}ie /LB f D} D /BL {CP E pop XO E M} D /NL {JC /GL f D /SK W XO sub MR sub L1 sub TB{Bw add}if D /YA LF{Mf HM Fl not and PF or{LH mul}if}{0 /LF t D}ie YA 2 copy lt{E}if pop D C1 () ne{/FB YB Mf SA{Sf mul}if 4 div 2 copy lt{E}if pop D}if Fl{/Ya YA D}if CP E pop YA sub YB sub LE neg lt Fl not and PB not and{NP}if NT TL BL OU PF not and PB or{/RE L1 TB{Bw sub}if W XO sub MR sub div YA YB add LE BO add div 2 copy lt{E}if pop D RE 1 gt{BL 1 RE div dup scale}if}if AT 2 le{SK AT mul 2 div YA neg R}if AT 3 eq{0 YA neg R TB{/NB NB 1 sub D /NS NS 1 sub D}if /NB NB 1 sub NN D /A3 NS 6 mul NB add D NS NB add 0 eq {/A1 0 D /A2 0 D} {NS 0 eq{/A1 SK NB div dup J gt{pop 0}if D /A2 0 D}{J A3 mul SK lt {/A1 J D /A2 SK J NB mul sub NS div dup Ab gt{/A1 0 D pop 0}if D} {/A1 SK A3 div D /A2 A1 6 mul D}ie}ie}ie /A1 A1 NN D /A2 A2 NN D}if AT 4 eq{0 YA neg R PH 2 le{PD 0 lt{/PD L1 D}if PD M1 gt{/M1 PD D}if L1 PD sub M2 gt{/M2 L1 PD sub D}if}{DV ID 1 sub get 0 ge{Lo 0 R}if}ie}if F0 cF ne Cs cS ne or{F0 Cs NF}if /ms Ms D /Ms f D CP FB sub C1 cvx exec XO EO sub L1 add TB{BW sub}if dup LM gt{/LM E D}{pop}ie PH 0 eq PH 4 eq or Ms and{HF not{/PO t D /AH t D}if BB CP YA add E AT 3 eq LB and{A1 sub}if TB{BW sub}if E BB} {pop pop}ie Ms HM PH 3 eq and or{/BP f D /Fl f D}if /Lo 0 D /L1 0 D /F0 cF D /Cs cS D BP not{0 YB NN neg R}if OU f1 and mF not and{k2 /f1 f D}if OU PF not and PB or{RE 1 gt{RE dup scale}if}if /Ms ms Ms or D /C1 AF{(Cp )}{()}ie D /YA 0 D /YB 0 D BL AT 4 eq LB not and PH 3 ge and {ID DV length lt{DV ID get dup 0 ge{DO E sub /Lo E D /L1 Lo D}{pop}ie /ID ID 1 add D}if}if /T t D CD{/LN LN 1 add D PD}if /PD -1 D /NS 0 D /NB 0 D /TB f D /Ph f D /Mf 0 D /HM f D} D /RS {/TM E D /CN 0 D TM{10 eq{TM CN ( ) PI}if /CN CN 1 add D}forall /CN 0 D /BK HM EN and{0}{1}ie D TM {dup 32 ne{TM CN 3 2 roll put /CN CN 1 add D /BK 0 D} {pop BK 0 eq{TM CN 32 put /CN CN 1 add D}if /BK 1 D}ie}forall TM 0 CN GI dup dup () ne E ( ) ne and {dup CN 1 sub get 32 eq{/EN f D}{/EN t D}ie}if} D /join {2 copy length E length add string dup 4 2 roll 2 index 0 3 index PI E length E PI}d /WR {(\n) search{dup () ne BP not or {Li 4 le CP E pop YI Li mul add LE add 0 lt and PL 0 eq and{NP}if SH NL pop /Li Li 1 sub D WR}{pop pop WR}ie}{SH}ie /CI 0 D /BP f D} D /SH {dup dup () ne E ( ) ne and PF or CS Mf gt and{/Mf CS D}if T not Wf and{( ) E join /T t D}if dup BP{/MF CS D}if AT 3 eq{2 copy length dup 0 gt{/NB E NB add D {( ) search{/NS NS 1 add D pop pop}{pop exit}ie}loop}{pop pop}ie}if CD PD 0 lt and{dup DC search{SW pop /PD E L1 add D pop pop}{pop}ie}if 0 Np dup SW pop L1 add /L1 E D dup () ne {C1 (\() join E join (\)) join AU AF and UF or Wf and{( U ) join}if sF{( s ) join}if ( S ) join /C1 E D dup length 1 sub get 32 eq /TB E D /Bw BW D}{pop pop}ie} D /BG {AI LG BC add add 0 eq} D /ON {OU{Ty AR AI NN get dup 1 add Ln Ns Ty 2 mod 0 eq{(. )}{(\) )}ie join dup SW pop neg 0 R CP E 0 lt{0 E M}{pop}ie CP BB show /Ms t D}if} D /Ln {AR AI 3 -1 roll put}D /SP {dup CI lt BP not and{dup CI sub 0 E R /CI E D}{pop}ie} D /BN {PF{WR /HM f D}{BT NL}ie} D /NN {dup 0 lt{pop 0}if} D /h {(h) HI ST cvs join cvx exec dup 1 get E Nf{0 get E join}{pop}ie} D /H {/fn FN D /Hi E 1 add D 1 sub /HL E D /H2 HL 2 add D /GS EZ H2 get D E Tm H2 get GS mul BE dup 0 gt{1 sub}{pop EG H2 get dup 0 lt{pop AT}if}ie NA WW Np /SL SL 1 add D /FN EF H2 get D GS Ey H2 get FS EU H2 get Sc Hs not HL Hl lt and Hs HL hl lt and or Hi 0 eq or {/HI Hi D /Hs t D /hl HL D /Hv HL D}if HL Hl lt{/hi Hi D}if Nf HI 0 gt and{(h) Hi ST cvs join cvx exec 0 get WB}if /HF t D /AH f D /PO f D} D /EH {Bm H2 get GS mul BE OA /SL SL 1 sub NN D /CF 0 D /FN fn D SZ SL get FR SL get FS /HF f D /GS Ts D ()Ec} D /P {E PF{WR}{PO{EP}{BN}ie Ts 4 mul Np AE not{Tm 0 get Ts mul neg SP}if dup 0 ge AH and{Pi Pd}if}ie 1 sub dup 0 lt{pop AV AL get}if /AT E D /PO t D} D /EP {PF{WR}{BN Ts 4 mul Np}ie AE not{Bm 0 get Ts mul neg SP}if /AT AV AL get D /PO f D} D /BE {E PO{EP}{BN}ie Ts 4 mul Np neg SP} D /HR {/Aw W EO sub D /RW E dup 0 gt{Aw mul}{neg}ie dup Aw gt{pop Aw}if D /RZ E D E BN Ts neg SP 1 sub 2 div Aw RW sub mul EO add CP E pop M PF{0 Ps neg R}if 0 Np OU{gsave RZ LW Cf{Hc VC}{0 Sg}ie CP BB RW 0 RL CP BB stroke grestore}if /CI 0 D /BP f D PF not{Ts neg SP}if /Ms t D} D /AD {I NL EG 14 get dup 0 lt{pop AT}if NA /AE t D Tm 14 get Ts mul neg SP Cf{EU 14 get dup -1 eq{pop CA CL get}if Sc}if} D /DA {BN ()ES OA /AE f D ()Ec Bm 14 get Ts mul neg SP} D /PR {/MW E D /Li E D Tm 1 get Ps mul BE 0 NA /FN Fp D /PF t D SI /SL SL 1 add D /CF 0 D Ps CS mul Ts div MW WC mul CS mul Ts div dup LL gt PL 0 eq and {LL div div}{pop}ie Ey 1 get FS CP E pop LE add YI neg div cvi dup Li lt AH and{4 lt YI Li mul 5 mul LE add 0 gt or PL 0 eq and{NP}if}{pop}ie EU 1 get Sc /GS Ps D}D /RP {WR NL () /PF f D SI /FN 0 D ES Bm 1 get Ps mul neg SP OA /GS Ts D} D /SI {/XO Lm 15 get BC NN mul Lm 16 get AI UI sub NN mul add Lm 17 get UI NN mul add Lm 20 get LG NN mul add Ts mul PF{Lm 1 get Ps mul add}if EO add D /MR Rm 15 get BC NN mul Rm 16 get AI UI sub NN mul add Rm 17 get UI NN mul add Rm 20 get LG NN mul add Ts mul PF{Rm 1 get Ps mul add}if D /LL W XO sub MR sub D} D /DT {/cC E D BN /LG LG 1 sub D SI /LG LG 1 add D WW 2 div Np BL} D /DD {WB Cc 0 eq cC 0 eq and L1 0 eq or Lm 20 get Ts mul L1 sub TB{BW add}if Ts 2 div lt or NL /LF E D SI BL /cC 0 D} D /DL {Dc LG Cc put /Cc E D BG{Tm 18 get Ts mul BE}{BN}ie /LG LG 1 add D BL} D /LD {BN LG 0 gt{/LG LG 1 sub D}if /Cc Dc LG get D SI BG{()Bm 18 get Ts mul BE}if BL} D /UL {BG{Tm 17 get Ts mul BE}{BN}ie NR AI NN 0 put /UI UI 1 add D /AI AI 1 add D SI BL} D /LU {BN /UI UI 1 sub D /AI AI 1 sub D SI BG{()Bm 17 get Ts mul BE}if BL} D /OL {E BG{Tm 16 get Ts mul BE}{BN}ie TR AI NN Ty put /Ty E D NR AI NN 1 put /AI AI 1 add D SI BL 1 Ln} D /LO {BN /AI AI 1 sub D /Ty TR AI get D SI BG{()Bm 16 get Ts mul BE}if BL} D /LI {E BN -1 SP /BP f D /CI 0 D 0 Np NR AI 1 sub NN get 1 eq {dup dup 0 gt E 4 le and{/Ty E D}{pop}ie /L1 L1 Ty AR AI NN get Ns SW pop XO sub dup 0 lt{pop 0}if add D ( ON )} {pop ( B )}ie C1 E join /C1 E D CS Mf gt{/Mf CS D}if BL} D /BQ {Tm 15 get Ts mul BE /BC BC 1 add D SI BL} D /QB {Bm 15 get Ts mul BE /BC BC 1 sub D SI BL} D /Al {E EP 1 sub dup 0 lt{pop AV AL get}if NA} D /Ea {EP OA} D /WB {PF{WR}{BT}ie} D /F1 {WB /FN 0 D CS 0 FS} D /F2 {WB /FN WI D CS 0 FS} D /HY {/Hy t D WB /Hy f D} D /YH {WB} D /A {/LT E D LT 1 eq{/RN E D}if /Lh E D WB /C1 C1 ( Cp ) join D Lc AF not and{Cl Sc}if /AF t D} D /EA {Lc AF and{Ec}{WB}ie TL Pa AF and Lh 0 ne and {( \() Lh join (\)) join /AF f D WB}if /AF f D} D /TL {C1 ( Tl ) apa /C1 E D} d /apa {AF OU and Lh 0 ne LT 1 eq or and{LT 1 eq{RN ( /) E ST cvs join} {(\() Lh join (\)) join}ie E join join}{pop}ie} d /Cp {/Xc CP /Yc E D D} D /SS {Cf{dup 0 ge{EU E get dup -1 eq{pop CA CL get}if}{pop CA CL get}ie Sc} {pop}ie SZ SL get /SL SL 1 add D} D /I {WB 8 SS 1 FS} D /EM {WB 8 SS /CF CF 1 xor D 0 FS} D /BD {WB 9 SS 2 FS} D /TT {WB 10 SS /FN Fp D 0 FS} D /KB {WB 11 SS /FN Fp D 2 FS} D /CT {WB 12 SS 1 FS} D /SM {WB 13 SS /FN Fp D 0 FS} D /Q {/QL QL 1 add D QO QL 2 mod get La get join WB} D /EQ {QC QL 2 mod get La get join WB /QL QL 1 sub D} D /RO {WB -1 SS /CF 0 D 0 FS} D /SY {WB -1 SS -1 FS} D /MY {WB -1 SS -2 FS} D /ES {WB /SL SL 1 sub NN D /CF 0 D /FN FO SL get D SZ SL get FR SL get FS ()Ec}D /FZ {3 sub 1.2 E exp GS mul E WB TL /C1 C1 ( Cp ) join D /SL SL 1 add D 0 FS} D /Ef {WB TL ()ES /C1 C1 ( Cp ) join D} D /BZ {dup /Bf E D FZ}D /Sc {dup -1 ne Cf and{/CL CL 1 add D dup 0 eq{pop [0 0 0]}if dup CA E CL E put VS ( VC ) join C1 E join /C1 E D}{pop}ie} D /Ec {WB Cf{/CL CL 1 sub NN D CA CL get VS ( VC ) join C1 E join /C1 E D}if} D /VS {dup type /arraytype eq{([) E {ST cvs join ( ) join}forall (]) join}if} D /VC {{255 div}forall setrgbcolor} D /Sl {dup type /integertype ne{Ds}if /La E D WB}d /UN {WB /UF t D} D /NU {WB /UF f D} D /SE {WB /sF t D} D /XE {WB /sF f D} D /sM {/C1 C1 ( k1 ) join D}d /eM {/C1 C1 ( k2 ) join D}d /k1 {/YC CP E pop Ts add D /mF t D /f1 t D}d /k2 {gsave 3 LW -9 CP E pop Ts 0.2 mul sub M -9 YC L stroke grestore /mF f D}d /Ac {/AC E D WB}d /Ca {eA{( \()join AC join(\) )join}if WB}d /s {OU{gsave 0 CS .25 mul R dup SW pop CJ 0 RL stroke grestore}if}D /CJ {AT 3 eq LB and{E dup dup length 1 sub A1 mul E {( ) search{pop pop E A2 add E}{pop exit}ie}loop 3 -1 roll add W CP pop sub 2 copy gt{E}if pop}if}D /So {/Co E D} D /SO {C1 Yo ST cvs join ( So ) join /C1 E D (j) SW pop 2 div Pd} D /Se {E WB CS E div Pd}D /Pd {dup type /stringtype eq{SW pop}if dup /L1 E L1 add D ST cvs ( 0 R ) join C1 E join /C1 E D} D /Sp {0.35 CO} D /Sb {-0.2 CO} D /CO {OV Io Yo put /Yo E CS mul Yo add D /Io Io 1 add D -1.5 Io mul 3 add FZ SO CS Yo add dup YA gt{/YA E D}{pop}ie Yo neg dup YB gt{/YB E D}{pop}ie} D /Es {ES /Io Io 1 sub NN D /Yo OV Io get D SO} D /SB {/N2 0 D 0 1 NI{/N E D{IX N2 get 0 lt{/N2 N2 1 add D}{exit}ie}loop /K WS N get FC N get mul D /NY AY N2 get D /BV NY array D 0 1 NY 1 sub{/TM K string D currentfile TM readhexstring pop pop BV E TM put} for BM N BV put /N2 N2 1 add D}for} D /IC [{/MA E D /MB 0 D}{2 div /MA E D /MB MA D}{/MB E CS sub D /MA CS D} {pop /MA YS AB mul D /MB 1 AB sub YS mul D}{pop /MA 0 D /MB 0 D}] D /IP {BV N get /N N 1 add D} D /II {/K E D IX K get 0 lt{/EC E D}if /TY E D TY 4 eq{/Y E D /X E D}if TY 3 eq{/AB E D}if /XW AX K get D /YW AY K get D /IS SG IT K get get D /XS XW IS mul D /YS YW IS mul D YS IC TY get exec /MA MA Fl not{3 add}if D} D /IM {II /ty TY D /xs XS D /ys YS D /ya YA D /yb YB D /ma MA D /mb MB D /k K D /ec EC D /BP f D /CI 0 D WB TL L1 xs add dup XO add MR add W gt {pop /ma ma Fl{3 add}if D NL /YA ma D /YB mb D /YS ys D /L1 xs D} {/L1 E D ma YA gt{/YA ma D}if mb YB gt{/YB mb D}if}ie /TB f D OU{CP E pop YS sub LE neg lt Fl not and PB not and{NP /YA ma D /YB mb D}if /BP f D ty ST cvs ( ) join IX k get 0 lt{(\() join ec join (\) ) join}if k ST cvs join ty 3 eq{AB ST cvs ( ) join E join}if ty 4 eq{X ST cvs ( ) join Y ST cvs join ( ) join E join}if C1 E join ( DI ) join FP 2 eq FP 1 eq AF and or{( FM ) join}if ( Il Cp ) apa /C1 E D /EN f D}if /HM t D /T f D} D /DI {II /Xc CP /Yc E D D /YN YW neg D /HM t D /CI 0 D /K2 IX K get D gsave TY 4 eq{OX X IS mul add OY FY add YS sub Y IS mul sub} {/FY YS D CP MB sub 2 copy /OY E D /OX E D}ie translate K2 0 ge{/DP AZ K2 get D /BV BM K2 get D XS YS scale /N 0 D XW YW DP [XW 0 0 YN 0 YW] {IP} FC K2 get 1 eq{image}{f 3 colorimage}ie} {EX}ie grestore XS 0 R /Ms t D} D /FM {gsave 0 Sg CP MB sub translate XS neg 0 M 0 YS RL XS 0 RL 0 YS neg RL XS neg 0 RL stroke grestore} D /NA {/AT E D /AL AL 1 add D AV AL AT put} D /OA {AL 0 gt{/AL AL 1 sub D /AT AV AL get D}if} D /D1 {/BR {CP E pop E BN Mb{CP E pop eq{0 YI R}if}{pop}ie} D /Sn {OU{C1 E ST cvs join ( Ld ) join /C1 E D}{pop}ie} D} D /D1 {/BR {BN} D /Sn {OU {C1 E ST cvs join ( Ld ) join /C1 E D} {pop} ie} D} D /TC {/TF t D /ML 0 D HN{SW pop dup ML gt{/ML E D}{pop}ie}forall NP /RM RM not D RC /OU Tc D Ep /PN 0 D Ms not TP and{Ip}if /W IW ML sub Ts sub D /A0 0 D TH{/BR {( ) join BT} D /Sn {pop} D /Au () D}if} D /TN {0 eq{E EA PF HF or not XR and{HN E get Xr}{pop}ie} {OU{Tn 0 ge{() BN}if /Tn E D}{pop}ie WB}ie} D /NT {OU LB not and Tn 0 ge and{PL 0 eq{Ms not{CS CF FS}if CP dup /y E YA sub D W 9 sub CS -1.8 mul XO L1 add 2 add{y M (.) show}for HN Tn get dup SW pop IW E sub y M show CP BB M}if /Tn -1 D}if} D /Ld {/DN E D HN DN Pn put [/View [/XYZ -4 Fl{PS}{CP YA add US E pop}ie null] /Dest DN ST cvs cvn /DEST pdfmark} D /C {ND 1 eq{1 sub}if TI mul /XO E D NL Nf not{pop()}if 0 3 -1 roll 1 A} D /OP {BP not{NP}if PN 2 mod 0 eq{/Ms t D NP}if}D /Ep {Xp PN 2 mod 0 eq and OU and{/Pn (-) D showpage /PM 1 D LA}if}D /Dg [73 86 88 76 67 68 77] D /Rd [0 [1 1 0][2 1 0][3 1 0][2 1 1][1 1 1][2 2 1][3 3 1][4 4 1][2 1 2]] D /Ns {/m E D /c E 32 mul D /j m 1000 idiv D /p j 12 add string D c 96 le m 0 gt and{c 32 le {/i 0 D /d 77 D /l 100 D /m m j 1000 mul sub D j -1 1 {pop p i d c add put /i i 1 add D}for 4 -2 0 {/j E D /n m l idiv D /m m n l mul sub D /d Dg j get D n 0 gt {/x Rd n get D x 0 get -1 1 {pop p i d c add put /i i 1 add D}for p i x 1 get sub Dg x 2 get j add get c add put}if /l l 10 idiv D }for p 0 i GI} {/i ST length 1 sub D m {1 sub dup 0 ge{dup 26 mod c add 1 add ST i 3 -1 roll put 26 idiv dup 0 eq{pop exit}if}if /i i 1 sub D}loop ST i ST length i sub GI}ie} {m p cvs}ie} D /US {matrix currentmatrix matrix defaultmatrix matrix invertmatrix matrix concatmatrix transform} D /GB {Gb{US}if}D /Tl {/Rn E D Xc CP pop ne{ [/Rect [Xc 1 sub Yc cS 0.25 mul sub GB CP E 1 add E cS 0.85 mul add GB] /Subtype /Link /Border [0 0 Cf Lc and LX and AU or{0}{1}ie] Rn type /nametype eq {/Dest Rn}{/Action [/Subtype /URI /URI Rn] Cd}ie /ANN pdfmark}if} D /Il {/Rn E D [/Rect [Xc Yc GB Xc XS add Yc YS add GB] /Subtype /Link /Border [0 0 0] Rn type /nametype eq{/Dest Rn} {/Action [/Subtype /URI /URI Rn] Cd}ie /ANN pdfmark} D /XP {[{/Z Bz 2 div D Z 0 R Z Z RL Z neg Z RL Z neg Z neg RL Z Z neg RL Fi cH 1 eq and{fill}if} {Bz 0 RL 0 Bz RL Bz neg 0 RL 0 Bz neg RL Fi cH 1 eq and{fill}if} {0 -5 R Bz 0 RL 0 21 RL Bz neg 0 RL 0 -21 RL}]} D /MS {/Sm E D WB}D /O {BN()0 Sm BX} D /BX {/Bt E D Bt 2 lt{/Ch E D CS 0.8 mul}{11 mul}ie W XO sub MR sub 2 copy gt{E}if pop /HZ E D Bt 2 eq{Fi not{pop()}if ( )E join /Ft E D TT /PF t D /MW 1 D /Li 1 D /Fw Ft SW pop D Fw HZ gt{/HZ Fw 8 add D}if HZ ST cvs( )join}{WB Ch ST cvs( )join}ie L1 HZ add XO add MR add W gt{NL}if Bt 2 eq{Ft ES Fw neg HM{CS sub}if Pd}if Bt ST cvs join( Bx )join Bt 2 eq HM and{CS Pd}if C1 E join /C1 E D /L1 L1 HZ add D /T f D ( ) Pd /PF f D Bt 2 lt{YA CS .8 mul lt{/YA CS .8 mul D}if} {YB 5 lt{/YB 5 D}if YA 21 lt{/YA 21 D}if}ie /CI 0 D} D /Bx {dup 2 eq{E /Bz E D}{E /cH E D /Bz CS .8 mul D}ie OU {gsave 0 Sg XP E get exec stroke grestore}{pop}ie Bz 0 R /Ms t D}D /SD {FD 4 mul Dy add DZ NF newpath 0 0 M DX t charpath pathbbox 3 -1 roll sub /DY E D E dup /X1 E D sub WM mul WX DY mul add WM DG mul E div /DF E D /DR WX DF mul DY mul WM div 2 div D} d /Sd {gsave 0 IL Di mul neg translate IL IW atan Di 0 eq{neg}if rotate FD 4 mul Dy add DZ NF DR X1 sub DY 2 div neg M cD VC DX show grestore} d /Pt {/tp t D Tp{NP /Pn (TP) D 0 Tt neg R Th BN NP Ep ET RC ZF}if /tp f D} D /RC {/AI 0 D /LG 0 D /BC 0 D /UI 0 D /PF f D /Cc 0 D /cC 0 D /Dc 10 array D /NR [0 1 9{pop 0}for] D /La Ds D /AR 10 array D /TR 10 array D /AV 30 array D SI /AL -1 D /AT A0 D AT NA /OV 9 array D /Yo 0 D /Co 0 D /Io 0 D /Hy f D /Ph f D /CL -1 D Ct Sc}D /ZF {/FR [0 1 30{pop 0}for] D /SZ [0 1 30{pop 0}for] D /FO [0 1 30{pop 0}for] D /SL 0 D /CF 0 D /FN 0 D 0 Ts SF}D /QO [[(\234)(\233)(\253\240)(\232)(\273)(\253)][(')(`)(\253\240)(\231)(\273)(\253)]] D /QC [[(\234)(\234)(\240\273)(\233)(\253)(\273)][(')(')(\240\273)(`)(\253)(\273)]] D /Hf EF length 2 sub D /Hz EZ Hf get D /HS Ey Hf get D /Fz EZ Hf 1 add get D /Fs Ey Hf 1 add get D /LE IL D /Ps EZ 1 get D /Fp EF 1 get D /XO 0 D /YI 0 D /CI 0 D /FP 0 D /WW Ts 7 mul D /Mf 0 D /YA 0 D /YB 0 D /Cs Ts D /GS Ts D /F0 0 D /NS 0 D /NB 0 D /N 0 D /C0 [] D /C1 () D /Lo 0 D /L1 0 D /LM 0 D /PH 0 D /EC 0 D /Lh 0 D /LT 0 D /CH 1 string D /ST 16 string D /CA 9 array D /HC (\255) D /HM f D /PF f D /EN f D /TB f D /UF f D /sF f D /AE f D /AF f D /BP t D /CD f D /PA t D /GL f D /T t D /HF f D /AH f D /SA f D /PB f D /f1 f D /mF f D /OX 0 D /OY 0 D /FY 0 D /EO 0 D /FB 0 D /PL 0 D /Bw 0 D /PD -1 D /TP f D /tp f D /TH t D /Ty 4 D /Tn -1 D /Fl t D /LB t D /PM 1 D /Ms f D /Ba f D /Bb f D /Hl 3 D /hl 6 D /Hv 6 D /Hs f D /HI 0 D /hi 0 D /PO t D /TE f D /LF t D /BO 0 D /Sm 1 D /Bf 3 D /A1 0 D /A2 0 D /Ds 1 D /QL -1 D /Cb Db D /Ct Dt D /Cl Dl D /AX [24 24 24] D /AY [24 24 24] D /IX [0 1 2] D /IT [0 0 0] D /AZ [8 8 8] D /WS [24 24 24] D /FC [3 3 3] D /NI 2 D /BM 3 array D SB ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffbdbdbda5a5a5949494a5a5a5a5a5a5a5a5a5949494a5a5a5 cececeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffefefefc6c6c68c8c8ca5a5a5d6d6d6e7e7e7efefef efefefefefefe7e7e7c6c6c6949494949494cececeffffffffffffffffff ffffffffffffffffffffffffffffffffffffe7e7e7949494a5a5a5dedede ffffffffffffffffffffffffffffffffffffffffffffffffffffffcecece 949494b5b5b5ffffffffffffffffffffffffffffffffffffffffffefefef a5a5a5b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffefefefa5a5a5bdbdbdffffffffffffffffff ffffffffffffefefef949494bdbdbdffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 949494bdbdbdffffffffffffffffffffffffcececea5a5a5ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffefefefa5a5a5dededeffffffffffffffffff a5a5a5dededeffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffcecece a5a5a5ffffffffffffcececea5a5a5ffffffffffffffffffffffffffffff c6c6c6bdbdbdb5b5b5bdbdbdb5b5b5bdbdbddededee7e7e7e7e7e7e7e7e7 e7e7e7e7e7e7ffffffffffffa5a5a5e7e7e7ffffffa5a5a5dededeefefef d6d6d6d6d6d6a5a5a58c8c8cb5b5b5cececedededed6d6d6cecece8c8c8c 848484a5a5a5a5a5a5a5a5a5a5a5a5949494949494e7e7e7b5b5b5cecece e7e7e7a5a5a5e7e7e7949494949494b5b5b5cececeffffffffffffe7e7e7 cecece949494c6c6c6cecece737373bdbdbddededededededededed6d6d6 949494cececededede949494e7e7e7a5a5a5d6d6d6949494e7e7e7ffffff ffffffffffffefefef9494946363635a5a5a4a4a4a5252527b7b7b949494 bdbdbdb5b5b5b5b5b5bdbdbdc6c6c6efefefe7e7e7949494dededea5a5a5 d6d6d6949494e7e7e7ffffffffffffffffffbdbdbd7b7b7bcececededede dededea5a5a5949494ffffffefefefffffffefefefffffffffffffffffff dedede949494e7e7e7a5a5a5dedede8c8c8ce7e7e7ffffffffffffefefef 949494737373949494b5b5b5bdbdbd8c8c8ca5a5a5ffffffffffffffffff ffffffffffffffffffffffffe7e7e7949494e7e7e7a5a5a5dedede949494 7b7b7ba5a5a5efefefefefef6b6b6b7b7b7bd6d6d6cececec6c6c67b7b7b dededeffffffffffffffffffffffffffffffffffffffffffe7e7e7a5a5a5 ffffffb5b5b5d6d6d6ffffffffffffb5b5b5949494cecece6b6b6bbdbdbd 8c8c8c737373636363bdbdbdffffffffffffffffffffffffffffffffffff ffffffffffffa5a5a5cececeffffffd6d6d6a5a5a5ffffffffffffefefef c6c6c67b7b7b525252737373949494848484c6c6c6ffffffffffffffffff ffffffffffffffffffffffffffffffefefefa5a5a5efefefffffffffffff a5a5a5cececeffffffffffffffffffdededee7e7e7dededee7e7e7dedede ffffffffffffffffffffffffffffffffffffffffffffffffffffffbdbdbd bdbdbdffffffffffffffffffd6d6d6a5a5a5e7e7e7ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffcececea5a5a5efefefffffffffffffffffffffffffb5b5b5 a5a5a5ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff8c8c8ccececeffffffffffff ffffffffffffffffffffffffbdbdbd949494efefefffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffcecece8c8c8c cececeffffffffffffffffffffffffffffffffffffffffffffffffb5b5b5 949494c6c6c6efefefffffffffffffffffffffffffffffffffffffffffff e7e7e7b5b5b5949494c6c6c6ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffd6d6d6a5a5a58c8c8ca5a5a5dededededede e7e7e7dededecececea5a5a58c8c8cb5b5b5e7e7e7ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff dededececece949494949494949494949494a5a5a5cececeefefefffffff ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffdededed6d6d6d6d6d6 d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6efefefffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff c6c6c69c5252b52929ad3131b52929ad3131b52929ad3131b52929ad3131 ad3131ad9494efefefffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffb5b5b5a54a4aef0808f70000f70000f70000f70000 f70000f70000f70000f70000f70000c61818ad9494efefefffffffffffff ffffffffffffffffffffffffffffffefefefc6c6c6a53939ef0808f70000 f70000f70000f70000f70000f70000f70000f70000f70000f70000f70000 c61818a58484efefefffffffffffffffffffffffffffffffffffffc6c6c6 9c5a5aef0808f70000f70000f70000f70000f70000f70000f70000f70000 f70000f70000f70000f70000f70000c61818a5a5a5efefefffffffffffff ffffffffffffb5b5b5a53939ef0808f70000f70000f70000f70000f70000 f70000b50000940000d60000f70000f70000f70000f70000f70000f70000 c61818a58484efefefffffffffffffc6c6c6a54a4aef0808f70000f70000 f70000f70000f70000f70000bd00002900001000005a0000ef0808f70000 f70000f70000f70000f70000f70000c61818ad9494efefefdedede9c5252 ef0808f70000f70000f70000f70000f70000f70000f70000940000100000 100000290000d60000f70000f70000f70000f70000f70000f70000f70000 c61818b5a5a5d6d6d6ad3131f70000f70000f70000f70000f70000f70000 f70000f70000ad0000180000100000420000de0000f70000f70000f70000 f70000f70000f70000f70000ef0808947b7bd6d6d6b52929f70000f70000 f70000f70000f70000f70000f70000f70000c60000210000080000520000 ef0808f70000f70000f70000f70000f70000f70000f70000ef0808947b7b d6d6d6ad3131f70000f70000f70000f70000f70000f70000f70000f70000 de0000310000100000730000f70000f70000f70000f70000f70000f70000 f70000f70000ef0808947b7bd6d6d6b52929f70000f70000f70000f70000 f70000f70000f70000f70000e700004a00001000008c0000f70000f70000 f70000f70000f70000f70000f70000f70000ef0808947b7bd6d6d6ad3131 f70000f70000f70000f70000f70000f70000f70000f70000f70000520000 100000a50000f70000f70000f70000f70000f70000f70000f70000f70000 ef0808947b7bd6d6d6b52929f70000f70000f70000f70000f70000f70000 f70000f70000f700006b0000180000ad0000f70000f70000f70000f70000 f70000f70000f70000f70000ef0808947b7bd6d6d6ad3131f70000f70000 f70000f70000f70000f70000f70000f70000f70000bd0000840000d60000 f70000f70000f70000f70000f70000f70000f70000f70000ef0808947b7b d6d6d6b52929f70000f70000f70000f70000f70000f70000f70000f70000 e700007b0000520000ad0000f70000f70000f70000f70000f70000f70000 f70000f70000ef0808947b7bdededead3131f70000f70000f70000f70000 f70000f70000f70000f70000ad0000100000100000420000de0000f70000 f70000f70000f70000f70000f70000f70000ce2929a59494efefefb59c9c c61818f70000f70000f70000f70000f70000f70000f70000b50000210000 1000004a0000e70000f70000f70000f70000f70000f70000f70000d62929 9c7b7bdededeffffffefefefb59c9cc61818f70000f70000f70000f70000 f70000f70000f70000b50000840000ce0000f70000f70000f70000f70000 f70000f70000d62929a58484dededeffffffffffffffffffefefefad9494 c61010f70000f70000f70000f70000f70000f70000f70000f70000f70000 f70000f70000f70000f70000f70000e72121947b7bdededeffffffffffff fffffffffffffffffff7f7f7b5b5b5c61010f70000f70000f70000f70000 f70000f70000f70000f70000f70000f70000f70000f70000d62929947b7b efefefffffffffffffffffffffffffffffffffffffffffffefefefad9494 c61818f70000f70000f70000f70000f70000f70000f70000f70000f70000 f70000d62929a58484dededeffffffffffffffffffffffffffffffffffff ffffffffffffffffffefefefb59c9cc61818ef0808e70000ef0808e70000 ef0808e70000ef0808e70000ce2929947b7bdededeffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7bdadad 9c7b7b9c7b7b9c7b7b9c7b7b9c7b7b9c7b7b9c7b7b9c7b7ba59494dedede ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffe7e7e7efefefffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffcecece 848473a5a59cefefefffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffcecece949473dede42b5b55a9c9c94efefefffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffe7e7e7848473dede42f7f700f7f718 b5b563a5a5a5efefefffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffcecece848473 f7f731f7f700f7f700f7f700f7f700b5b563a5a59cefefefffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffcecece949473dede39f7f700f7f700e7e700efef00f7f700f7f718 b5b55aa5a5a5efefefffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffcecece94947bdede39f7f700f7f700b5b500 313100636300e7e700f7f700ffff10b5b55aa5a5a5efefefffffffffffff ffffffffffffffffffffffffffffffffffffffffffcecece949473e7e739 f7f700f7f700f7f700737300000000181800b5b500f7f700f7f700ffff10 b5b55a9c9c9cefefefffffffffffffffffffffffffffffffffffffffffff e7e7e7848473dede42f7f700f7f700f7f700f7f700737300000000181800 b5b500f7f700f7f700f7f700f7f718b5b563a5a5a5efefefffffffffffff ffffffffffffffffffcecece848473f7f731f7f700f7f700f7f700f7f700 f7f7009c9c00101000313100d6d600f7f700f7f700f7f700f7f700f7f700 b5b563a5a59cefefefffffffffffffffffffcecece949473dede39f7f700 f7f700f7f700f7f700f7f700f7f700b5b500101000424200e7e700f7f700 f7f700f7f700f7f700f7f700f7f718b5b55aa5a5a5efefefffffffe7e7e7 848473dede42f7f700f7f700f7f700f7f700f7f700f7f700f7f700cece00 1818005a5a00e7e700f7f700f7f700f7f700f7f700f7f700f7f700f7f718 a5a563b5b5b5ffffffefefefa5a5a5b5b55af7f718f7f700f7f700f7f700 f7f700f7f700f7f700e7e7001818006b6b00efef00f7f700f7f700f7f700 f7f700f7f700f7f700dede3994947bcececeffffffffffffefefefa5a59c b5b563f7f700f7f700f7f700f7f700f7f700f7f700e7e7006363008c8c00 f7f700f7f700f7f700f7f700f7f700f7f700e7e731949473cececeffffff ffffffffffffffffffefefefa5a5a5b5b563f7f718f7f700f7f700f7f700 f7f700d6d6007b7b00949400e7e700f7f700f7f700f7f700f7f700e7e731 8c8c8ccececeffffffffffffffffffffffffffffffffffffefefefa5a59c b5b55affff10f7f700f7f700f7f700848400000000212100bdbd00f7f700 f7f700f7f700dede39949473cececeffffffffffffffffffffffffffffff ffffffffffffffffffefefefa5a5a5b5b55affff10f7f700f7f700a5a500 212100424200d6d600f7f700f7f700e7e7399c9c7bcececeffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffefefefa5a5a5 b5b55af7f718f7f700f7f700d6d600e7e700f7f700f7f700dede399c9c7b cececeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffefefefa5a59cb5b563f7f700f7f700f7f700f7f700 f7f700e7e731949473cececeffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffefefefa5a5a5 b5b563f7f718f7f700f7f700e7e7318c8c8ccececeffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffefefefa5a59cb5b55affff10dede39949473cecece ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffefefefa5a5a5 a5a56394947bcececeffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffefefefb5b5b5cececeffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff [/Creator (html2ps version 1.0 beta5) /Author () /Keywords () /Subject () /Title (Guide pratique de LVM) /DOCINFO pdfmark /ND 1 D /HN [1 1 351{pop (??)}for] D /h0 [()(Table of Contents)] D /h1 [(1\240\240)( Guide pratique de LVM)] D /h2 [(1.1\240\240)(Version fran\347aise du LVM HOWTO)] D /h3 [(1.1.1\240\240)(A.\240J. Lewis)] D /h4 [(1.1.2\240\240)(Emmanuel Araman)] D /h5 [(1.1.3\240\240)(Camille Huot)] D /h6 [(1.1.4\240\240)(Alain Portal)] D /h7 [(1.1.5\240\240)(Jean-Philippe Gu\351rard)] D /h8 [(1.2\240\240)(Introduction)] D /h9 [(1.3\240\240)(1.\240Derni\350re version de ce document)] D /h10 [(1.4\240\240)(2.\240Limitations de responsabilit\351)] D /h11 [(1.5\240\240)(3.\240Auteurs)] D /h12 [(1.6\240\240)(Chapitre\2401.\240Qu'est-ce que LVM\240?)] D /h13 [(1.7\240\240)(Chapitre\2402.\240Qu'est-ce que la gestion par volumes logiques\240?)] D /h14 [(1.8\240\240)(1.\240Pourquoi en voudrais-je\240?)] D /h15 [(1.9\240\240)(2.\240B\351n\351fices de la gestion par volumes logiques sur un petit syst\350me)] D /h16 [(1.10\240\240)(3.\240Avantages de la gestion par volumes logiques sur un gros syst\350me)] D /h17 [(1.11\240\240)(Chapitre\2403.\240Anatomie de LVM)] D /h18 [(1.12\240\240)(1.\240Groupe de volumes \(Volume Group, VG\))] D /h19 [(1.13\240\240)(2.\240Volume physique \(Physical Volume, PV\))] D /h20 [(1.14\240\240)(3.\240Volume logique \(Logical Volume, LV\))] D /h21 [(1.15\240\240)(4.\240Extent physique \(Physical Extent, PE\))] D /h22 [(1.16\240\240)(5.\240Extent logique \(Logical Extent, LE\))] D /h23 [(1.17\240\240)(6.\240Mettre tout ensemble)] D /h24 [(1.18\240\240)(7.\240Types de correspondances \(lin\351aire/r\351partie\))] D /h25 [(1.19\240\240)(8.\240Les instantan\351s \(snapshots\))] D /h26 [(1.20\240\240)(Chapitre\2404.\240Questions fr\351quemment pos\351es)] D /h27 [(1.21\240\240)(1.\240FAQ LVM\2402)] D /h28 [(1.22\240\240)(2.\240FAQ LVM\2401)] D /h29 [(1.23\240\240)(Chapitre\2405.\240Obtenir LVM)] D /h30 [(1.24\240\240)(1.\240T\351l\351charger le code source)] D /h31 [(1.25\240\240)(2.\240T\351l\351charger le code source de d\351veloppement par CVS)] D /h32 [(1.26\240\240)(3.\240Avant de commencer)] D /h33 [(1.27\240\240)(4.\240Configuration initiale)] D /h34 [(1.28\240\240)(5.\240R\351cup\351ration du code source)] D /h35 [(1.29\240\240)(6.\240Mise \340 jour du code)] D /h36 [(1.30\240\240)(7.\240Commencer un projet)] D /h37 [(1.31\240\240)(8.\240Bidouiller le code)] D /h38 [(1.32\240\240)(9.\240Conflits)] D /h39 [(1.33\240\240)(Chapitre\2406.\240Construire les modules du noyau)] D /h40 [(1.34\240\240)(1.\240Construire le module noyau device-mapper)] D /h41 [(1.35\240\240)(2.\240Construire le module du noyau pour LVM\2401)] D /h42 [(1.35.1\240\240)(2.1.\240Fabriquer un correctif pour votre noyau)] D /h43 [(1.35.2\240\240)(2.2.\240Construire le module LVM pour Linux 2.2.17+)] D /h44 [(1.35.3\240\240)(2.3.\240Compiler les modules LVM pour Linux 2.4)] D /h45 [(1.35.4\240\240)(2.4.\240V\351rifier le syst\350me de fichiers proc)] D /h46 [(1.36\240\240)(Chapitre\2407.\240Scripts de d\351marrage pour LVM\2401)] D /h47 [(1.37\240\240)(1.\240Caldera)] D /h48 [(1.38\240\240)(2.\240Debian)] D /h49 [(1.39\240\240)(3.\240Mandrake)] D /h50 [(1.40\240\240)(4.\240Redhat)] D /h51 [(1.41\240\240)(5.\240Slackware)] D /h52 [(1.42\240\240)(6.\240SuSE)] D /h53 [(1.43\240\240)(Chapitre\2408.\240Scripts de d\351marrage pour LVM\2402)] D /h54 [(1.44\240\240)(Chapitre\2409.\240Compiler LVM \340 partir des sources)] D /h55 [(1.45\240\240)(1.\240Compiler la biblioth\350que et les utilitaires LVM)] D /h56 [(1.46\240\240)(2.\240Installer la biblioth\350que LVM et les utilitaires)] D /h57 [(1.47\240\240)(3.\240Supprimer la biblioth\350que LVM et les utilitaires)] D /h58 [(1.48\240\240)(Chapitre\24010.\240Migrer d'une version pr\351c\351dente de LVM vers LVM\2401.0.8)] D /h59 [(1.49\240\240)(1.\240Migrer vers LVM\2401.0.8 avec une partition racine non LVM)] D /h60 [(1.50\240\240)(2.\240Migrer vers LVM\2401.0.8 avec une partition racine en LVM et initrd)] D /h61 [(1.51\240\240)(Chapitre\24011.\240T\342ches courantes)] D /h62 [(1.52\240\240)(1.\240Initialiser des disques ou des partitions de disques)] D /h63 [(1.53\240\240)(2.\240Cr\351er un groupe de volumes)] D /h64 [(1.54\240\240)(3.\240Activer un groupe de volumes)] D /h65 [(1.55\240\240)(4.\240Enlever un groupe de volumes)] D /h66 [(1.56\240\240)(5.\240Ajouter un volume physique \340 un groupe de volumes)] D /h67 [(1.57\240\240)(6.\240Supprimer un volume physique d'un groupe de volumes)] D /h68 [(1.58\240\240)(7.\240Cr\351er un volume logique)] D /h69 [(1.59\240\240)(8.\240Supprimer un volume logique)] D /h70 [(1.60\240\240)(9.\240\311tendre un volume logique)] D /h71 [(1.61\240\240)(10.\240R\351duire un volume logique)] D /h72 [(1.62\240\240)(11.\240Migrer des donn\351es hors d'un volume physique)] D /h73 [(1.63\240\240)(Chapitre\24012.\240Partitionnement de disques)] D /h74 [(1.64\240\240)(1.\240Plusieurs partitions sur le m\352me disque)] D /h75 [(1.65\240\240)(2.\240\311tiquettes de disque Sun \(Sun disk labels\))] D /h76 [(1.66\240\240)(Chapitre\24013.\240Recettes)] D /h77 [(1.67\240\240)(1.\240Mettre en place LVM avec trois disques SCSI)] D /h78 [(1.67.1\240\240)(1.1.\240Pr\351paration des disques)] D /h79 [(1.67.2\240\240)(1.2.\240Configuration du groupe de volumes)] D /h80 [(1.67.3\240\240)(1.3.\240Cr\351ation du volume logique)] D /h81 [(1.67.4\240\240)(1.4.\240Cr\351ation du syst\350me de fichiers)] D /h82 [(1.67.5\240\240)(1.5.\240Test du syst\350me de fichiers)] D /h83 [(1.68\240\240)(2.\240Mise en place de LVM sur trois disques SCSI avec r\351partition \(striping\))] D /h84 [(1.68.1\240\240)(2.1.\240Pr\351paration des partitions de disque)] D /h85 [(1.68.2\240\240)(2.2.\240Configuration du groupe de volumes)] D /h86 [(1.68.3\240\240)(2.3.\240Cr\351ation du volume logique)] D /h87 [(1.68.4\240\240)(2.4.\240Cr\351ation du syst\350me de fichiers)] D /h88 [(1.68.5\240\240)(2.5.\240Test du syst\350me de fichiers)] D /h89 [(1.69\240\240)(3.\240Ajouter un nouveau disque dans un syst\350me avec plusieurs disques SCSI)] D /h90 [(1.69.1\240\240)(3.1.\240Situation actuelle)] D /h91 [(1.69.2\240\240)(3.2.\240Pr\351paration du partitionnement du disque)] D /h92 [(1.69.3\240\240)(3.3.\240Ajout des nouvelles partitions au groupe de volumes)] D /h93 [(1.69.4\240\240)(3.4.\240Extension des syst\350mes de fichiers)] D /h94 [(1.69.5\240\240)(3.5.\240Remontage des volumes \351tendus)] D /h95 [(1.70\240\240)(4.\240Faire une sauvegarde avec un instantan\351 \(snapshot\))] D /h96 [(1.70.1\240\240)(4.1.\240Cr\351er le volume d'instantan\351)] D /h97 [(1.70.2\240\240)(4.2.\240Monter le volume d'instantan\351)] D /h98 [(1.70.3\240\240)(4.3.\240Faire la sauvegarde)] D /h99 [(1.70.4\240\240)(4.4.\240Supprimer l'instantan\351)] D /h100 [(1.71\240\240)(5.\240Enlever un disque)] D /h101 [(1.71.1\240\240)(5.1.\240Distribuer les anciens extents vers des disques existants du groupe de volumes)] D /h102 [(1.71.1.1\240\240)(5.1.1.\240Enlever l'ancien disque)] D /h103 [(1.71.2\240\240)(5.2.\240Distribuer les anciens extents sur un nouveau disque de remplacement)] D /h104 [(1.71.2.1\240\240)(5.2.1.\240Pr\351parer le disque)] D /h105 [(1.71.2.2\240\240)(5.2.2.\240Ajouter le disque au groupe de volumes)] D /h106 [(1.71.2.3\240\240)(5.2.3.\240D\351placer les donn\351es)] D /h107 [(1.71.2.4\240\240)(5.2.4.\240Enlever l'ancien disque)] D /h108 [(1.72\240\240)(6.\240D\351placer un groupe de volumes vers un autre syst\350me)] D /h109 [(1.72.1\240\240)(6.1.\240D\351monter le syst\350me de fichiers)] D /h110 [(1.72.2\240\240)(6.2.\240Marquer le groupe de volumes comme inactif)] D /h111 [(1.72.3\240\240)(6.3.\240Exporter le groupe de volumes)] D /h112 [(1.72.4\240\240)(6.4.\240Importer le groupe de volumes)] D /h113 [(1.72.5\240\240)(6.5.\240Activer le groupe de volumes)] D /h114 [(1.72.6\240\240)(6.6.\240Monter le syst\350me de fichiers)] D /h115 [(1.73\240\240)(7.\240Diviser un groupe de volumes)] D /h116 [(1.73.1\240\240)(7.1.\240D\351terminer l'espace libre)] D /h117 [(1.73.2\240\240)(7.2.\240D\351placer les donn\351es des disques \340 r\351utiliser)] D /h118 [(1.73.3\240\240)(7.3.\240Cr\351er un nouveau groupe de volumes)] D /h119 [(1.73.4\240\240)(7.4.\240Enlever le volume restant)] D /h120 [(1.73.5\240\240)(7.5.\240Cr\351er le nouveau volume logique)] D /h121 [(1.73.6\240\240)(7.6.\240Cr\351ez un syst\350me de fichiers sur le volume)] D /h122 [(1.73.7\240\240)(7.7.\240Montez le nouveau volume)] D /h123 [(1.74\240\240)(8.\240Convertir le syst\350me de fichiers racine en LVM\2401)] D /h124 [(1.74.1\240\240)(8.1.\240D\351marrer en mode mono-utilisateur)] D /h125 [(1.74.2\240\240)(8.2.\240Utiliser Parted)] D /h126 [(1.74.3\240\240)(8.3.\240Red\351marrer)] D /h127 [(1.74.4\240\240)(8.4.\240V\351rifier les options de configuration du noyau)] D /h128 [(1.74.5\240\240)(8.5.\240Ajuster le type de partition)] D /h129 [(1.74.6\240\240)(8.6.\240Configurer LVM\2401 pour la nouvelle configuration)] D /h130 [(1.74.7\240\240)(8.7.\240Cr\351er le syst\350me de fichiers)] D /h131 [(1.74.8\240\240)(8.8.\240Mise \340 jour de /etc/fstab)] D /h132 [(1.74.9\240\240)(8.9.\240Cr\351ez une image disque RAM d'initialisation pour LVM\2401)] D /h133 [(1.74.10\240\240)(8.10.\240Mise \340 jour de /etc/lilo.conf)] D /h134 [(1.74.11\240\240)(8.11.\240Lancez lilo pour \351crire le nouveau secteur de boot)] D /h135 [(1.74.12\240\240)(8.12.\240Red\351marrer avec LVM)] D /h136 [(1.74.13\240\240)(8.13.\240Ajoutez le reste du disque dans LVM)] D /h137 [(1.75\240\240)(9.\240Restaurer les m\351ta-donn\351es d'un volume physique)] D /h138 [(1.76\240\240)(Annexe\240A.\240Op\351rations dangereuses)] D /h139 [(1.77\240\240)(1.\240Restaurer les UUID de VG avec uuid_fixer)] D /h140 [(1.78\240\240)(2.\240Partager des volumes LVM)] D /h141 [(1.79\240\240)(Annexe\240B.\240Signaler des erreurs ou des bogues)] D /h142 [(1.80\240\240)(Annexe\240C.\240Contacts et liens)] D /h143 [(1.81\240\240)(1.\240Listes de diffusion)] D /h144 [(1.82\240\240)(2.\240Liens)] D /h145 [(1.83\240\240)(Annexe\240D.\240GNU Free Documentation License)] D /h146 [(1.83.1\240\240)(Version 1.2, November 2002)] D /h147 [(1.84\240\240)(1.\240PREAMBLE)] D /h148 [(1.85\240\240)(2.\240APPLICABILITY AND DEFINITIONS)] D /h149 [(1.86\240\240)(3.\240VERBATIM COPYING)] D /h150 [(1.87\240\240)(4.\240COPYING IN QUANTITY)] D /h151 [(1.88\240\240)(5.\240MODIFICATIONS)] D /h152 [(1.89\240\240)(6.\240COMBINING DOCUMENTS)] D /h153 [(1.90\240\240)(7.\240COLLECTIONS OF DOCUMENTS)] D /h154 [(1.91\240\240)(8.\240AGGREGATION WITH INDEPENDENT WORKS)] D /h155 [(1.92\240\240)(9.\240TRANSLATION)] D /h156 [(1.93\240\240)(10.\240TERMINATION)] D /h157 [(1.94\240\240)(11.\240FUTURE REVISIONS OF THIS LICENSE)] D /h158 [(1.95\240\240)(12.\240ADDENDUM: How to use this License for your documents)] D /Hr [193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350]D /HV [1 2 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 2 3 3 3 3 3 2 3 3 3 3 3 2 3 3 3 3 2 3 4 3 4 4 4 4 2 3 3 3 3 3 3 2 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2]D /Cn [95 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 5 0 0 0 0 0 5 0 0 0 0 0 4 0 0 0 0 2 1 0 4 0 0 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0]D Hr length 0 gt{[/PageMode /UseOutlines /DOCVIEW pdfmark}if /Hn 1 D 0 1 Hr length 1 sub{ /Bn E D [Cn Bn get dup 0 gt{/Count E HV Bn get Bl ge{neg}if}{pop}ie /Dest Hr Bn get dup abs ST cvs cvn E 0 ge{(h)Hn ST cvs join cvx exec dup 1 get E Nf{0 get E join}{pop}ie /Hn Hn 1 add D}{()}ie /Title E dup length 255 gt{0 255 getinterval}if /OUT pdfmark}for ZF /FN Fp D Ps 0 FS /WC Wf{( )}{}ie SW pop D ET RC ZF /Df f D /R1 (http://www.traduc.org/docs/howto/lecture/LVM-HOWTO.html) D /R2 (http://www.tldp.org/HOWTO/LVM-HOWTO.html) D /R3 (ftp://ftp.sistina.com/pub/LVM/1.0/README) D /R4 (http://www.cl.cam.ac.uk/Research/SRG/netos/xen/) D /R5 (http://people.sistina.com/~thornber/dm/) D /R6 (http://distro.ibiblio.org/pub/linux/distributions/fedora/linux/core/development/i386/Fedora/RPMS/mkinitrd-3.5.21-1.i386.rpm) D /R7 (http://www.poochiereds.net/svn/lvm2/) D /R8 (ftp://sources.redhat.com/pub/dm/) D /R9 (ftp://sources.redhat.com/pub/lvm2/) D /R10 (ftp://sources.redhat.com/pub/lvm/current/) D /R11 (http://sources.redhat.com/dm/) D /R12 (http://www.kernel.org/pub/linux/kernel/people/sct/raw-io) D /R13 (http://ext2resize.sourceforge.net/) D /R14 (ftp://ftp.gnu.org/pub/gnu/parted) D /R15 (ftp://ftp.sistina.com/pub/LVM/contrib/uuid_fixer-0.3-IOP10.tar.gz) D /R16 (http://www.redhat.com/software/rha/gfs) D /R17 (http://www.redhat.com/archives/linux-lvm/) D /R18 (http://www.redhat.com/mailman/listinfo/linux-lvm) D /R19 (http://www.redhat.com/mailman/listinfo/dm-devel) D /R20 (http://www.redhat.com/archives/dm-devel/) D /R21 (http://sources.redhat.com/ml/lvm2-cvs/) D /R22 (http://sources.redhat.com/ml/lvm-cvs/) D /R23 (http://sources.redhat.com/ml/dm-cvs/) D /R24 (http://sources.redhat.com/lvm2/) D /R25 (http://sources.redhat.com/lvm/) D /R26 (ftp://sources.redhat.com/pub/lvm/) D /TS { tables E get /table E D table aload pop /rdesc E D /cdesc E D /tdesc E D tdesc aload pop /capalg E D /caption E D /rules E D /frame E D /nfoot E D /nhead E D /ncol E D /nrow E D /border E D /twid E D /units E D /talign E D /flow E D /clear E D /tclass E D pop pop /w W D /eps 0.1 D /OU f D /PL 1 D /FN EF 21 get D EZ 21 get Ey 21 get FS 0 1 1{ /pass E D 0 1 nrow{ /irow E D /cells rdesc irow get 6 get D 0 1 ncol{ /icol E D /cell cells icol get D cell 0 ne{ cell aload pop /ang E D /CB E D pop pop pop /DV E D /bot E D /top E D /right E D /left E D /nowrap E D /valign E D /dp E D /align E D /rspan E D /cspan E D /cclass E D /ctype E D /cmax E D /cmin E D /proc E D rspan 0 eq{/rspan nrow irow sub 1 add D}if cspan 0 eq{/cspan ncol icol sub 1 add D}if pass 0 eq cspan 1 eq and pass 1 eq cspan 1 gt and or{ /W 1e5 D /LL W D /PH 1 D ctype 1 eq{() BD}if RC align NA AT 4 eq{/CD t D /DC dp D /LN 0 D /M1 0 D /M2 0 D}{/CD f D}ie 0 0 M /LM 0 D proc exec BN AT 4 eq{ LN array astore cell 15 3 -1 roll put cdesc icol get dup dup 5 get M1 lt{5 M1 put}{5 get /M1 E D}ie dup 6 get M2 lt{6 M2 put}{6 get /M2 E D}ie /LM M1 M2 add D }if /CD f D ang 0 ne{/LM CP E pop neg D}if /thiswid LM left add right add eps add D /oldmin 0 D /oldmax 0 D 0 1 cspan 1 sub{ icol add cdesc E get dup 2 get /oldmax E oldmax add D 1 get /oldmin E oldmin add D }for thiswid oldmax ge{ 0 1 cspan 1 sub{ icol add cdesc E get dup 2 E 2 get oldmax 0 eq {pop thiswid cspan div}{thiswid mul oldmax div}ie put }for }if nowrap 1 eq{ thiswid oldmin ge{ 0 1 cspan 1 sub{ icol add cdesc E get dup 1 E 1 get oldmin 0 eq {pop thiswid cspan div}{thiswid mul oldmin div}ie put }for }if }{ /W 0 D /LL W D /PH 2 D ctype 1 eq{() ES () BD}if 0 0 M /LM 0 D RC proc exec BN /thiswid LM left add right add eps add D thiswid oldmin ge{ 0 1 cspan 1 sub{ icol add cdesc E get dup 1 E 1 get oldmin 0 eq {pop thiswid cspan div}{thiswid mul oldmin div}ie put }for }if }ie ctype 1 eq{() ES}if }if }if }for }for }for /tmin 0 D /tmax 0 D 0 1 ncol{ cdesc E get dup 1 get E 2 get 2 copy gt{pop dup}if tmax add /tmax E D tmin add /tmin E D }for twid 0 lt{twid neg IW gt{IW neg}{twid}ie /twid E D}if tdesc 0 twid neg tmin 2 copy lt{E}if pop put tdesc 1 twid neg tmax 2 copy lt{E}if pop put /W w D /LL W D /OU t D /PH 0 D /PL 0 D } D /PT { /PL PL 1 add D tables E get /table E D Tm 21 get Ts mul BE PL 2 ge{save}if /SL SL 1 add D /FN EF 21 get D EZ 21 get Ey 21 get FS table aload pop /rdesc E D /cdesc E D /tdesc E D tdesc aload pop /capalg E D /caption E D /rules E D /frame E D /nfoot E D /nhead E D /ncol E D /nrow E D /border E D /twid E D /units E D /talign E D /flow E D /clear E D /tclass E D /tmax E D /tmin E D /w W D /xo XO D /mr MR D /ll LL D /lg LG D /ai AI D /bc BC D /nr NR D /ar AR D /tr TR D /ui UI D /ph PH D /a0 A0 D /pf PF D /at AT D /av AV D /al AL D /Le LE D /la La D talign 0 lt{/talign AL 0 gt{AV AL get}{A0 2 le{A0}{0}ie}ie D}if ph 1 eq ph 2 eq or{ NL ph 1 eq{tmax}{tmin}ie dup XO add LM gt{/LM E XO add D}{pop}ie LM E }{ /PH 3 D /LE 1e5 D RC %ZF border 0 gt{/border 1 D}if /twidth 0 D /avail W xo sub D twid 0 eq{0 1 ncol{cdesc E get dup 2 get E 3 get dup 0 gt{div neg dup twid lt {/twid E D}{pop}ie}{pop pop}ie}for}if /twid twid dup 0 lt{neg avail 2 copy gt{E}if pop}{avail mul}ie D /OK t D 0 1 ncol{cdesc E get dup 1 get E 3 get twid mul gt{/OK f D}if}for 0 1 ncol{ cdesc E get dup 1 get /colmin E D dup 3 get /cwid E twid mul D dup tmax avail le{2 get}if tmin avail le tmax avail gt and{ dup 2 get E 1 get dup 3 1 roll sub avail tmin sub mul tmax tmin sub div add }if tmin avail gt{1 get}if 0 E colmin cwid lt OK and{pop cwid}if dup /twidth E twidth add D put }for /OU f D CP tmin twid le{ 0 1 ncol{cdesc E get dup 0 get twidth div twid mul 0 E put}for /twidth twid D }if CP printcap CP E pop sub /caphig E D pop 0 1 1{ /pass E D 0 1 nrow{ /irow E D /cells rdesc irow get 6 get D 0 1 ncol{ /icol E D /cell cells icol get D cell 0 ne{ cell aload pop /ang E D /CB E D pop pop pop /DV E D /bot E D /top E D /right E D /left E D /nowrap E D /valign E D /dp E D /align E D /rspan E D /cspan E D /cclass E D /ctype E D /cmax E D /cmin E D /proc E D rspan 0 eq{/rspan nrow irow sub 1 add D}if cspan 0 eq{/cspan ncol icol sub 1 add D}if /W 0 D 0 1 cspan 1 sub{icol add cdesc E get 0 get /W E W add D}for pass 0 eq rspan 1 eq and pass 1 eq rspan 1 gt and or{ ctype 1 eq{() BD}if /W W left sub right sub D /XO 0 D /EO 0 D SI /A0 align D RC align NA AT 4 eq{ /DC dp D /DO 0 D /ID 1 D 0 1 DV length 1 sub{DV E get dup DO gt{/DO E D}{pop}ie}for /Lo DO DV 0 get sub D /L1 Lo D }if 0 0 M /BP t D /Fl t D /MF 0 D /FB 0 D proc exec T not{/CI 0 D}if BN 0 FB neg R MF 0 eq{/MF CS D}if CP /thishig E neg bot add top add CI add D pop ang 0 ne{/thishig LM bot add top add D}if cell 16 MF put cell 17 Ya put cell 18 thishig put valign 4 eq{ /below thishig Ya sub D rdesc irow get dup dup 4 get Ya lt {4 Ya put}{4 get /Ya E D}ie dup 5 get below lt{5 below put}{5 get /below E D}ie /thishig Ya below add D }if ctype 1 eq{()ES}if /oldhig 0 D 0 1 rspan 1 sub{ irow add rdesc E get 0 get /oldhig E oldhig add D }for thishig oldhig ge{ 0 1 rspan 1 sub{ irow add rdesc E get dup 0 E 0 get oldhig 0 eq {pop thishig rspan div}{thishig mul oldhig div}ie put }for }if }if }if }for }for }for M RC %ZF /thight 0 D /racc 0 D /maxh 0 D /brk 0 D /rbeg nhead nfoot add D 0 1 nrow{ rdesc E get dup 0 get dup /thight E thight add D brk 0 eq{/racc E D}{/racc E racc add D}ie racc maxh gt{/maxh racc D}if 2 get /brk E D }for ph 3 ge{thight caphig add E}if ph 0 eq ph 4 eq or{ /PH 4 D /LE Le D /OU Ou D /yoff 0 D /headsz 0 D 0 1 nhead 1 sub{rdesc E get 0 get headsz add /headsz E D}for /footsz 0 D 0 1 nfoot 1 sub{rdesc E nhead add get 0 get footsz add /footsz E D}for /ahig LE BO add MI add D /maxh maxh headsz add footsz add D /thight thight headsz add footsz add D tmin avail gt maxh ahig gt or {/Sf avail tmin div dup ahig maxh div gt{pop ahig maxh div}if D /SA t D} {/Sf 1 D}ie tclass 1 eq thight LE 15 sub gt and {/SA t D LE 15 sub thight div dup Sf lt{/Sf E D}{pop}ie}if SA{Sf Sf scale /ll ll Sf div D /xo xo Sf div D /LE LE Sf div D /mr mr Sf div D /BO BO Sf div D /ahig ahig Sf div D}if nhead nfoot add getwid LE CP E pop add capalg 0 eq{caphig sub}if bT{f}{dup thight lt thight ahig lt and}ie E headsz sub footsz sub rwid lt or{NP}if capalg 0 eq{printcap -8 SP}if CP /ycur E D pop printhead rbeg 1 nrow{/row E D row getwid ycur yoff add rwid sub footsz sub LE add 0 lt {nfoot 0 gt{printfoot}if Tf NP /rbeg irow1 D Ba{MI /MI MI SA{Sf div}if D MI SP /MI E D}if CP /ycur E D pop /yoff 0 D printhead}if irow1 printrow }for printfoot /row row 1 add D Tf 0 ycur yoff add M capalg 1 eq{/EO 0 D SI -3 SP printcap}if Sf 1 lt{1 Sf div dup scale /ll ll Sf mul D /xo xo Sf mul D /LE LE Sf mul D /mr mr Sf mul D /BO BO Sf mul D /SA f D}if /EO 0 D }if }ie /W w D /XO xo D /MR mr D /LL ll D /LG lg D /AI ai D /BC bc D /NR nr D /AR ar D /TR tr D /UI ui D /PH ph D /A0 a0 D /PF pf D /AT at D /AV av D /AL al D /La la D /SL SL 1 sub NN D /CF 0 D /FN 0 D SZ SL get FR SL get FS Wf not{()F2}if PL 2 ge{Ms E restore Ms or /Ms E D PH 1 eq PH 2 eq or {/LM E D}if PH 3 ge{/CI 0 D NL 0 E neg R}if }if /PL PL 1 sub D /CI 0 D /BP f D /PO f D () Bm 21 get Ts mul BE BL %CF CS SF } D /printcap{ capalg 0 ge{ SA{/W w Sf div D} {talign 1 eq{/XO xo ll twidth sub 2 div add D}if talign 2 eq{/XO xo ll twidth sub add D}if /W XO twidth add D }ie /XO xo D /LL W XO sub MR sub D /PA f D /Fl capalg 0 eq D 1 NA BL caption exec BN OA /PA t D }if } D /getwid{ /irow1 E D /irow2 irow1 D /rwid 0 D {rdesc irow2 get dup 0 get rwid add /rwid E D 2 get 0 eq {exit}{/irow2 irow2 1 add D}ie }loop } D /printrow{ /xoff ll twidth PL 2 ge{Sf div}if sub talign mul 2 div D /xleft xoff xo add D /irow E D /cells rdesc irow get 6 get D 0 1 ncol{ /icol E D /cell cells icol get D cell 0 ne{ cell aload pop /ang E D /CB E D /cvsize E D /above E D /fontsz E D /DV E D /bot E D /top E D /right E D /left E D /nowrap E D /valign E D /dp E D /align E D /rspan E D /cspan E D /cclass E D /ctype E D /cmax E D /cmin E D /proc E D rspan 0 eq{/rspan nrow irow sub 1 add D}if cspan 0 eq{/cspan ncol icol sub 1 add D}if /width 0 D 0 1 cspan 1 sub{icol add cdesc E get 0 get /width E width add D}for /rhight rdesc irow get 0 get D /hight rhight D 1 1 rspan 1 sub{irow add rdesc E get 0 get /hight E hight add D}for /W xo xoff add width add right sub D ang 0 ne{/W xo xoff add hight add right sub D}if /EO xo xoff add left add D SI Cf{ gsave CB VC xo xoff add ycur yoff add M 0 hight neg RL width 0 RL 0 hight RL width neg 0 RL fill grestore }if ctype 1 eq{() BD}if /A0 align D RC AT 4 eq{ /DC dp D /ID 1 D /DO cdesc icol get 5 get D /Lo DO DV 0 get sub D /L1 Lo D }if ang 0 ne{ gsave ang 90 eq {xoff ycur add hight cvsize sub 2 div sub ycur hight sub xoff sub} {xoff ycur sub width add hight cvsize sub 2 div add ycur xoff add}ie translate ang rotate }if valign 3 le{0 ycur yoff add top sub hight cvsize sub valign 1 sub mul 2 div sub M} {0 ycur yoff add top sub above add rdesc irow get 4 get sub M}ie /PA f D /BP t D /Fl t D BL proc exec BN ang 0 ne{grestore}if /PA t D ctype 1 eq{() ES}if }if /xoff xoff cdesc icol get 0 get add D }for /yoff yoff rhight sub D } D /printhead {0 1 nhead 1 sub{printrow}for} D /printfoot {nhead 1 nhead nfoot add 1 sub{printrow}for} D /Tf { OU{rules 2 ge{/yoff 0 D gsave 0 Sg [0 1 nhead 1 sub{}for rbeg 1 row 1 sub{}for nhead 1 nhead nfoot add 1 sub{}for]{ /irow E D /xoff ll twidth PL 2 ge{Sf div}if sub talign mul 2 div D /cells rdesc irow get 6 get D 0 1 ncol{ /icol E D /cell cells icol get D cell 0 ne{ /rspan cell 6 get D /cspan cell 5 get D rspan 0 eq{/rspan nrow irow sub 1 add D}if cspan 0 eq{/cspan ncol icol sub 1 add D}if /width 0 D 0 1 cspan 1 sub{icol add cdesc E get 0 get /width E width add D}for /rhight rdesc irow get 0 get D /hight rhight D 1 1 rspan 1 sub{irow add rdesc E get 0 get /hight E hight add D}for xo xoff add width add ycur yoff add M 0 hight neg icol cspan add 1 sub ncol lt {cdesc icol 1 add get 4 get dup rules 3 le{1 eq}{pop t}ie {1 eq{0.8}{0.3}ie LW RL CP stroke M}{pop R}ie}{R}ie irow nhead nfoot add 1 sub ne nfoot 0 eq or {irow rspan add 1 sub nrow lt {rdesc irow rspan add get 3 get}{nfoot 0 eq{0}{1}ie}ie dup rules 2 mod 0 eq{1 eq}{pop t}ie {1 eq irow rspan add nhead eq or irow rspan add row eq nfoot 0 gt and or {0.8}{0.3}ie LW width neg 0 RL CP stroke M}{pop}ie}if }if /xoff xoff cdesc icol get 0 get add D }for /yoff yoff rhight sub D }forall grestore /Ms t D }if frame 1 gt{ gsave 1 LW 0 Sg xleft ycur M CP BB 0 yoff frame 5 eq frame 7 ge or{RL}{R}ie twidth 0 frame 3 eq frame 4 eq or frame 8 ge or{RL}{R}ie CP BB 0 yoff neg frame 6 ge{RL}{R}ie twidth neg 0 frame 2 eq frame 4 eq or frame 8 ge or{RL}{R}ie closepath stroke grestore /Ms t D }if }if } D /tables [[[0 0 0 0 0 -1 0 1 1 42 2 0 0 9 5 {()} -1] [[0 0 0 0 0 0 0][0 0 0 0 0 0 0][0 0 0 0 0 0 0]] [[0 0 0 0 0 0 [[{()2 Sl()WB()BD(Histo)HY(rique)YH( des versions)ES()} 0 0 1 0 3 1 0 (.) 1 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.19.fr.1.0)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2007-01-28)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(EA)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Mise \340 jour de la version fran\347aise.)} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.14.fr.1.0)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-10-11)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(EA, CH, AP, JPG)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Premi\350re traduc)HY(tion)YH( fran\347aise.)} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.19)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2006-11-27)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Clari)HY(fi)HY(ca)HY(tion)YH( des condi)HY(tions)YH( pour les sauve)HY(gardes)YH( instan)HY(ta)HY(n\351es)YH( dans )0 20 1 A()0 20 1 A(Section\2408, \253\240Les instan)HY(ta)HY(n\351s)YH( \201snap)HY(shots)YH(\202\240\273)20 0 TN TL()Ec /AF f D()20 0 TN TL()Ec /AF f D( et ajout d'une remarque sur le redi)HY(men)HY(sion)HY(ne)HY(ment)YH( de la source d'un instan)HY(tan\351)YH( )EM(\201Clari)HY(fied)YH( full snap)HY(shot)YH( condi)HY(tions)YH( in )0 20 1 A()0 20 1 A(Section\2408, \253\240Les instan)HY(ta)HY(n\351s)YH( \201snap)HY(shots)YH(\202\240\273)20 0 TN TL()Ec /AF f D()20 0 TN TL()Ec /AF f D( and )0 119 1 A()0 119 1 A(Section\2404.1, \253\240Cr\351er le volume d'instan)HY(tan\351)YH(\240\273)119 0 TN TL()Ec /AF f D()119 0 TN TL()Ec /AF f D( and added a note about resi)HY(zing)YH( the origin of a snap)HY(shot)YH(\202)ES(\240; correc)HY(tion)YH( des droits d'utili)HY(sa)HY(tion)YH( )EM(\201Fixed Rackable copy)HY(right)YH(\202)ES(\240; correc)HY(tion)YH( de l'adresse e-mail )EM(\201Fixed e-mail address\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.18)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2006-11-27)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Clari)HY(fi)HY(ca)HY(tion)YH( sur l'utili)HY(sa)HY(tion)YH( du disque complet dans )0 85 1 A()0 85 1 A(Section\2401, \253\240Initia)HY(li)HY(ser)YH( des disques ou des parti)HY(tions)YH( de disques\240\273)85 0 TN TL()Ec /AF f D()85 0 TN TL()Ec /AF f D( )EM(\201Clarify whole disk usage in )0 85 1 A()0 85 1 A(Section\2401, \253\240Initia)HY(li)HY(ser)YH( des disques ou des parti)HY(tions)YH( de disques\240\273)85 0 TN TL()Ec /AF f D()85 0 TN TL()Ec /AF f D(\202)ES(\240; mise \340 jour des droits d'utili)HY(sa)HY(tion)YH( )EM(\201Updated copy)HY(right)YH(\202)ES(\240; mise \340 jour de l'adresse e-mail )EM(\201Updated e-mail address\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.17)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2005-10-03)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Ajout d'une entr\351e dans la FAQ sur la taille maxi)HY(male)YH( des LVs avec LVM\2402 )EM(\201Added FAQ entry for max size of LVs in LVM2\202)ES(\240; m\351nage dans le para)HY(graphe)YH( "R\351cu)HY(p\351)HY(ra)HY(tion)YH( des m\351ta-donn\351es d'un volume physique" )EM(\201Did some cleanup of "Recover physi)HY(cal)YH( volume meta)HY(data)YH(" section\202)ES(\240; mise \340 jour de l'adresse e-mail )EM(\201Updated e-mail address\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.16)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2005-07-15)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Ajout d'infor)HY(ma)HY(tions)YH( rela)HY(tives)YH( au scripts de d\351mar)HY(rage)YH( de LVM\2402 )EM(\201Added lvm2 boot-time scripts info\202)ES(\240; ajout du para)HY(graphe)YH( "R\351cu)HY(p\351)HY(ra)HY(tion)YH( des m\351ta-donn\351es d'un volume physique" - remer)HY(cie)HY(ments)YH( \340 Maxi)HY(mi)HY(lian)YH( Attems pour le patch )EM(\201Added "Recover physi)HY(cal)YH( volume meta)HY(data)YH(" section - thanks to Maxi)HY(mi)HY(lian)YH( Attems for the patch\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.15)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2005-06-09)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Suppres)HY(sion)YH( des r\351f\351)HY(rences)YH( \340 xfs_freeze, qui ne sont plus n\351ces)HY(saires)YH( )EM(\201Removed refe)HY(rences)YH( to xfs_freeze - it is no longer needed\202)ES(\240; mise \340 jour du para)HY(graphe)YH( sur les instan)HY(ta)HY(n\351s)YH( dans le chapitre "Anato)HY(mie)YH( de LVM" )EM(\201Updated snap)HY(shots)YH( subsec)HY(tion)YH( in Anatomy of LVM section\202)ES(\240; ajout de plusieurs entr\351es dans la FAQ LVM\2402 )EM(\201Added a couple entries to the LVM2 FAQ\202)ES(\240; correc)HY(tion)YH( de plusieurs coquilles )EM(\201Fixed a couple typos\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.14)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-10-06)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Ajout d'une r\351f\351)HY(rence)YH( au script lvm2_crea)HY(tei)HY(ni)HY(trd)YH( dans les sources\240; petite mise \340 jour de l'exemple de lvcreate\240; ajout de \253\240vgchange -ay\240\273 dans la recette \253\240D\351pla)HY(cer)YH( un groupe de volumes vers un autre syst\350me\240\273 )EM(\201Added refe)HY(rence)YH( to lvm2_crea)HY(tei)HY(ni)HY(trd)YH( in source tree; Adjus)HY(ted)YH( lvcreate example slightly; Added 'vgchange -ay' in 'Moving a volume group to another system' recipe\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.13)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-08-16)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Clari)HY(fi)HY(ca)HY(tion)YH( de la descrip)HY(tion)YH( sur les liens\240; correc)HY(tion)YH( du nombre majeur du p\351ri)HY(ph\351)HY(rique)YH( de contr\364le de dm\240; suppres)HY(sion)YH( de /boot de vg dans l'exemple de petite confi)HY(gu)HY(ra)HY(tion)YH( LVM\240; ajout de commen)HY(taires)YH( sur /boot et / dans LVM\240; suppres)HY(sion)YH( d'un lien mort )EM(\201Clarify symlink farm descrip)HY(tion)YH(; Fix dm control device major number; Remove /boot from vg in small lvm setup example; Add notes about /boot and / on LVM; Remove outda)HY(ted)YH( link\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.12)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-06-07)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour de la FAQ sur LVM\2402 )EM(\201Updated LVM 2 FAQ entries\202)ES( )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.11)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-05-03)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour de la FAQ sur LVM\2402 )EM(\201Updated LVM 2 FAQ entries\202)ES( )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.10)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-04-22)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Retrait de -print0 de la commande find suite aux retours indiquant que cela ne fonc)HY(tionne)YH( pas )EM(\201removed -print0 from find command after recei)HY(ving)YH( reports that it doesn't work\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.9)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-04-16)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Ajout de -print0 \340 la commande find avant la redi)HY(rec)HY(tion)YH( vers cpio )EM(\201Added -print0 to find command before pipin)HY(git)YH( to cpio\202)ES(\240; chan)HY(ge)HY(ment)YH( de la ligne de commande vgim)HY(port)YH( pour LVM\2402 )EM(\201Changed vgim)HY(port)YH( command line for LVM 2\202)ES(\240; ajout de ext3 au para)HY(graphe)YH( de redi)HY(men)HY(sion)HY(ne)HY(ment)YH( de ext2 )EM(\201Added ext3 to the ext2 resize section\202)ES(\240; mise \340 jour de la FAQ )EM(\201Updated FAQ\202)ES(\240 mise \340 jour des liens )EM(\201Updated Links section\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.8)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-02-25)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour de l'empla)HY(ce)HY(ment)YH( du CVS et des liens FTP )EM(\201Updated CVS loca)HY(tions)YH( and FTP links\202)ES(\240; ajout d'un para)HY(graphe)YH( sur l'exten)HY(sion)YH( d'un syst\350me de fichiers JFS )EM(\201Added section on exten)HY(ding)YH( a JFS file)HY(sys)HY(tem)YH(\202)ES(\240; correc)HY(tions)YH( typo)HY(gra)HY(phiques)YH( - utili)HY(sa)HY(tion)YH( d'aspell sur le docu)HY(ment)YH( )EM(\201Fixed typos - Ran aspell against docu)HY(ment)YH(\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.7)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2004-02-16)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour pour inclure les infor)HY(ma)HY(tions)YH( sur LVM\2402 et le mappeur de p\351ri)HY(ph\351)HY(riques)YH( )EM(\201Updated to include LVM 2 and device mapper infor)HY(ma)HY(tion)YH(\202)ES(\240 mise \340 jour des adresses \351lec)HY(tro)HY(niques)YH( )EM(\201Updated email addresses\202)ES(\240; mise \340 jour des droits d'utili)HY(sa)HY(tion)YH( )EM(\201Updated copy)HY(right)YH(\202)ES(\240; ajout de la FAQ )EM(\201Added FAQ section\202)ES(\240; ajout de la licence )EM(\201Added docu)HY(ment)YH( license\202)ES(\240; mise \340 jour vers DocBook 4.2 )EM(\201Updated to docbook 4.2\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.6)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2003-12-09)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour pour LVM\2401.0.8 )EM(\201Updated for LVM\2401.0.8\202)ES(\240; r\351pa)HY(ra)HY(tion)YH( d'un lien cass\351 )EM(\201fixed broken link\202)ES(\240; clari)HY(fi)HY(ca)HY(tion)YH( de la partie sur le script d'initia)HY(li)HY(sa)HY(tion)YH( RedHat )EM(\201Clari)HY(fied)YH( redhat init script section\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.5)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2003-02-10)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour des infor)HY(ma)HY(tions)YH( du script inits)HY(cript)YH( de RedHat pour les versions 7.0 et sup\351)HY(rieures)YH( )EM(\201Updated Redhat inits)HY(cript)YH( infor)HY(ma)HY(tion)YH( for 7.0 and above\202)ES(\240; ajout des infor)HY(ma)HY(tions)YH( pour suppri)HY(mer)YH( une table de parti)HY(tions)YH( d'un disque lorsque pvcreate \351choue )EM(\201Added infor)HY(ma)HY(tion)YH( on remo)HY(ving)YH( a parti)HY(tion)YH( table from a disk if pvcreate fails\202)ES(\240; la taille par d\351faut de PE est d\351sor)HY(mais)YH( de 32\240Mo )EM(\201Default PE size is 32MB now\202)ES(\240; mise \340 jour de la m\351thode d'instan)HY(ta)HY(n\351s)YH( avec XFS )EM(\201Updated method for snap)HY(shot)HY(ting)YH( under XFS\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.4)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2002-12-16)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour pour LVM\2401.0.6 )EM(\201Updated for LVM 1.0.6\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.3)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2002-09-16)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Suppres)HY(sion)YH( de l'exemple de pvmove du chapitre \253\240Op\351ra)HY(tions)YH( de commandes\240\273 - nous poin)HY(tons)YH( d\351sor)HY(mais)YH( vers la recette plus d\351taill\351e sur pvmove qui contient diff\351)HY(rents)YH( aver)HY(tis)HY(se)HY(ments)YH( )EM(\201removed example pvmove from Command Opera)HY(tions)YH( section - we now just point to the more detai)HY(led)YH( recipe on pvmove that contains various warnings and such\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.2)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2002-09-11)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(AJL)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Mise \340 jour pour LVM\2401.0.5 et conver)HY(sion)YH( vers DocBook XML 4.1.2. )EM(\201Updated for LVM 1.0.5 and conver)HY(ted)YH( to DocBook XML 4.1.2\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] [0 0 0 0 0 0 [[{()2 Sl()WB(Version 0.1)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(2002-04-28)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(gf)} 0 0 0 0 1 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB( Conver)HY(sion)YH( initiale du source du format Latex de Sistina vers le format Linux)HY(Doc)YH( du tLDP )EM(\201Initial conver)HY(sion)YH( from Sistina's LaTeX source and import to tLDP in Linux)HY(Doc)YH( format\202)ES(. )} 0 0 0 0 3 1 0 (.) 2 0 4 4 2 6 0 0 0 0 Db 0 ] 0 0 ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( La parti)HY(tion)YH( de d\351mar)HY(rage)YH( /boot n'est pas incluse dans le LV car les char)HY(geurs)YH( de d\351mar)HY(rage)YH( ne g\350rent pas encore les volumes LVM. Il est possible que le d\351mar)HY(rage)YH( sur une parti)HY(tion)YH( LVM fonc)HY(tionne)YH(, mais vous risquez de vous retrou)HY(vez)YH( avec un syst\350me non amor\347able. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB( Seuls les utili)HY(sa)HY(teurs)YH( avanc\351s peuvent envi)HY(sa)HY(ger)YH( de passer leur parti)HY(tion)YH( racine en LVM )} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Pour passer la parti)HY(tion)YH( racine en LVM, une image initrd doit activer le LV racine au d\351mar)HY(rage)YH(. Si le noyau est mis \340 jour sans cr\351er l'image initrd n\351ces)HY(saire)YH(, le noyau ne pourra pas d\351mar)HY(rer)YH(. Les nouvelles distri)HY(bu)HY(tions)YH( incluent LVM dans leurs scripts mkini)HY(trd)YH( ainsi que dans leurs images initrd, donc cela va devenir de moins en moins probl\351)HY(ma)HY(tique)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(D\351faut de LVM\2401)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Avec LVM\2401, les LV cr\351\351s par r\351par)HY(ti)HY(tion)YH( ne peuvent pas \352tre \351tendus au-del\340 des PV o\371 ils ont \351t\351 cr\351\351s initia)HY(le)HY(ment)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Les instan)HY(ta)HY(n\351s)YH( pleins sont auto)HY(ma)HY(tique)HY(ment)YH( d\351sac)HY(ti)HY(v\351s)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Lorsque le volume logique d'un instan)HY(tan\351)YH( est plein, il est d\351sac)HY(tiv\351)YH( \201\351tat inuti)HY(li)HY(sable)YH(\202. Il est donc primor)HY(dial)YH( de lui allouer un espace suffi)HY(sant)YH(. Il n'y a pas de recette magique pour d\351ter)HY(mi)HY(ner)YH( l'espace requis, qui d\351pend unique)HY(ment)YH( de l'utili)HY(sa)HY(tion)YH( de l'instan)HY(tan\351)YH(. Cepen)HY(dant)YH(, un instan)HY(tan\351)YH( de taille iden)HY(tique)YH( \340 sa source ne sera jamais satur\351. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Avec le mappeur de p\351ri)HY(ph\351)HY(riques)YH( actuel et LVM\2402, la source peut \352tre agran)HY(die)YH( mais pas r\351duite. Avec LVM\2401, le redi)HY(men)HY(sion)HY(ne)HY(ment)YH( de la source est impos)HY(sible)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Mise \340 jour de LVM\2401 vers LVM\2402)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Assurez-vous de suppri)HY(mer)YH( tous les instan)HY(ta)HY(n\351s)YH( avant la mise \340 jour de LVM\2401 vers LVM\2402. \201Cf. )0 22 1 A(Section\2401, \253\240FAQ LVM\2402 \240\273)22 0 TN TL()Ec /AF f D(.\202 )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Des probl\350mes de fonc)HY(tion)HY(ne)HY(ment)YH( ou l'enl\350)HY(ve)HY(ment)YH( d'un disque en cours d'utili)HY(sa)HY(tion)YH( par LVM cause des probl\350mes avec l'utili)HY(sa)HY(tion)YH( en cours et les futures acti)HY(va)HY(tions)YH( du VG concern\351. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 25 1 0 0 1 1 {()} -1] [[0 0 0 0.01 0 0 0][0 0 0 0 0 0 0]] [[0 0 0 1 0 0 [[{()2 Sl()WB()WB 23 Sn()WB 24 Sn()0 P()BD(1.1.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( J'ai LVM\2401 install\351 et fonc)HY(tion)HY(nel)YH( sur mon syst\350me. Comment faire pour passer \340 LVM\2402\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Voici les instruc)HY(tions)YH( pour d\351mar)HY(rer)YH( rapi)HY(de)HY(ment)YH(\240:\202 )BR()4 OL()0 P()-1 LI( Commen)HY(cez)YH( par enlever tous les instan)HY(ta)HY(n\351s)YH( du syst\350me. Ils ne sont pas g\351r\351s par LVM\2402 et emp\352)HY(che)HY(ront)YH( l'acti)HY(va)HY(tion)YH( de leur volume d'origine au d\351mar)HY(rage)YH( de LVM\2402. )EP()0 P()-1 LI( Assurez-vous de poss\351)HY(der)YH( un moyen de d\351mar)HY(rage)YH( du syst\350me autre que par la parti)HY(tion)YH( de d\351mar)HY(rage)YH( stan)HY(dard)YH(. Vous devez avoir les utili)HY(taires)YH( de LVM\2401, les outils syst\350mes stan)HY(dards)YH( \201mount\202 et un noyau compa)HY(tible)YH( LVM\2401 au cas o\371 il serait n\351ces)HY(saire)YH( de revenir en arri\350re pour faire des correc)HY(tions)YH(. )EP()0 P()-1 LI( R\351cu)HY(p\351)HY(rez)YH( les sources des utili)HY(taires)YH( de LVM\2402 et le mappeur de p\351ri)HY(ph\351)HY(riques)YH(. Compi)HY(lez)YH(-les. Il faut instal)HY(ler)YH( la biblio)HY(th\350que)YH( du mappeur de p\351ri)HY(ph\351)HY(riques)YH( avec \253\240make install\240\273 avant de compi)HY(ler)YH( les utili)HY(taires)YH( de LVM\2402. Copiez aussi le script dm/scripts/devmap_mknod.sh dans /sbin. Je recom)HY(mande)YH( d'instal)HY(ler)YH( seule)HY(ment)YH( le binaire \253\240lvm\240\273 pour l'instant pour garder l'acc\350s aux utili)HY(taires)YH( de LVM\2401 au cas o\371. Si vous avez acc\350s \340 des paquets de LVM\2402 et du mappeur de p\351ri)HY(ph\351)HY(riques)YH(, vous pouvez les instal)HY(ler)YH( \340 la place mais il faut noter qu'il vont proba)HY(ble)HY(ment)YH( \351craser les utili)HY(taires)YH( de LVM\2401. )EP()0 P()-1 LI( R\351cu)HY(p\351)HY(rez)YH( un noyau compa)HY(tible)YH( avec le mappeur de p\351ri)HY(ph\351)HY(riques)YH(, compil\351 en interne ou avec un module. )EP()0 P()-1 LI( Recher)HY(chez)YH( les commandes d'acti)HY(va)HY(tion)YH( de LVM dans les scripts de d\351mar)HY(rage)YH( de la machine. Assurez-vous que le module du mappeur de p\351ri)HY(ph\351)HY(riques)YH( est charg\351 \340 cet endroit \201si vous utili)HY(sez)YH( le mappeur de p\351ri)HY(ph\351)HY(riques)YH( en tant que module\202 et ajoutez ensuite la commande \253\240/sbin/devmap_mknod.sh; lvm vgscan; lvm vgchange -ay\240\273. )EP()0 P()-1 LI( Instal)HY(lez)YH( le noyau compa)HY(tible)YH( avec le mappeur de p\351ri)HY(ph\351)HY(riques)YH( et red\351)HY(mar)HY(rez)YH(. Si tout se passe bien, vous devriez \352tre en train d'utili)HY(ser)YH( LVM\2402. )EP()LO()BR( )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 25 Sn()WB 26 Sn()0 P()BD(1.2.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Un module noyau sp\351ci)HY(fique)YH( est-il n\351ces)HY(saire)YH( pour LVM\2402\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Non. Il faut le mappeur de p\351ri)HY(ph\351)HY(riques)YH( \201device-mapper\202. Les utili)HY(taires)YH( de LVM\2402 l'utilisent pour s'inter)HY(fa)HY(cer)YH( avec le noyau et effec)HY(tuer)YH( tout le mappage des inter)HY(faces)YH( \201d'o\371 le nom de mappeur de p\351ri)HY(ph\351)HY(riques)YH(\202. A partir du moment o\371 le mappeur de p\351ri)HY(ph\351)HY(riques)YH( est dispo)HY(nible)YH(, vous devriez pouvoir utili)HY(ser)YH( LVM\2402. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 27 Sn()WB 28 Sn()0 P()BD(1.3.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( J'ai des erreurs concer)HY(nant)YH( )SM(/dev/mapper/control)ES( quand j'essaie d'utili)HY(ser)YH( les utili)HY(taires)YH( LVM\2402. Que se passe-t-il\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( La cause premi\350re de ce probl\350me est de ne pas avoir lanc\351 la commande \253\240dmsetup mknodes\240\273 apr\350s le red\351)HY(mar)HY(rage)YH( avec un noyau utili)HY(sant)YH( le mappeur de p\351ri)HY(ph\351)HY(riques)YH(. Ce script g\351n\350re le n\275ud de contr\364le pour le mappeur de p\351ri)HY(ph\351)HY(riques)YH(. )EP()0 P( Si la commande \253\240dmsetup mknodes\240\273 n'est pas dispo)HY(nible)YH(, ne d\351ses)HY(p\351)HY(rez)YH( pas! \201Cepen)HY(dant)YH( cela veut proba)HY(ble)HY(ment)YH( dire que vous devriez migrer vers la derni\350re version de device-mapper.\202 Il est assez simple de cr\351er le fichier )SM(/dev/mapper/control)ES( par vous m\352me\240: )BR()4 OL()0 P()-1 LI( Assurez-vous d'avoir charg\351 le module du mappeur de p\351ri)HY(ph\351)HY(riques)YH( s'il n'est pas direc)HY(te)HY(ment)YH( dans le noyau. )EP()0 P()-1 LI( Tapez\240: )EP()9 9 PR(# cat /proc/misc | grep device-mapper | awk '{print $1}')RP()0 P( et notez le chiffre affich\351. \201S'il n'y a rien d'affich\351, repor)HY(tez)YH(-vous \340 l'\351tape 1.\202 )EP()0 P()-1 LI( Tapez\240: )EP()9 9 PR(# mkdir /dev/mapper)RP()0 P( Si vous obtenez une erreur comme quoi )SM(/dev/mapper)ES( existe d\351j\340, v\351ri)HY(fiez)YH( que c'est un r\351per)HY(toire)YH( et conti)HY(nuez)YH(. )EP()0 P()-1 LI( Tapez\240: )EP()9 9 PR(# mknod /dev/mapper/control c 10 $nombre)RP()0 P( $nombre est le chiffre affich\351 \340 l'\351tape 2. )EP()LO()BR( Cela devrait \352tre bon main)HY(te)HY(nant)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 29 Sn()WB 30 Sn()0 P()BD(1.4.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Quelles sont les commandes et types de volumes logiques compa)HY(tibles)YH( avec LVM\2402\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Si vous utili)HY(sez)YH( le correc)HY(tif)YH( de l'archive lvm2 pour les noyaux stables 2.4, toutes les fonc)HY(tion)HY(na)HY(li)HY(t\351s)YH( majeures de LVM1 seront compa)HY(tibles)YH( avec les outils de LVM2 \201il est toujours n\351ces)HY(saire)YH( de suppri)HY(mer)YH( les instan)HY(ta)HY(n\351s)YH( avant la mise \340 jour de LVM\2401 vers LVM\2402.\202 )EP()0 P( Si vous utili)HY(sez)YH( la version du mappeur de p\351ri)HY(ph\351)HY(riques)YH( du noyau 2.6 de kernel.org, les commandes et types de LV suivants ne sont pas compa)HY(tibles)YH(\240: )BR()UL()0 P()-1 LI( pvmove )EP()0 P()-1 LI( snap)HY(shots)YH( )EP()LU()BR( Vous pourrez trouver un d\351but de compa)HY(ti)HY(bi)HY(lit\351)YH( avec ces fonc)HY(tion)HY(na)HY(li)HY(t\351s)YH( dans )R5 2 A(les correc)HY(tifs)YH( instables du mappeur de p\351ri)HY(ph\351)HY(riques)YH()EA( main)HY(te)HY(nus)YH( par Joe Thorn)HY(ber)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 31 Sn()WB 32 Sn()0 P()BD(1.5.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Les formats de repr\351)HY(sen)HY(ta)HY(tion)YH( sur le disque des groupes de volumes et volumes logiques sont-ils diff\351)HY(rents)YH( dans LVM\2402 par rapport \340 LVM\2401\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Oui. LVM\2402 utilise le format de m\351ta-donn\351es lvm\2402. Ce format est beau)HY(coup)YH( plus flexible que celui de LVM\2401. Il supprime ou r\351duit la plupart des limi)HY(ta)HY(tions)YH( de LVM\2401. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 33 Sn()WB 34 Sn()0 P()BD(1.6.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( LVM\2402 est-il compa)HY(tible)YH( avec les VG et LV cr\351\351s avec LVM\2401\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Oui. LVM\2402 est capable d'activer et de fonc)HY(tion)HY(ner)YH( avec les VG et LV cr\351\351s avec LVM\2401 \340 l'exception des instan)HY(ta)HY(n\351s)YH( qui doivent \352tre suppri)HY(m\351s)YH( avant la mise \340 jour. Les instan)HY(ta)HY(n\351s)YH( qui restent apr\350s la mise \340 jour devront \352tre suppri)HY(m\351s)YH( afin que l'on puisse activer leur volume d'origine avec LVM\2402. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 35 Sn()WB 36 Sn()0 P()BD(1.7.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Puis-je passer mes VG et LV qui proviennent de LVM\2401 au format natif de LVM\2402\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Oui. vgcon)HY(vert)YH( permet de conver)HY(tir)YH( un VG et tous les LV qu'il contient au nouveau format de m\351ta-donn\351es lvm 2. Atten)HY(tion)YH(, il n'est pas toujours possible de revenir ensuite aux m\351ta-donn\351es lvm 1. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 37 Sn()WB 38 Sn()0 P()BD(1.8.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( J'ai mis \340 jour mon syst\350me avec LVM\2402, mais les utili)HY(taires)YH( \351chouent constam)HY(ment)YH( en indiquant qu'il ne reste plus de m\351moire libre. Que se passe-t-il\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Une des causes possibles de cela est le non posi)HY(tion)HY(ne)HY(ment)YH( par certaines versions de LVM\2401 du champ UUID dans les struc)HY(tures)YH( de PV et VG alors qu'elles \351taient suppo)HY(s\351es)YH( le faire. \201L'utili)HY(sa)HY(teur)YH( qui a signal\351 l'anoma)HY(lie)YH( utili)HY(sait)YH( une Mandrake 9.2, mais d'autres distri)HY(bu)HY(tions)YH( peuvent \352tre impac)HY(t\351es)YH(.\202 Les derni\350res versions des utili)HY(taires)YH( de LVM\2402 posi)HY(tionnent)YH( les UUID auto)HY(ma)HY(tique)HY(ment)YH( s'ils manquent, il vous suffit donc de r\351cu)HY(p\351)HY(rer)YH( une version plus r\351cente que la v\364tre et le probl\350me devrait \352tre r\351solu. Dans le cas contraire, envoyez un message sur )0 166 1 A(la liste de diffu)HY(sion)YH( linux-lvm)166 0 TN TL()Ec /AF f D(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 39 Sn()WB 40 Sn()0 P()BD(1.9.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Ma parti)HY(tion)YH( racine est sur un LV en LVM\2401. Comment faire pour passer \340 LVM\2402\240? Qu'est devenu lvmcreate_initrd\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Passer \340 LVM\2402 avec sa parti)HY(tion)YH( racine en LVM est un peu compliqu\351, mais pas impos)HY(sible)YH(. Vous devez cr\351er un noyau compa)HY(tible)YH( avec le mappeur de p\351ri)HY(ph\351)HY(riques)YH( et instal)HY(ler)YH( les utili)HY(taires)YH( LVM\2402. \201Vous devriez faire une sauve)HY(garde)YH( des utili)HY(taires)YH( de LVM\2401 ou trouver un disque de secours avec les utili)HY(taires)YH( LVM au cas o\371 vous en auriez besoin avant la fin de la migra)HY(tion)YH(.\202 Ensuite, vous devez trouver un script mkini)HY(trd)YH( compa)HY(tible)YH( avec votre distri)HY(bu)HY(tion)YH( et de LVM\2402. )EP()0 P( Voici la liste des scripts mkini)HY(trd)YH( que je connais et qui sont compa)HY(tibles)YH( avec LVM\2402, class\351s par distri)HY(bu)HY(tions)YH(\240: )BR()0 P()BD(Scripts mkini)HY(trd)YH( compa)HY(tible)YH( LVM\2402)ES()EP()0 DL()0 DT(Fedora)DD()0 P( Le programme )R6 2 A(mkini)HY(trd)YH()EA( de la derni\350re Fedora Core 2 g\350re LVM\2402, mais repose sur un binaire lvm li\351 statique)HY(ment)YH( dans la derni\350re archive LVM\2402. )EP()0 P( Les utili)HY(sa)HY(teurs)YH( de Redhat 9 devraient pouvoir l'utili)HY(ser)YH(. )EP()0 DT(Debian)DD()0 P( Il existe une version non offi)HY(cielle)YH( )R7 2 A(ici)EA(. )EP()0 DT(G\351n\351)HY(rique)YH()DD()0 P( Il en existe une version dans la distri)HY(bu)HY(tion)YH( source de LVM\2402 dans le r\351per)HY(toire)YH( )SM(scripts/lvm2_crea)HY(tei)HY(ni)HY(trd)YH(/)ES(. Voir la docu)HY(men)HY(ta)HY(tion)YH( dans ce r\351per)HY(toire)YH( pour plus de d\351tails. )EP()LD()BR( )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 41 Sn()WB 42 Sn()0 P()BD(1.10.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Comment se comporte LVM par rapport \340 un renom)HY(mage)YH( soudain des disques physiques\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Tr\350s bien\240: LVM iden)HY(ti)HY(fie)YH( les PV par leur UUID et non par le nom du p\351ri)HY(ph\351)HY(rique)YH(. )EP()0 P( Chaque disque \201PV\202 poss\350de un UUID, qui est un iden)HY(ti)HY(fiant)YH( unique dans le syst\350me. Il est utilis\351 par \253\240vgscan\240\273 pour le recon)HY(na\356tre)YH( lorsqu'un nouveau disque est ajout\351 et change la num\351)HY(ro)HY(ta)HY(tion)YH( du disque. Pour cela, la plupart des distri)HY(bu)HY(tions)YH( lancent vgscan dans les scripts de d\351mar)HY(rage)YH( pour d\351tec)HY(ter)YH( les ajouts de mat\351)HY(riel)YH(. Si vous faites des ajouts \340 chaud, je pense que vous devrez faire cela manuel)HY(le)HY(ment)YH(. D'un autre cot\351, si votre VG est activ\351 et utilis\351, la renu)HY(m\351)HY(ro)HY(ta)HY(tion)YH( ne devrait pas l'affec)HY(ter)YH( du tout. L'iden)HY(ti)HY(fiant)YH( est unique)HY(ment)YH( utilis\351 lors de l'acti)HY(va)HY(tion)YH( et le pire qu'il puisse arriver sans le vgscan est que l'acti)HY(va)HY(tion)YH( \351choue avec un message indiquant qu'il manque un PV. )EP()BR()7 PT()BR()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 43 Sn()WB 44 Sn()0 P()BD(1.11.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( J'essaie de remplir mon VG et vgdis)HY(play)YH(/vgs indique que j'ai 1,87\240Go de libre mais quand je fais un lvcreate vg -L1.87G, il indique \253\240pas assez d'extents libres\240\273 \201\253\240insuf)HY(fi)HY(cient)YH( free extents\240\273\202. Que se passe-t-il\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Le chiffre 1,87\240Go est arrondi \340 deux d\351ci)HY(males)YH(, donc il corres)HY(pond)YH( \340 quelque chose comme 1,866\240Go. C'est juste une pr\351sen)HY(ta)HY(tion)YH( \340 l'\351cran du chiffre pour donner une id\351e g\351n\351)HY(rale)YH( de la taille du VG. Si vous voulez donner une taille exacte, vous devez utili)HY(ser)YH( les extents \340 la place de quelque multiple d'octets. )EP()0 P( Dans le cas de vgdis)HY(play)YH(, utili)HY(sez)YH( le chiffre donn\351 par Free PE \340 la place. )EP()9 9 PR(Free PE / Size 478 / 1.87 GB ^^^)RP()0 P( Vous devriez donc lancer la commande suivante\240: )EP()9 9 PR(# lvcreate vg -l478)RP()0 P( Remarquez qu'\340 la place d'un \253\240L\240\273 majus)HY(cule)YH(, il faut utili)HY(ser)YH( un \253\240l\240\273 minus)HY(cule)YH( pour dire \340 LVM d'utili)HY(ser)YH( les extents plut\364t que les octets. )EP()0 P( Dans le cas de vgs, il est n\351ces)HY(saire)YH( de lui deman)HY(der)YH( expli)HY(ci)HY(te)HY(ment)YH( le nombre d'extents dispo)HY(nibles)YH(\240: )EP()9 9 PR(# vgs -o +vg_free_count,vg_extent_count)RP()0 P( Cela demande \340 vgs de rajou)HY(ter)YH( le nombre d'extents libres et leur nombre total \340 la fin de la liste produite par vgs. Utili)HY(sez)YH( le nombre d'extents libres de la m\352me fa\347on que pour le cas de vgdis)HY(play)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 45 Sn()WB 46 Sn()0 P()BD(1.12.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Quelles sont les diff\351)HY(rences)YH( entre les instan)HY(ta)HY(n\351s)YH( de LVM\2402 et LVM\2401\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Avec LVM\2402, les instan)HY(ta)HY(n\351s)YH( sont en lecture/\351cri)HY(ture)YH( par d\351faut, alors qu'ils sont en lecture seule avec LVM\2401. Voir )0 20 1 A(Section\2408, \253\240Les instan)HY(ta)HY(n\351s)YH( \201snap)HY(shots)YH(\202\240\273)20 0 TN TL()Ec /AF f D( pour plus de d\351tails. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()WB 47 Sn()WB 48 Sn()0 P()BD(1.13.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Quelle est la taille maxi)HY(male)YH( d'un LV\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Cela d\351pend de l'archi)HY(tec)HY(ture)YH( CPU et du noyau utilis\351\240: )BR()UL()0 P()-1 LI( Pour les noyaux 2.4, la taille maxi)HY(male)YH( d'un LV est de 2TB. Cepen)HY(dant)YH(, pour certains noyaux plus anciens, la limite \351tait de 1TB en raison d'un probl\350me de nombres sign\351s au niveau des blocs. La distri)HY(bu)HY(tion)YH( Red Hat Enter)HY(prise)YH( Linux Update 4 a un correc)HY(tif)YH( pour auto)HY(ri)HY(ser)YH( les LVs de 2TB. Consul)HY(tez)YH( les infor)HY(ma)HY(tions)YH( de votre distri)HY(bu)HY(tion)YH( pour ce probl\350me. )EP()0 P()-1 LI( Pour les CPUs 32 bits avec les noyaux 2.6, la taille maxi)HY(male)YH( des LVs est de 16TB. )EP()0 P()-1 LI( Pour les CPUs 64 bits avec les noyaux 2.6, la taille maxi)HY(male)YH( des LVs est de 6EB. \201Oui, c'est un nombre tr\350s gros.\202 )EP()LU()BR( )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 0.01 0 0 0][0 0 0 0 0 0 0]] [[0 0 0 1 0 0 [[{()2 Sl()WB()WB 50 Sn()WB 51 Sn()0 P()BD(2.1.)ES()EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Quand y aura-t-il des infos ici\240? )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [[{()2 Sl()WB()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB()0 P( Quand les gens commen)HY(ce)HY(ront)YH( \340 envoyer des entr\351es de FAQ ;\202 )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Le correc)HY(tif)YH( du noyau pour LVM\2401 doit \352tre g\351n\351r\351 avec les sources de LVM\2401. Plus d'infor)HY(ma)HY(tions)YH( sur ceci peuvent \352tre trou)HY(v\351es)YH( dans la )0 64 1 A(Section\2402, \253\240Construire le module du noyau pour LVM\2401\240\273)64 0 TN TL()Ec /AF f D(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Cette portion de script est pour la RedHat 7.3. Les autres versions peuvent appa)HY(ra\356tre)YH( l\351g\350)HY(re)HY(ment)YH( diff\351)HY(rentes)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(D\351con)HY(seill\351)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( L'utili)HY(sa)HY(tion)YH( d'un disque entier en tant que PV \201par rapport \340 une parti)HY(tion)YH( utili)HY(sant)YH( tout le disque\202 est d\351con)HY(seill\351e)YH( en raison des probl\350mes de gestion que cela peut cr\351er. Tout autre syst\350me d'exploi)HY(ta)HY(tion)YH( ne d\351tec)HY(tera)YH( pas les m\351ta-donn\351es LVM, affi)HY(chera)YH( un disque vide et \351cra)HY(sera)YH( proba)HY(ble)HY(ment)YH( son contenu. Sinon LVM fonc)HY(tionne)YH( parfai)HY(te)HY(ment)YH( avec des PVs occu)HY(pant)YH( tout le disque. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(DANGE)HY(REUX)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Les commandes suivantes vont d\351truire la table des parti)HY(tions)YH( sur le disque o\371 elles sont lanc\351es. Soyez vrai)HY(ment)YH( s\373r que c'est le bon disque. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Incon)HY(v\351)HY(nient)YH( de LVM\2402)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Il n'y a pas actuel)HY(le)HY(ment)YH( d'\351qui)HY(valent)YH( \340 e2fsadm pour LVM\2402 et la version de e2fsadm de LVM\2401 ne fonc)HY(tionne)YH( pas avec LVM\2402. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Remarque)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Il est toujours n\351ces)HY(saire)YH( de d\351mon)HY(ter)YH( le syst\350me de fichiers avant d'utili)HY(ser)YH( e2fsadm. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Bogue connu du noyau)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Certaines versions du noyau ont des probl\350mes avec cette syntaxe \2012.6.0 en fait partie\202. Dans ce cas, vous devez expli)HY(ci)HY(te)HY(ment)YH( sp\351ci)HY(fier)YH( la nouvelle taille du syst\350me de fichiers en blocs. Atten)HY(tion)YH( aux erreurs car vous )EM(devez)ES( conna\356tre la taille de blocs de votre syst\350me de fichiers et vous en servir pour calcu)HY(ler)YH( la nouvelle taille. )EP()0 P( Exemple\240: Si vous devez redi)HY(men)HY(sion)HY(ner)YH( un syst\350me de fichiers JFS \340 4\240Go, \351crivez\240: )EP()9 9 PR(# mount -o remount,resize=1048576 /home)RP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Incon)HY(v\351)HY(nient)YH( de LVM\2402)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Actuel)HY(le)HY(ment)YH(, il n'y a pas d'\351qui)HY(valent)YH( \340 e2fsadm pour LVM\2402 et la version de e2fsadm de LVM\2401 ne fonc)HY(tionne)YH( pas avec LVM\2402. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Atten)HY(tion)YH(\240!)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( )BD( Les commandes suivantes vont d\351truire toutes les donn\351es pr\351sentes sur /dev/sda, /dev/sdb et /dev/sdc. )ES( )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Remarque)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( )BD( Il n'est pas actuel)HY(le)HY(ment)YH( possible d'ajouter un disque dans un volume logique r\351parti avec LVM\2401. Utili)HY(sez)YH( LVM\2402 avec le format de m\351ta-donn\351es lvm 2 si vous voulez effec)HY(tuer)YH( cela. )ES( )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Atten)HY(tion)YH(\240!)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( )BD( Les commandes suivantes vont d\351truire toutes les donn\351es pr\351sentes sur /dev/sda, /dev/sdb et /dev/sdc. )ES( )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Remarque)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Si vous cr\351ez le volume logique avec l'option \253\240-i2\240\273, vous n'utili)HY(se)HY(rez)YH( que deux disques de votre groupe de volumes. Ceci est utile si vous voulez cr\351er deux volumes logiques \340 partir du m\352me volume physique, mais ce point n'est pas abord\351 dans cette recette. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Avec LVM\2401, ce type de volume \351tait en lecture seule, alors qu'il est en lecture/\351cri)HY(ture)YH( par d\351faut avec LVM\2402. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Les instan)HY(ta)HY(n\351s)YH( pleins sont auto)HY(ma)HY(tique)HY(ment)YH( d\351sac)HY(ti)HY(v\351s)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Lorsque le volume logique d'un instan)HY(tan\351)YH( est plein, il est d\351sac)HY(tiv\351)YH( \201\351tat inuti)HY(li)HY(sable)YH(\202. Il est donc primor)HY(dial)YH( de lui allouer un espace suffi)HY(sant)YH(. Il n'y a pas de recette magique pour d\351ter)HY(mi)HY(ner)YH( l'espace requis, qui d\351pend unique)HY(ment)YH( de l'utili)HY(sa)HY(tion)YH( de l'instan)HY(tan\351)YH(. Cepen)HY(dant)YH(, un instan)HY(tan\351)YH( de taille iden)HY(tique)YH( \340 sa source ne sera jamais satur\351. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 2 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Sauve)HY(gar)HY(der)YH( votre syst\350me)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Vous devriez toujours effec)HY(tuer)YH( une sauve)HY(garde)YH( de votre syst\350me avant de faire une op\351ra)HY(tion)YH( avec pvre)HY(move)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB( )BD(pvmove)ES( est lent )} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Atten)HY(tion)YH(, pvmove est tr\350s lent car il doit copier le contenu d'un disque vers un ou plusieurs autres, bloc par bloc. Si vous souhai)HY(tez)YH( plus d'infor)HY(ma)HY(tions)YH( sur l'avan)HY(ce)HY(ment)YH( de l'op\351ra)HY(tion)YH(, utili)HY(sez)YH( l'option )SM(-v)ES( avec pvmove. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( vgex)HY(port)YH( et vgim)HY(port)YH( ne sont pas n\351ces)HY(saires)YH( pour d\351pla)HY(cer)YH( des disques. Ce sont des outils d'admi)HY(nis)HY(tra)HY(tion)YH( permet)HY(tant)YH( d'emp\352)HY(cher)YH( les acc\350s aux volumes le temps de les d\351pla)HY(cer)YH(. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 2 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Sauve)HY(gar)HY(dez)YH( votre syst\350me)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Il est forte)HY(ment)YH( recom)HY(mand\351)YH( de faire une sauve)HY(garde)YH( compl\350te de votre syst\350me avant d'essayer de conver)HY(tir)YH( votre racine en LVM\2401. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Compli)HY(ca)HY(tions)YH( des mises \340 jour)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Avoir son syst\350me de fichiers racine en LVM\2401 peut compliquer signi)HY(fi)HY(ca)HY(ti)HY(ve)HY(ment)YH( les proc\351)HY(dures)YH( de mise \340 jour \201suivant les distri)HY(bu)HY(tions)YH(\202 donc la d\351ci)HY(sion)YH( ne doit pas \352tre prise \340 la l\351g\350re. Plus pr\351ci)HY(s\351)HY(ment)YH(, vous devez vous assurer que le module LVM\2401 \201s'il n'est pas compil\351 direc)HY(te)HY(ment)YH( dans le noyau\202 ainsi que les utili)HY(taires)YH( vgscan et vgchange sont dispo)HY(nibles)YH( avant, pendant et apr\350s la mise \340 jour. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Compli)HY(ca)HY(tions)YH( des r\351cu)HY(p\351)HY(ra)HY(tions)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Avoir son syst\350me racine sous LVM\2401 peut compliquer signi)HY(fi)HY(ca)HY(ti)HY(ve)HY(ment)YH( la r\351cu)HY(p\351)HY(ra)HY(tion)YH( de syst\350mes de fichiers endom)HY(ma)HY(g\351s)YH(. Si vous perdez votre initrd, il sera tr\350s diffi)HY(cile)YH( de d\351mar)HY(rer)YH( le syst\350me. Il faudra alors un disque de r\351cu)HY(p\351)HY(ra)HY(tion)YH( conte)HY(nant)YH( le noyau, le module et les utili)HY(taires)YH( LVM\2401 et tous les outils n\351ces)HY(saires)YH( pour r\351cu)HY(p\351)HY(rer)YH( un syst\350me de fichiers endom)HY(mag\351)YH(. Soyez s\373r de faire des sauve)HY(gardes)YH( r\351gu)HY(li\350res)YH( et de garder une m\351thode de d\351mar)HY(rage)YH( alter)HY(na)HY(tive)YH( qui permet la r\351cu)HY(p\351)HY(ra)HY(tion)YH( de LVM. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(A utili)HY(ser)YH( unique)HY(ment)YH( avec des VG qui ne marchent pas)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Ne pas ex\351cu)HY(ter)YH( sur un LVM qui fonc)HY(tionne)YH( correc)HY(te)HY(ment)YH(. Vous devez donner le bon volume physique \340 )BD(pvcreate)ES( ou vous risquez de perdre vos donn\351es. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Note)} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P()BD(pvcreate)ES( permet juste d'\351craser les m\351ta-donn\351es LVM sur le disque et ne touche pas aux donn\351es en elles-m\352me \201les volumes logiques\202. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Atten)HY(tion)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Ne faites pas ceci si vous n'\352tes pas s\373r de ce que vous faites. Vous y perdrez proba)HY(ble)HY(ment)YH( toutes vos donn\351es. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 1 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(LVM n'est pas conscient des clus)HY(ters)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Faites tr\350s atten)HY(tion)YH( en faisant cela car LVM n'est pas conscient des clus)HY(ters)YH( et il est tr\350s facile de perdre toutes ses donn\351es. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] [[0 0 0 0 0 -1 0 0 0 1 1 0 0 1 1 {()} -1] [[0 0 0 25 0 0 0][0 0 0 0 0 0 0]] [[0 0 1 0 0 0 [[{()2 Sl()WB()0 0 IM()} 0 0 0 0 1 2 1 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] [{()2 Sl()WB(Les VG doivent \352tre actifs sur le n\275ud d'admi)HY(nis)HY(tra)HY(tion)YH()} 0 0 1 0 1 1 0 (.) 2 0 8 8 2 6 0 0 0 0 Db 0 ] ]] [0 0 0 0 0 0 [0 [{()2 Sl()WB()0 P( Vous n'avez pas besoin et ne devez pas d\351faire les VG du n\275ud d'admi)HY(nis)HY(tra)HY(tion)YH(. Par cons\351)HY(quent)YH(, cela doit \352tre le n\275ud avec les pr\351-requis d'uptime les plus grands. )EP()} 0 0 0 0 1 1 0 (.) 1 0 8 8 2 6 0 0 0 0 Db 0 ] ]] ]] ] D 0 1 34{TS}for RC ZF /Ba f D /BO 0 D Bs /UR (LVM-HOWTO.html.iso-8859-1) D /Ti (Guide pratique de LVM) D /Au () D /Df f D /ME [()] D /Cb Db D /Ct [16#00 16#00 16#00] D /Cl [16#00 16#00 16#00] D /CL -1 D Ct Sc Pt /Ba f D /BO 0 D Bs /UR (LVM-HOWTO.html.iso-8859-1) D /Ti (Guide pratique de LVM) D /Au () D /Df f D /ME [()] D NP RC ZF ()1 Sl()WB 0 Sn()2 Sl()BR()BR()BR()BR()0 1 0 H()WB 193 Sn()WB 1 Sn( Guide pratique de LVM )EH()BR()BR()0 2 1 H()WB 194 Sn( Version fran\347aise du )EM(LVM HOWTO)ES( )EH()BR()BR()BR()0 3 2 H(A.\240J.)WB 195 Sn( Lewis)EH()BR()BR()0 P( )SM(<)0 2 A(alewis CHEZ rackable POINT com)EA(>)ES( )EP()BR()BR()BR()BR()BR()BR()0 3 3 H(Emma)WB 196 Sn()HY(nuel)YH( Araman)EH(Adap)HY(ta)HY(tion)YH( fran\347aise\240)SM(<)0 2 A(Emma)HY(nuel)YH( CHEZ araman POINT org)EA(>)ES()BR()BR()BR()BR()0 3 4 H(Camille)WB 197 Sn( Huot)EH(Relec)HY(ture)YH( de la version fran\347aise\240)SM(<)0 2 A(cam CHEZ cameuh POINT net)EA(>)ES()BR()BR()BR()BR()0 3 5 H(Alain)WB 198 Sn( Portal)EH(Relec)HY(ture)YH( de la version fran\347aise\240)SM(<)0 2 A(aportal CHEZ univ TIRET montp2 POINT fr)EA(>)ES()BR()BR()BR()BR()0 3 6 H(Jean-Philippe)WB 199 Sn( Gu\351rard)EH(Pr\351pa)HY(ra)HY(tion)YH( de la publi)HY(ca)HY(tion)YH( de la v.f.\240)SM(<)0 2 A(fevrier CHEZ tigre)HY(raye)YH( POINT org)EA(>)ES()BR()BR()BR()0 P(Version\240: 0.19.fr.1.0)EP()BR()BR()0 P(Copy)HY(right)YH( \251 2002-2003-NaN Sistina Soft)HY(ware)YH(, Inc)EP()BR()BR()0 P(Copy)HY(right)YH( \251 2004-2005-NaN Red Hat, Inc)EP()BR()BR()0 P(Copy)HY(right)YH( \251 2005-2006-NaN Terras)HY(cale)YH( Tech)HY(no)HY(lo)HY(gies)YH(, Inc)EP()BR()BR()0 P(Copy)HY(right)YH( \251 2006 Rackable Systems, Inc)EP()BR()BR()0 P(Copy)HY(right)YH( \251 2004-2007-NaN Emma)HY(nuel)YH( Araman, Camille Huot, Alain Portal, Jean-Philippe Gu\351rard)EP()BR()BR()BR()WB 2 Sn()0 P( Vous est auto)HY(ris\351)YH( \340 copier, distri)HY(buer)YH( et modi)HY(fier)YH( ce docu)HY(ment)YH( selon les termes de la Licence de docu)HY(men)HY(ta)HY(tion)YH( libre GNU \201GFDL\202, version 1.2 ou ult\351)HY(rieure)YH(, telle que publi\351e par la Free Soft)HY(ware)YH( Foun)HY(da)HY(tion)YH( ; sans section inal)HY(t\351)HY(rable)YH(, ni texte de premi\350re de couver)HY(ture)YH(, ni texte de quatri\350me de couver)HY(ture)YH(. La section \253\240GNU Free Docu)HY(men)HY(ta)HY(tion)YH( License\240\273 contient une copie de cette licence. )EP()0 P()EM( Permis)HY(sion)YH( is granted to copy, distri)HY(bute)YH( and/or modify this docu)HY(ment)YH( under the terms of the GNU Free Docu)HY(men)HY(ta)HY(tion)YH( License, Version 1.2 publi)HY(shed)YH( by the Free Soft)HY(ware)YH( Foun)HY(da)HY(tion)YH(; with no Inva)HY(riant)YH( Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is inclu)HY(ded)YH( in the section entit)HY(led)YH( "GNU Free Docu)HY(men)HY(ta)HY(tion)YH( License". )ES()EP()0 P( Ce docu)HY(ment)YH( est distri)HY(bu\351)YH( dans l'espoir qu'il sera utile mais SANS AUCUNE GARAN)HY(TIE)YH(, expli)HY(cite)YH( ou impli)HY(cite)YH(. M\352me si tous les efforts ont \351t\351 faits pour assurer l'exac)HY(ti)HY(tude)YH( des infor)HY(ma)HY(tions)YH( four)HY(nies)YH( ici, les auteurs, \351diteurs, respon)HY(sables)YH( des mises \340 jours et contri)HY(bu)HY(teurs)YH( n'assument AUCUNE RESPON)HY(SA)HY(BI)HY(LIT\311)YH( pour les erreurs ou les dommages, directs ou indi)HY(rects)YH(, qui pour)HY(raient)YH( r\351sul)HY(ter)YH( de l'utili)HY(sa)HY(tion)YH( des infor)HY(ma)HY(tions)YH( ci-incluses. )EP()0 P()EM( This docu)HY(ment)YH( is distri)HY(bu)HY(ted)YH( in the hope that it will be useful, but WITHOUT ANY WARRANTY, either expres)HY(sed)YH( or implied. While every effort has been taken to ensure the accu)HY(racy)YH( of the infor)HY(ma)HY(tion)YH( docu)HY(men)HY(ted)YH( herein, the author\201s\202/editor\201s\202/main)HY(tai)HY(ner)YH(\201s\202/contri)HY(bu)HY(tor)YH(\201s\202 assumes NO RESPON)HY(SI)HY(BI)HY(LITY)YH( for any errors, or for any damages, direct or consequen)HY(tial)YH(, as a result of the use of the infor)HY(ma)HY(tion)YH( docu)HY(men)HY(ted)YH( herein. )ES()EP()BR()BR()BR()0 P(28 janvier 2007)EP()BR()BR()BR()0 PT()BR()BR()BR()BR()0 P()BD(R\351sum\351)ES()EP()0 P( Ce docu)HY(ment)YH( explique comment compi)HY(ler)YH(, instal)HY(ler)YH( et confi)HY(gu)HY(rer)YH( le gestion)HY(naire)YH( de volumes logiques \201LVM\202 de Linux. Il inclut aussi une descrip)HY(tion)YH( synth\351)HY(tique)YH( de LVM. Cette version de guide pratique couvre LVM\2402 avec le mappeur de p\351ri)HY(ph\351)HY(riques)YH( et LVM 1.0.8. )EP()BR()BR()BR()2 0.6 1 HR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 3 1 A(Intro)HY(duc)HY(tion)YH()3 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 4 1 A(1. Derni\350re version de ce docu)HY(ment)YH()4 0 TN TL()Ec /AF f D()0 DT()0 5 1 A(2. Limi)HY(ta)HY(tions)YH( de respon)HY(sa)HY(bi)HY(lit\351)YH()5 0 TN TL()Ec /AF f D()0 DT()0 6 1 A(3. Auteurs)6 0 TN TL()Ec /AF f D()LD()0 DT()0 7 1 A(1. Qu'est-ce que LVM\240?)7 0 TN TL()Ec /AF f D()0 DT()0 8 1 A(2. Qu'est-ce que la gestion par volumes logiques\240?)8 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 9 1 A(1. Pourquoi en voudrais-je\240?)9 0 TN TL()Ec /AF f D()0 DT()0 10 1 A(2. B\351n\351)HY(fices)YH( de la gestion par volumes logiques sur un petit syst\350me)10 0 TN TL()Ec /AF f D()0 DT()0 11 1 A(3. Avan)HY(tages)YH( de la gestion par volumes logiques sur un gros syst\350me)11 0 TN TL()Ec /AF f D()LD()0 DT()0 12 1 A(3. Anato)HY(mie)YH( de LVM)12 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 13 1 A(1. Groupe de volumes \201Volume Group, VG\202)13 0 TN TL()Ec /AF f D()0 DT()0 14 1 A(2. Volume physique \201Physi)HY(cal)YH( Volume, PV\202)14 0 TN TL()Ec /AF f D()0 DT()0 15 1 A(3. Volume logique \201Logical Volume, LV\202)15 0 TN TL()Ec /AF f D()0 DT()0 16 1 A(4. Extent physique \201Physi)HY(cal)YH( Extent, PE\202)16 0 TN TL()Ec /AF f D()0 DT()0 17 1 A(5. Extent logique \201Logical Extent, LE\202)17 0 TN TL()Ec /AF f D()0 DT()0 18 1 A(6. Mettre tout ensemble)18 0 TN TL()Ec /AF f D()0 DT()0 19 1 A(7. Types de corres)HY(pon)HY(dances)YH( \201lin\351aire/r\351par)HY(tie)YH(\202)19 0 TN TL()Ec /AF f D()0 DT()0 20 1 A(8. Les instan)HY(ta)HY(n\351s)YH( \201snap)HY(shots)YH(\202)20 0 TN TL()Ec /AF f D()LD()0 DT()0 21 1 A(4. Ques)HY(tions)YH( fr\351quem)HY(ment)YH( pos\351es)21 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 22 1 A(1. FAQ LVM\2402 )22 0 TN TL()Ec /AF f D()0 DT()0 49 1 A(2. FAQ LVM\2401)49 0 TN TL()Ec /AF f D()LD()0 DT()0 52 1 A(5. Obtenir LVM)52 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 53 1 A(1. T\351l\351)HY(char)HY(ger)YH( le code source)53 0 TN TL()Ec /AF f D()0 DT()0 54 1 A(2. T\351l\351)HY(char)HY(ger)YH( le code source de d\351ve)HY(lop)HY(pe)HY(ment)YH( par CVS)54 0 TN TL()Ec /AF f D()0 DT()0 55 1 A(3. Avant de commen)HY(cer)YH()55 0 TN TL()Ec /AF f D()0 DT()0 56 1 A(4. Confi)HY(gu)HY(ra)HY(tion)YH( initiale)56 0 TN TL()Ec /AF f D()0 DT()0 57 1 A(5. R\351cu)HY(p\351)HY(ra)HY(tion)YH( du code source)57 0 TN TL()Ec /AF f D()0 DT()0 58 1 A(6. Mise \340 jour du code)58 0 TN TL()Ec /AF f D()0 DT()0 59 1 A(7. Commen)HY(cer)YH( un projet)59 0 TN TL()Ec /AF f D()0 DT()0 60 1 A(8. Bidouiller le code)60 0 TN TL()Ec /AF f D()0 DT()0 61 1 A(9. Conflits)61 0 TN TL()Ec /AF f D()LD()0 DT()0 62 1 A(6. Construire les modules du noyau)62 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 63 1 A(1. Construire le module noyau device-mapper)63 0 TN TL()Ec /AF f D()0 DT()0 64 1 A(2. Construire le module du noyau pour LVM\2401)64 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 65 1 A(2.1. Fabriquer un correc)HY(tif)YH( pour votre noyau)65 0 TN TL()Ec /AF f D()0 DT()0 66 1 A(2.2. Construire le module LVM pour Linux 2.2.17+)66 0 TN TL()Ec /AF f D()0 DT()0 67 1 A(2.3. Compi)HY(ler)YH( les modules LVM pour Linux 2.4)67 0 TN TL()Ec /AF f D()0 DT()0 68 1 A(2.4. V\351ri)HY(fier)YH( le syst\350me de fichiers proc)68 0 TN TL()Ec /AF f D()LD()LD()0 DT()0 69 1 A(7. Scripts de d\351mar)HY(rage)YH( pour LVM\2401)69 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 70 1 A(1. Caldera)70 0 TN TL()Ec /AF f D()0 DT()0 71 1 A(2. Debian)71 0 TN TL()Ec /AF f D()0 DT()0 72 1 A(3. Mandrake)72 0 TN TL()Ec /AF f D()0 DT()0 73 1 A(4. Redhat)73 0 TN TL()Ec /AF f D()0 DT()0 74 1 A(5. Slack)HY(ware)YH()74 0 TN TL()Ec /AF f D()0 DT()0 75 1 A(6. SuSE)75 0 TN TL()Ec /AF f D()LD()0 DT()0 76 1 A(8. Scripts de d\351mar)HY(rage)YH( pour LVM\2402)76 0 TN TL()Ec /AF f D()0 DT()0 77 1 A(9. Compi)HY(ler)YH( LVM \340 partir des sources)77 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 78 1 A(1. Compi)HY(ler)YH( la biblio)HY(th\350que)YH( et les utili)HY(taires)YH( LVM )78 0 TN TL()Ec /AF f D()0 DT()0 79 1 A(2. Instal)HY(ler)YH( la biblio)HY(th\350que)YH( LVM et les utili)HY(taires)YH()79 0 TN TL()Ec /AF f D()0 DT()0 80 1 A(3. Suppri)HY(mer)YH( la biblio)HY(th\350que)YH( LVM et les utili)HY(taires)YH()80 0 TN TL()Ec /AF f D()LD()0 DT()0 81 1 A(10. Migrer d'une version pr\351c\351)HY(dente)YH( de LVM vers LVM\2401.0.8)81 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 82 1 A(1. Migrer vers LVM\2401.0.8 avec une parti)HY(tion)YH( racine non LVM)82 0 TN TL()Ec /AF f D()0 DT()0 83 1 A(2. Migrer vers LVM\2401.0.8 avec une parti)HY(tion)YH( racine en LVM et initrd)83 0 TN TL()Ec /AF f D()LD()0 DT()0 84 1 A(11. T\342ches courantes)84 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 85 1 A(1. Initia)HY(li)HY(ser)YH( des disques ou des parti)HY(tions)YH( de disques)85 0 TN TL()Ec /AF f D()0 DT()0 86 1 A(2. Cr\351er un groupe de volumes)86 0 TN TL()Ec /AF f D()0 DT()0 87 1 A(3. Activer un groupe de volumes)87 0 TN TL()Ec /AF f D()0 DT()0 88 1 A(4. Enlever un groupe de volumes)88 0 TN TL()Ec /AF f D()0 DT()0 89 1 A(5. Ajouter un volume physique \340 un groupe de volumes)89 0 TN TL()Ec /AF f D()0 DT()0 90 1 A(6. Suppri)HY(mer)YH( un volume physique d'un groupe de volumes)90 0 TN TL()Ec /AF f D()0 DT()0 91 1 A(7. Cr\351er un volume logique)91 0 TN TL()Ec /AF f D()0 DT()0 92 1 A(8. Suppri)HY(mer)YH( un volume logique)92 0 TN TL()Ec /AF f D()0 DT()0 93 1 A(9. \311tendre un volume logique)93 0 TN TL()Ec /AF f D()0 DT()0 94 1 A(10. R\351duire un volume logique)94 0 TN TL()Ec /AF f D()0 DT()0 95 1 A(11. Migrer des donn\351es hors d'un volume physique)95 0 TN TL()Ec /AF f D()LD()0 DT()0 96 1 A(12. Parti)HY(tion)HY(ne)HY(ment)YH( de disques)96 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 97 1 A(1. Plusieurs parti)HY(tions)YH( sur le m\352me disque)97 0 TN TL()Ec /AF f D()0 DT()0 98 1 A(2. \311tiquettes de disque Sun \201Sun disk labels\202)98 0 TN TL()Ec /AF f D()LD()0 DT()0 99 1 A(13. Recettes)99 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 100 1 A(1. Mettre en place LVM avec trois disques SCSI)100 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 101 1 A(1.1. Pr\351pa)HY(ra)HY(tion)YH( des disques)101 0 TN TL()Ec /AF f D()0 DT()0 102 1 A(1.2. Confi)HY(gu)HY(ra)HY(tion)YH( du groupe de volumes)102 0 TN TL()Ec /AF f D()0 DT()0 103 1 A(1.3. Cr\351a)HY(tion)YH( du volume logique)103 0 TN TL()Ec /AF f D()0 DT()0 104 1 A(1.4. Cr\351a)HY(tion)YH( du syst\350me de fichiers)104 0 TN TL()Ec /AF f D()0 DT()0 105 1 A(1.5. Test du syst\350me de fichiers)105 0 TN TL()Ec /AF f D()LD()0 DT()0 106 1 A(2. Mise en place de LVM sur trois disques SCSI avec r\351par)HY(ti)HY(tion)YH( \201stri)HY(ping)YH(\202)106 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 107 1 A(2.1. Pr\351pa)HY(ra)HY(tion)YH( des parti)HY(tions)YH( de disque)107 0 TN TL()Ec /AF f D()0 DT()0 108 1 A(2.2. Confi)HY(gu)HY(ra)HY(tion)YH( du groupe de volumes)108 0 TN TL()Ec /AF f D()0 DT()0 109 1 A(2.3. Cr\351a)HY(tion)YH( du volume logique)109 0 TN TL()Ec /AF f D()0 DT()0 110 1 A(2.4. Cr\351a)HY(tion)YH( du syst\350me de fichiers)110 0 TN TL()Ec /AF f D()0 DT()0 111 1 A(2.5. Test du syst\350me de fichiers)111 0 TN TL()Ec /AF f D()LD()0 DT()0 112 1 A(3. Ajouter un nouveau disque dans un syst\350me avec plusieurs disques SCSI)112 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 113 1 A(3.1. Situa)HY(tion)YH( actuelle)113 0 TN TL()Ec /AF f D()0 DT()0 114 1 A(3.2. Pr\351pa)HY(ra)HY(tion)YH( du parti)HY(tion)HY(ne)HY(ment)YH( du disque)114 0 TN TL()Ec /AF f D()0 DT()0 115 1 A(3.3. Ajout des nouvelles parti)HY(tions)YH( au groupe de volumes)115 0 TN TL()Ec /AF f D()0 DT()0 116 1 A(3.4. Exten)HY(sion)YH( des syst\350mes de fichiers)116 0 TN TL()Ec /AF f D()0 DT()0 117 1 A(3.5. Remon)HY(tage)YH( des volumes \351tendus)117 0 TN TL()Ec /AF f D()LD()0 DT()0 118 1 A(4. Faire une sauve)HY(garde)YH( avec un instan)HY(tan\351)YH( \201snap)HY(shot)YH(\202)118 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 119 1 A(4.1. Cr\351er le volume d'instan)HY(tan\351)YH()119 0 TN TL()Ec /AF f D()0 DT()0 120 1 A(4.2. Monter le volume d'instan)HY(tan\351)YH()120 0 TN TL()Ec /AF f D()0 DT()0 121 1 A(4.3. Faire la sauve)HY(garde)YH()121 0 TN TL()Ec /AF f D()0 DT()0 122 1 A(4.4. Suppri)HY(mer)YH( l'instan)HY(tan\351)YH()122 0 TN TL()Ec /AF f D()LD()0 DT()0 123 1 A(5. Enlever un disque)123 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 124 1 A(5.1. Distri)HY(buer)YH( les anciens extents vers des disques exis)HY(tants)YH( du groupe de volumes)124 0 TN TL()Ec /AF f D()0 DT()0 126 1 A(5.2. Distri)HY(buer)YH( les anciens extents sur un nouveau disque de rempla)HY(ce)HY(ment)YH()126 0 TN TL()Ec /AF f D()LD()0 DT()0 131 1 A(6. D\351pla)HY(cer)YH( un groupe de volumes vers un autre syst\350me)131 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 132 1 A(6.1. D\351mon)HY(ter)YH( le syst\350me de fichiers)132 0 TN TL()Ec /AF f D()0 DT()0 133 1 A(6.2. Marquer le groupe de volumes comme inactif)133 0 TN TL()Ec /AF f D()0 DT()0 134 1 A(6.3. Expor)HY(ter)YH( le groupe de volumes)134 0 TN TL()Ec /AF f D()0 DT()0 135 1 A(6.4. Impor)HY(ter)YH( le groupe de volumes)135 0 TN TL()Ec /AF f D()0 DT()0 136 1 A(6.5. Activer le groupe de volumes)136 0 TN TL()Ec /AF f D()0 DT()0 137 1 A(6.6. Monter le syst\350me de fichiers)137 0 TN TL()Ec /AF f D()LD()0 DT()0 138 1 A(7. Diviser un groupe de volumes)138 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 139 1 A(7.1. D\351ter)HY(mi)HY(ner)YH( l'espace libre)139 0 TN TL()Ec /AF f D()0 DT()0 140 1 A(7.2. D\351pla)HY(cer)YH( les donn\351es des disques \340 r\351uti)HY(li)HY(ser)YH()140 0 TN TL()Ec /AF f D()0 DT()0 141 1 A(7.3. Cr\351er un nouveau groupe de volumes)141 0 TN TL()Ec /AF f D()0 DT()0 142 1 A(7.4. Enlever le volume restant)142 0 TN TL()Ec /AF f D()0 DT()0 143 1 A(7.5. Cr\351er le nouveau volume logique)143 0 TN TL()Ec /AF f D()0 DT()0 144 1 A(7.6. Cr\351ez un syst\350me de fichiers sur le volume)144 0 TN TL()Ec /AF f D()0 DT()0 145 1 A(7.7. Montez le nouveau volume)145 0 TN TL()Ec /AF f D()LD()0 DT()0 146 1 A(8. Conver)HY(tir)YH( le syst\350me de fichiers racine en LVM\2401)146 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 147 1 A(8.1. D\351mar)HY(rer)YH( en mode mono-utili)HY(sa)HY(teur)YH()147 0 TN TL()Ec /AF f D()0 DT()0 148 1 A(8.2. Utili)HY(ser)YH( Parted)148 0 TN TL()Ec /AF f D()0 DT()0 149 1 A(8.3. Red\351)HY(mar)HY(rer)YH()149 0 TN TL()Ec /AF f D()0 DT()0 150 1 A(8.4. V\351ri)HY(fier)YH( les options de confi)HY(gu)HY(ra)HY(tion)YH( du noyau)150 0 TN TL()Ec /AF f D()0 DT()0 151 1 A(8.5. Ajuster le type de parti)HY(tion)YH()151 0 TN TL()Ec /AF f D()0 DT()0 152 1 A(8.6. Confi)HY(gu)HY(rer)YH( LVM\2401 pour la nouvelle confi)HY(gu)HY(ra)HY(tion)YH()152 0 TN TL()Ec /AF f D()0 DT()0 153 1 A(8.7. Cr\351er le syst\350me de fichiers)153 0 TN TL()Ec /AF f D()0 DT()0 154 1 A(8.8. Mise \340 jour de /etc/fstab)154 0 TN TL()Ec /AF f D()0 DT()0 155 1 A(8.9. Cr\351ez une image disque RAM d'initia)HY(li)HY(sa)HY(tion)YH( pour LVM\2401)155 0 TN TL()Ec /AF f D()0 DT()0 156 1 A(8.10. Mise \340 jour de /etc/lilo.conf)156 0 TN TL()Ec /AF f D()0 DT()0 157 1 A(8.11. Lancez lilo pour \351crire le nouveau secteur de boot)157 0 TN TL()Ec /AF f D()0 DT()0 158 1 A(8.12. Red\351)HY(mar)HY(rer)YH( avec LVM)158 0 TN TL()Ec /AF f D()0 DT()0 159 1 A(8.13. Ajoutez le reste du disque dans LVM)159 0 TN TL()Ec /AF f D()LD()0 DT()0 160 1 A(9. Restau)HY(rer)YH( les m\351ta-donn\351es d'un volume physique)160 0 TN TL()Ec /AF f D()LD()0 DT()0 161 1 A(A. Op\351ra)HY(tions)YH( dange)HY(reuses)YH()161 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 162 1 A(1. Restau)HY(rer)YH( les UUID de VG avec uuid_fixer)162 0 TN TL()Ec /AF f D()0 DT()0 163 1 A(2. Parta)HY(ger)YH( des volumes LVM)163 0 TN TL()Ec /AF f D()LD()0 DT()0 164 1 A(B. Signa)HY(ler)YH( des erreurs ou des bogues)164 0 TN TL()Ec /AF f D()0 DT()0 165 1 A(C. Contacts et liens)165 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 166 1 A(1. Listes de diffu)HY(sion)YH()166 0 TN TL()Ec /AF f D()0 DT()0 167 1 A(2. Liens)167 0 TN TL()Ec /AF f D()LD()0 DT()0 168 1 A(D. GNU Free Docu)HY(men)HY(ta)HY(tion)YH( License)168 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 170 1 A(1. PREAMBLE)170 0 TN TL()Ec /AF f D()0 DT()0 171 1 A(2. APPLI)HY(CA)HY(BI)HY(LITY)YH( AND DEFI)HY(NI)HY(TIONS)YH()171 0 TN TL()Ec /AF f D()0 DT()0 180 1 A(3. VERBA)HY(TIM)YH( COPYING)180 0 TN TL()Ec /AF f D()0 DT()0 181 1 A(4. COPYING IN QUAN)HY(TITY)YH()181 0 TN TL()Ec /AF f D()0 DT()0 182 1 A(5. MODI)HY(FI)HY(CA)HY(TIONS)YH()182 0 TN TL()Ec /AF f D()0 DT()0 184 1 A(6. COMBI)HY(NING)YH( DOCU)HY(MENTS)YH()184 0 TN TL()Ec /AF f D()0 DT()0 185 1 A(7. COLLEC)HY(TIONS)YH( OF DOCU)HY(MENTS)YH()185 0 TN TL()Ec /AF f D()0 DT()0 186 1 A(8. AGGRE)HY(GA)HY(TION)YH( WITH INDE)HY(PENDENT)YH( WORKS)186 0 TN TL()Ec /AF f D()0 DT()0 187 1 A(9. TRANS)HY(LA)HY(TION)YH()187 0 TN TL()Ec /AF f D()0 DT()0 188 1 A(10. TERMI)HY(NA)HY(TION)YH()188 0 TN TL()Ec /AF f D()0 DT()0 189 1 A(11. FUTURE REVI)HY(SIONS)YH( OF THIS LICENSE)189 0 TN TL()Ec /AF f D()0 DT()0 190 1 A(12. ADDEN)HY(DUM)YH(: How to use this License for your docu)HY(ments)YH( )190 0 TN TL()Ec /AF f D()LD()LD()BR()2 Sl()BR()BR()BR()BR()0 2 7 H(Intro)WB 200 Sn()HY(duc)HY(tion)YH()WB 3 Sn()EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 4 1 A(1. Derni\350re version de ce docu)HY(ment)YH()4 0 TN TL()Ec /AF f D()0 DT()0 5 1 A(2. Limi)HY(ta)HY(tions)YH( de respon)HY(sa)HY(bi)HY(lit\351)YH()5 0 TN TL()Ec /AF f D()0 DT()0 6 1 A(3. Auteurs)6 0 TN TL()Ec /AF f D()LD()BR()0 P( Ce docu)HY(ment)YH( essaie de rassem)HY(bler)YH( tous les \351l\351ments n\351ces)HY(saires)YH( pour obtenir LVM et le faire fonc)HY(tion)HY(ner)YH(. Il traite l'ensemble du proces)HY(sus)YH( pour l'obtenir, le compi)HY(ler)YH(, l'instal)HY(ler)YH( et le mettre en \275uvre. Il fournit aussi des liens vers des confi)HY(gu)HY(ra)HY(tions)YH( test\351es de LVM. Cette version de guide pratique couvre LVM\2402 et LVM\2401.0.8. )EP()0 P( Toutes les versions pr\351c\351)HY(dentes)YH( de LVM sont consi)HY(d\351)HY(r\351es)YH( comme obso)HY(l\350tes)YH( et sont gard\351es unique)HY(ment)YH( pour des raisons histo)HY(riques)YH(. Ce docu)HY(ment)YH( n'a pas pour objet d'essayer d'expliquer et d\351crire le fonc)HY(tion)HY(ne)HY(ment)YH( de ces versions. )EP()2 Sl()BR()BR()BR()BR()0 2 8 H(1.\240Derni\350re)WB 201 Sn()WB 4 Sn( version de ce docu)HY(ment)YH()EH()BR()BR()BR()0 P( Vous trou)HY(ve)HY(rez)YH( la plus r\351cente version fran\347aise de ce docu)HY(ment)YH( \340 l'adresse\240: )R1 2 A(http://www.traduc.org/docs/howto/lecture/LVM-HOWTO.html)EA(. )EP()0 P( La derni\350re version origi)HY(nale)YH( de ce guide pratique est dispo)HY(nible)YH( sur le serveur CVS du Projet de docu)HY(men)HY(ta)HY(tion)YH( Linux avec les autres guides pratiques \201)EM(howto)ES(\202. Vous pouvez l'obtenir en faisant un )EM(checkout)ES( de \253\240LDP/howto/docbook/LVM-HOWTO.xml\240\273 sur le serveur CVS du LDP. Vous devriez toujours pouvoir obtenir une version lisible de ce guide pratique \340 l'adresse\240: )R2 2 A(http://www.tldp.org/HOWTO/LVM-HOWTO.html)EA(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 9 H(2.\240Limi)WB 202 Sn()HY(ta)HY(tions)YH()WB 5 Sn( de respon)HY(sa)HY(bi)HY(lit\351)YH()EH()BR()BR()BR()0 P()EM( This docu)HY(ment)YH( is distri)HY(bu)HY(ted)YH( in the hope that it will be useful, but WITHOUT ANY WARRANTY, either expres)HY(sed)YH( or implied. While every effort has been taken to ensure the accu)HY(racy)YH( of the infor)HY(ma)HY(tion)YH( docu)HY(men)HY(ted)YH( herein, the author\201s\202/editor\201s\202/main)HY(tai)HY(ner)YH(\201s\202/contri)HY(bu)HY(tor)YH(\201s\202 assumes NO RESPON)HY(SI)HY(BI)HY(LITY)YH( for any errors, or for any damages, direct or consequen)HY(tial)YH(, as a result of the use of the infor)HY(ma)HY(tion)YH( docu)HY(men)HY(ted)YH( herein. )ES()EP()0 P( Ce docu)HY(ment)YH( est distri)HY(bu\351)YH( dans l'espoir qu'il sera utile mais SANS AUCUNE GARAN)HY(TIE)YH(, expli)HY(cite)YH( ou impli)HY(cite)YH(. M\352me si tous les efforts ont \351t\351 faits pour assurer l'exac)HY(ti)HY(tude)YH( des infor)HY(ma)HY(tions)YH( docu)HY(men)HY(t\351es)YH( ici, les auteurs, \351diteurs, main)HY(te)HY(neurs)YH(, contri)HY(bu)HY(teurs)YH(, traduc)HY(teurs)YH( n'assument AUCUNE RESPON)HY(SA)HY(BI)HY(LIT\311)YH( pour les erreurs ou les dommages, directs ou indi)HY(rects)YH(, qui pour)HY(raient)YH( r\351sul)HY(ter)YH( de l'utili)HY(sa)HY(tion)YH( des infor)HY(ma)HY(tions)YH( docu)HY(men)HY(t\351es)YH( ici. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 10 H(3.\240Auteurs)WB 203 Sn()WB 6 Sn()EH()BR()BR()BR()0 P( Liste de tous ceux qui ont \351crit dans ce docu)HY(ment)YH(. )EP()BR()UL()0 P()-1 LI( )0 2 A(AJ Lewis)EA( )EP()0 P()-1 LI( )0 2 A(Joe Thorn)HY(ber)YH()EA( )EP()0 P()-1 LI( )0 2 A(Patrick Caul)HY(field)YH()EA( )EP()0 P()-1 LI( )0 2 A(Alas)HY(dair)YH( Kergon)EA( )EP()0 P()-1 LI( )0 2 A(Jochen Radma)HY(cher)YH()EA( - Infor)HY(ma)HY(tions)YH( sur l'exten)HY(sion)YH( de JFS )EP()LU()BR()0 P( S'il vous pla\356t, veuillez pr\351ve)HY(nir)YH( le main)HY(te)HY(neur)YH( du guide pratique si vous pensez devoir \352tre dans la liste ci-dessus. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 11 H(Chapitre\2401.\240Qu'est-ce)WB 204 Sn()WB 7 Sn( que LVM\240?)EH()BR()BR()BR()0 P( LVM est un gestion)HY(naire)YH( de volumes logiques \201Logical Volume Manager\202 pour le syst\350me d'exploi)HY(ta)HY(tion)YH( Linux. Il existe d\351sor)HY(mais)YH( deux versions de LVM pour Linux\240: )BR()UL()0 P()-1 LI( LVM\2402 - La derni\350re et meilleure version de LVM pour Linux. )EP()0 P( LVM\2402 est presque enti\350)HY(re)HY(ment)YH( compa)HY(tible)YH( avec les volumes cr\351\351s avec LVM\2401, \340 l'exception des instan)HY(ta)HY(n\351s)YH( \201il faut suppri)HY(mer)YH( les volumes d'instan)HY(ta)HY(n\351s)YH( avant de passer \340 LVM\2402\202. )EP()0 P( LVM\2402 utilise le mappeur de p\351ri)HY(ph\351)HY(riques)YH( du noyau Linux. Le mappeur de p\351ri)HY(ph\351)HY(riques)YH( est inclus dans les noyaux 2.6. Des mises \340 jour sont dispo)HY(nibles)YH( pour les noyaux 2.4 r\351cents. )EP()0 P()-1 LI( LVM\2401 - La version pr\351sente dans les noyaux 2.4. )EP()0 P( LVM\2401 est un produit mature et consi)HY(d\351r\351)YH( comme stable depuis plusieurs ann\351es. Le pilote noyau pour LVM\2401 est inclus dans les noyaux 2.4, mais cela ne veut pas dire que votre noyau 2.4.x est \340 jour de la derni\350re version de LVM. Regar)HY(dez)YH( dans le fichier )R3 2 A(README)EA( pour obtenir les derni\350res infor)HY(ma)HY(tions)YH( sur les versions de noyaux poss\351)HY(dant)YH( le code le plus r\351cent. )EP()LU()BR( )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 12 H(Chapitre\2402.\240Qu'est-ce)WB 205 Sn()WB 8 Sn( que la gestion par volumes logiques\240?)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 9 1 A(1. Pourquoi en voudrais-je\240?)9 0 TN TL()Ec /AF f D()0 DT()0 10 1 A(2. B\351n\351)HY(fices)YH( de la gestion par volumes logiques sur un petit syst\350me)10 0 TN TL()Ec /AF f D()0 DT()0 11 1 A(3. Avan)HY(tages)YH( de la gestion par volumes logiques sur un gros syst\350me)11 0 TN TL()Ec /AF f D()LD()BR()0 P( La gestion par volumes logiques permet une gestion de plus haut niveau des probl\350mes de stockage sur disque par rapport \340 l'approche tradi)HY(tion)HY(nelle)YH( avec des disques et des parti)HY(tions)YH(. Cela apporte \340 l'admi)HY(nis)HY(tra)HY(teur)YH( syst\350me une bien meilleure flexi)HY(bi)HY(lit\351)YH( pour allouer de l'espace aux appli)HY(ca)HY(tions)YH( et aux utili)HY(sa)HY(teurs)YH(. )EP()0 P( Les volumes de stockage cr\351\351s au moyen du gestion)HY(naire)YH( de volumes logiques peuvent \352tre redi)HY(men)HY(sion)HY(n\351s)YH( et d\351pla)HY(c\351s)YH( \340 la demande, bien que cela puisse n\351ces)HY(si)HY(ter)YH( une mise \340 jour des utili)HY(taires)YH( des syst\350mes de fichiers. )EP()0 P( Le gestion)HY(naire)YH( de volumes logiques auto)HY(rise)YH( aussi la gestion de volumes logiques par groupes d'utili)HY(sa)HY(teurs)YH(, ce qui permet \340 l'admi)HY(nis)HY(tra)HY(teur)YH( syst\350me de g\351rer des groupes de volumes en utili)HY(sant)YH( un nommage compr\351)HY(hen)HY(sible)YH( avec, par exemple, des noms comme \253\240deve)HY(lop)HY(pe)HY(ment)YH(\240\273 et \253\240ventes\240\273 plut\364t que les noms des disques physiques comme \253\240sda\240\273 et \253\240sdb\240\273. )EP()2 Sl()BR()BR()BR()BR()0 2 13 H(1.\240Pourquoi)WB 206 Sn()WB 9 Sn( en voudrais-je\240?)EH()BR()BR()BR()0 P( La gestion par volumes logiques est tradi)HY(tion)HY(nel)HY(le)HY(ment)YH( asso)HY(ci\351e)YH( aux grosses instal)HY(la)HY(tions)YH( conte)HY(nant)YH( de nombreux disques mais elle est \351gale)HY(ment)YH( appro)HY(pri\351e)YH( pour les petites instal)HY(la)HY(tions)YH( avec un ou deux disques. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 14 H(2.\240B\351n\351)WB 207 Sn()HY(fices)YH()WB 10 Sn( de la gestion par volumes logiques sur un petit syst\350me)EH()BR()BR()BR()0 P( Le parti)HY(tion)HY(ne)HY(ment)YH( du disque dur est l'une des d\351ci)HY(sions)YH( diffi)HY(ciles)YH( pour un nouvel utili)HY(sa)HY(teur)YH( de Linux. La n\351ces)HY(sit\351)YH( de devoir estimer pr\351ci)HY(s\351)HY(ment)YH( l'espace disque pour les fichiers syst\350mes et utili)HY(sa)HY(teurs)YH( rend l'instal)HY(la)HY(tion)YH( plus complexe que n\351ces)HY(saire)YH( et certains utili)HY(sa)HY(teurs)YH( choi)HY(sissent)YH( simple)HY(ment)YH( de mettre toutes leurs donn\351es sur une seule grosse parti)HY(tion)YH( pour essayer de contour)HY(ner)YH( ce probl\350me. )EP()0 P( Une fois que l'utili)HY(sa)HY(teur)YH( \201ou le programme d'instal)HY(la)HY(tion)YH(\202 a d\351ter)HY(min\351)YH( l'espace n\351ces)HY(saire)YH( pour /home, /usr et /, il arrive fr\351quem)HY(ment)YH( qu'une des parti)HY(tions)YH( soit satur\351e alors qu'il reste encore plein d'espace libre sur une autre parti)HY(tion)YH(. )EP()0 P( Avec la gestion par volumes logiques, le disque entier est allou\351 \340 un groupe de volumes et des volumes logiques sont cr\351\351s pour conte)HY(nir)YH( les syst\350mes de fichiers /, /usr et /home. Si, par exemple, le volume logique /home est plus tard satur\351 mais qu'il reste de l'espace libre dans /usr, alors il est possible de r\351duire /usr de quelques m\351ga)HY(oc)HY(tets)YH( et de r\351al)HY(louer)YH( cet espace \340 /home. )EP()0 P( Une autre solu)HY(tion)YH( est d'allouer un espace minimal pour chaque volume logique et de laisser une partie de l'espace disque non allou\351. Ensuite, lorsque les parti)HY(tions)YH( commencent \340 \352tre remplies, elles peuvent \352tre \351ten)HY(dues)YH( suivant les besoins. )EP()0 P( Par exemple\240: Joe ach\350te un PC avec 8,4\240Go d'espace disque et installe Linux avec le parti)HY(tion)HY(ne)HY(ment)YH( suivant\240: )EP() 4 28 PR(/boot /dev/hda1 10 Mo swap /dev/hda2 256 Mo / /dev/hda3 2 Go /home /dev/hda4 6 Go)RP()0 P( Il pense que cette r\351par)HY(ti)HY(tion)YH( opti)HY(mi)HY(sera)YH( l'espace dispo)HY(nible)YH( pour tous ses fichiers MP3. )EP()0 P( Quelque temps plus tard, Joe d\351cide qu'il veut instal)HY(ler)YH( la derni\350re suite bureau)HY(tique)YH( et le dernier envi)HY(ron)HY(ne)HY(ment)YH( graphique dispo)HY(nible)YH(, mais il r\351alise que la parti)HY(tion)YH( racine n'est pas assez grande. Par contre, puisqu'il a archiv\351 tous ses MP3 gr\342ce \340 son nouveau graveur DVD, il lui reste plein d'espace libre dans /home. )EP()0 P( Les diff\351)HY(rentes)YH( possi)HY(bi)HY(li)HY(t\351s)YH( qui s'offrent \340 lui ne sont pas satis)HY(fai)HY(santes)YH(\240: )EP()BR()4 OL()0 P()-1 LI( Refor)HY(ma)HY(ter)YH( le disque, modi)HY(fier)YH( le parti)HY(tion)HY(ne)HY(ment)YH( et tout r\351ins)HY(tal)HY(ler)YH(. )EP()0 P()-1 LI( Acheter un nouveau disque et trouver un nouveau parti)HY(tion)HY(ne)HY(ment)YH( qui deman)HY(dera)YH( le moins de d\351pla)HY(ce)HY(ments)YH( de donn\351es. )EP()0 P()-1 LI( Utili)HY(ser)YH( un lien symbo)HY(lique)YH( de / vers /home et instal)HY(ler)YH( le nouveau logi)HY(ciel)YH( dans /home. )EP()LO()BR()0 P( Avec LVM, tout cela devient beau)HY(coup)YH( plus facile\240: )EP()0 P( Jane ach\350te un PC iden)HY(tique)YH( mais utilise LVM pour diviser son disque de mani\350re simi)HY(laire)YH(\240: )EP() 4 33 PR(/boot /dev/hda1 10 Mo swap /dev/vg00/swap 256 Mo / /dev/vg00/root 2 Go /home /dev/vg00/home 6 Go)RP()BR()1 PT()BR()BR()2 PT()BR()0 P( Lorsque Jane rencontre le m\352me probl\350me, elle peut r\351duire la taille de /home d'un giga)HY(oc)HY(tet)YH( et rajou)HY(ter)YH( cet espace dans la parti)HY(tion)YH( racine. )EP()0 P( Suppo)HY(sons)YH( que Joe et Jane remplissent aussi la parti)HY(tion)YH( /home et d\351cident d'ajouter un nouveau disque de 20\240Go dans leur syst\350me. )EP()0 P( Joe formate le disque enti\350)HY(re)HY(ment)YH( dans une seule parti)HY(tion)YH( \201/dev/hdb1\202 et l'utilise comme /home en y d\351pla\347ant les donn\351es de son /home exis)HY(tant)YH(. Il lui reste alors 6\240Go inuti)HY(li)HY(s\351s)YH( qu'il peut faire appa)HY(ra\356tre)YH( comme une exten)HY(sion)YH( de /home avec un lien symbo)HY(lique)YH(, /home/joe/anciens-mp3 par exemple. )EP()0 P( Jane ajoute simple)HY(ment)YH( le nouveau disque dans son groupe de volumes exis)HY(tant)YH( et \351tend son /home pour inclure le nouveau disque. Ou bien, elle pour)HY(rait)YH( d\351pla)HY(cer)YH( les donn\351es de /home de l'ancien vers le nouveau disque et ensuite \351tendre le volume racine exis)HY(tant)YH( pour couvrir tout l'ancien disque. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 15 H(3.\240Avan)WB 208 Sn()HY(tages)YH()WB 11 Sn( de la gestion par volumes logiques sur un gros syst\350me)EH()BR()BR()BR()0 P( Les avan)HY(tages)YH( de la gestion par volumes logiques sont plus \351vidents sur les gros syst\350mes avec de nombreux disques. )EP()0 P( G\351rer une impor)HY(tante)YH( ferme de disques prend beau)HY(coup)YH( de temps et peut s'av\351rer parti)HY(cu)HY(li\350)HY(re)HY(ment)YH( complexe si le syst\350me comporte de nombreux disques de tailles diff\351)HY(rentes)YH(. G\351rer les probl\350mes d'espace, g\351n\351)HY(ra)HY(le)HY(ment)YH( conflic)HY(tuels)YH(, entre les diff\351)HY(rents)YH( utili)HY(sa)HY(teurs)YH( peut devenir un cauche)HY(mar)YH(. )EP()0 P( Les diff\351)HY(rents)YH( groupes de volumes et volumes logiques, qui peuvent \352tre agran)HY(dis)YH( autant que n\351ces)HY(saire)YH(, peuvent \352tre allou\351s \340 des groupes d'utili)HY(sa)HY(teurs)YH(. L'admi)HY(nis)HY(tra)HY(teur)YH( peut \253\240garder en r\351serve\240\273 de l'espace jusqu'\340 ce qu'il soit requis. Cet espace peut alors \352tre ajout\351 au groupe de volumes qui en a le plus besoin. )EP()0 P( Quand de nouveaux disques sont ajout\351s au syst\350me, il n'est plus n\351ces)HY(saire)YH( de d\351pla)HY(cer)YH( les fichiers des utili)HY(sa)HY(teurs)YH( pour opti)HY(mi)HY(ser)YH( le nouvel espace de stockage. Il suffit simple)HY(ment)YH( d'ajouter le nouveau disque \340 un ou plusieurs groupes de volumes et d'\351tendre les volumes logiques suivant les besoins. )EP()0 P( Il est aussi facile de se s\351parer des anciens disques en d\351pla\347ant les donn\351es sur des disques plus r\351cents. Ceci peut \352tre effec)HY(tu\351)YH( \340 chaud, sans coupure de service pour l'utili)HY(sa)HY(teur)YH(. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 16 H(Chapitre\2403.\240Anato)WB 209 Sn()HY(mie)YH()WB 12 Sn( de LVM)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 13 1 A(1. Groupe de volumes \201Volume Group, VG\202)13 0 TN TL()Ec /AF f D()0 DT()0 14 1 A(2. Volume physique \201Physi)HY(cal)YH( Volume, PV\202)14 0 TN TL()Ec /AF f D()0 DT()0 15 1 A(3. Volume logique \201Logical Volume, LV\202)15 0 TN TL()Ec /AF f D()0 DT()0 16 1 A(4. Extent physique \201Physi)HY(cal)YH( Extent, PE\202)16 0 TN TL()Ec /AF f D()0 DT()0 17 1 A(5. Extent logique \201Logical Extent, LE\202)17 0 TN TL()Ec /AF f D()0 DT()0 18 1 A(6. Mettre tout ensemble)18 0 TN TL()Ec /AF f D()0 DT()0 19 1 A(7. Types de corres)HY(pon)HY(dances)YH( \201lin\351aire/r\351par)HY(tie)YH(\202)19 0 TN TL()Ec /AF f D()0 DT()0 20 1 A(8. Les instan)HY(ta)HY(n\351s)YH( \201snap)HY(shots)YH(\202)20 0 TN TL()Ec /AF f D()LD()BR()0 P( Le sch\351ma suivant donne une vision g\351n\351)HY(rale)YH( des compo)HY(sants)YH( d'un syst\350me \340 base de LVM. )EP() 17 50 PR(+-- Groupe de volumes \201Volume Group\202 ------------+ | | | +----------------------------------------+ | | PV | PE | PE | PE | PE | PE | PE | PE | PE | | | +----------------------------------------+ | | . . . . | | . . . . | | +----------------------------------------+ | | LV | LE | LE | LE | LE | LE | LE | LE | LE | | | +----------------------------------------+ | | . . . . | | . . . . | | +----------------------------------------+ | | PV | PE | PE | PE | PE | PE | PE | PE | PE | | | +----------------------------------------+ | | | +------------------------------------------------+)RP()0 P( Voici une autre fa\347on de visua)HY(li)HY(ser)YH( ceci \201gr\342ce \340 la gentillesse d')0 2 A(Erik B\345gfors)EA( de la liste de diffu)HY(sion)YH( linux-lvm\202\240: ) 9 64 PR( hda1 hdc1 \201PV dans des partitions ou disques entiers\202 \200 / \200 / diskvg \201VG\202 / | \200 / | \200 usrlv rootlv varlv \201LV\202 | | | ext2 reiserfs xfs \201Syst\350mes de fichiers\202)RP( )EP()2 Sl()BR()BR()BR()BR()0 2 17 H(1.\240Groupe)WB 210 Sn()WB 13 Sn( de volumes \201Volume Group, VG\202)EH()BR()BR()BR()0 P( Le groupe de volumes est l'abstrac)HY(tion)YH( de plus haut niveau utili)HY(s\351e)YH( dans LVM. C'est un ensemble de volumes logiques et physiques au sein d'une seule unit\351 d'admi)HY(nis)HY(tra)HY(tion)YH(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 18 H(2.\240Volume)WB 211 Sn()WB 14 Sn( physique \201Physi)HY(cal)YH( Volume, PV\202)EH()BR()BR()BR()0 P( Un volume physique est typique)HY(ment)YH( un disque dur, bien que cela puisse aussi \352tre un p\351ri)HY(ph\351)HY(rique)YH( qui \253\240ressemble\240\273 \340 un disque dur \201par exemple, un p\351ri)HY(ph\351)HY(rique)YH( de RAID logi)HY(ciel)YH(\202. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 19 H(3.\240Volume)WB 212 Sn()WB 15 Sn( logique \201Logical Volume, LV\202)EH()BR()BR()BR()0 P( C'est l'\351qui)HY(valent)YH( d'une parti)HY(tion)YH( de disque d'un syst\350me sans LVM. Le LV est visible comme un p\351ri)HY(ph\351)HY(rique)YH( de bloc stan)HY(dard)YH(. En tant que tel, le LV peut conte)HY(nir)YH( un syst\350me de fichiers. \201Ex\240: )SM(/home)ES(.\202 )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 20 H(4.\240Extent)WB 213 Sn()WB 16 Sn( physique \201Physi)HY(cal)YH( Extent, PE\202)EH()BR()BR()BR()0 P( Chaque volume physique est divis\351 en morceaux de donn\351es, appel\351s extents physiques. Ces extents ont une taille iden)HY(tique)YH( \340 celle des extents logiques du groupe de volumes. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 21 H(5.\240Extent)WB 214 Sn()WB 17 Sn( logique \201Logical Extent, LE\202)EH()BR()BR()BR()0 P( Chaque volume logique est divis\351 en morceaux de donn\351es, appel\351s extents logiques. La taille d'extents est la m\352me pour tous les volumes logiques du groupe de volumes. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 22 H(6.\240Mettre)WB 215 Sn()WB 18 Sn( tout ensemble)EH()BR()BR()BR()0 P( Voici un exemple concret pour aider \340 la compr\351)HY(hen)HY(sion)YH(\240: )EP()0 P( Prenons un groupe de volumes nomm\351 VG1, avec une taille d'extent physique de 4\240Mo. Nous mettons dans ce groupe de volumes deux parti)HY(tions)YH( de disques, /dev/hda1 et /dev/hdb1. Ces parti)HY(tions)YH( vont devenir les volumes physiques PV1 et PV2 \201l'admi)HY(nis)HY(tra)HY(teur)YH( peut mettre des noms plus parlants\202. Les PV sont divis\351s en morceaux de 4\240Mo, puisque c'est la taille des extents pour le groupe de volumes. Les disques sont de tailles diff\351)HY(rentes)YH( et nous avons donc 99 extents pour PV1 et 248 pour PV2. Nous pouvons main)HY(te)HY(nant)YH( cr\351er un volume logique de taille entre 1 et 347 \201248 + 99\202 extents. Quand le volume logique est cr\351\351, une rela)HY(tion)YH( est d\351finie entre les extents logiques et physiques, c'est-\340-dire que l'extent logique 1 peut corres)HY(pondre)YH( \340 l'extent physique 51 de PV1 et les donn\351es \351crites sur les quatre premiers m\351ga)HY(oc)HY(tets)YH( du volume logique seront en fait \351crites sur le 51)Sp(\350me)Es( extent de PV1. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 23 H(7.\240Types)WB 216 Sn()WB 19 Sn( de corres)HY(pon)HY(dances)YH( \201lin\351aire/r\351par)HY(tie)YH(\202)EH()BR()BR()BR()0 P( L'admi)HY(nis)HY(tra)HY(teur)YH( peut utili)HY(ser)YH( diff\351)HY(rentes)YH( stra)HY(t\351)HY(gies)YH( pour effec)HY(tuer)YH( la rela)HY(tion)YH( entre les extents logiques et les extents physiques\240: )EP()BR()4 OL()0 P()-1 LI( La )BD(corres)HY(pon)HY(dance)YH( lin\351aire)ES( permet d'attri)HY(buer)YH( une plage de PE \340 un LV dans l'ordre. Par exemple, les LE 1 \340 99 corres)HY(pon)HY(dront)YH( \340 PV1 et les LE 100 \340 347 \340 PV2. )EP()0 P()-1 LI( La )BD(corres)HY(pon)HY(dance)YH( r\351par)HY(tie)YH( \201striped\202)ES( permet de distri)HY(buer)YH( des morceaux d'extents logiques sur plusieurs volumes physiques, par exemple\240: )EP() 7 31 PR(1er morceau de LE[1] -> PV1[1], 2me morceau de LE[1] -> PV2[1], 3me morceau de LE[1] -> PV3[1], 4me morceau de LE[1] -> PV1[2],)RP()0 P( et ainsi de suite. Dans certaines situa)HY(tions)YH(, cette stra)HY(t\351)HY(gie)YH( peut am\351lio)HY(rer)YH( les perfor)HY(mances)YH( du volume logique. )BR()3 PT()BR( Avec LVM\2402, les LV r\351par)HY(tis)YH( peuvent \352tre \351tendus en conca)HY(t\351)HY(nant)YH( un autre lot de p\351ri)HY(ph\351)HY(riques)YH( \340 la fin du premier lot. Par cons\351)HY(quent)YH(, vous pourrez vous retrou)HY(ver)YH( avec un LV compos\351 de deux lots de PE r\351par)HY(tis)YH( conca)HY(t\351)HY(n\351s)YH( avec un lot lin\351aire compos\351 de quatre lots de PE. Je vous ai d\351j\340 perdu\240? )EP()LO()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 24 H(8.\240Les)WB 217 Sn()WB 20 Sn( instan)HY(ta)HY(n\351s)YH( \201snap)HY(shots)YH(\202)EH()BR()BR()BR()0 P( Une des merveilleuses fonc)HY(tion)HY(na)HY(li)HY(t\351s)YH( appor)HY(t\351es)YH( par LVM est l'instan)HY(tan\351)YH(. Elle permet \340 l'admi)HY(nis)HY(tra)HY(teur)YH( de cr\351er un nouveau p\351ri)HY(ph\351)HY(rique)YH( qui est une copie exacte d'un volume logique fig\351 \340 un moment donn\351. Typique)HY(ment)YH(, cela peut \352tre utilis\351 lors de trai)HY(te)HY(ments)YH( par lots sur le volume logique, pour une sauve)HY(garde)YH( par exemple, lorsque l'on ne veut pas arr\352ter une appli)HY(ca)HY(tion)YH( qui est en train de modi)HY(fier)YH( les donn\351es. Une fois que l'on a fini d'utili)HY(ser)YH( l'instan)HY(tan\351)YH(, l'admi)HY(nis)HY(tra)HY(teur)YH( syst\350me peut tout simple)HY(ment)YH( suppri)HY(mer)YH( le p\351ri)HY(ph\351)HY(rique)YH(. Cette fonc)HY(tion)HY(na)HY(lit\351)YH( demande \340 ce que l'instan)HY(tan\351)YH( soit effec)HY(tu\351)YH( lorsque le volume logique se trouve dans un \351tat consis)HY(tant)YH( - Le patch "VFS-lock" pour LVM\2401 permet de garan)HY(tir)YH( cet \351tat \340 la cr\351a)HY(tion)YH( de l'instan)HY(tan\351)YH( pour certains syst\350mes de fichiers. Avec le noyau 2.6, de nombreux syst\350mes de fichiers le font auto)HY(ma)HY(tique)HY(ment)YH( \340 la cr\351a)HY(tion)YH( de l'instan)HY(tan\351)YH(, sans avoir besoin d'un patch. )EP()BR()4 PT()BR()0 P( Avec LVM\2401, les instan)HY(ta)HY(n\351s)YH( sont en lecture seule. Ils fonc)HY(tionnent)YH( par l'utili)HY(sa)HY(tion)YH( d'une )EM(table d'exception)ES( qui trace les blocs modi)HY(fi\351s)YH(\240: Lorsqu'un bloc est modifi\351 sur la source, il est d'abord copi\351 dans l'instan)HY(tan\351)YH(, marqu\351 comme modifi\351 dans la table d'excep)HY(tions)YH( et ensuite modifi\351 sur le volume source avec les nouvelles donn\351es. )EP()0 P( Avec LVM\2402, les instan)HY(ta)HY(n\351s)YH( sont par d\351faut en lecture/\351cri)HY(ture)YH(. Le fonc)HY(tion)HY(ne)HY(ment)YH( est simi)HY(laire)YH( aux instan)HY(ta)HY(n\351s)YH( en lecture seule avec la possi)HY(bi)HY(lit\351)YH( suppl\351)HY(men)HY(taire)YH( d'\351crire sur l'instan)HY(tan\351)YH(\240: le bloc est alors marqu\351 comme utilis\351 dans la table d'exception et ne sera plus r\351cu)HY(p\351r\351)YH( du volume source. Cela ouvre de nouvelles pers)HY(pec)HY(tives)YH( par rapport au fonc)HY(tion)HY(ne)HY(ment)YH( en lecture seule de LVM\2401. Par exemple, on peut faire l'instan)HY(tan\351)YH( d'un volume, le monter et tester un programme exp\351)HY(ri)HY(men)HY(tal)YH( qui modifie les fichiers dessus. Si le r\351sul)HY(tat)YH( n'est pas satis)HY(fai)HY(sant)YH(, on peut le d\351mon)HY(ter)YH(, le suppri)HY(mer)YH( et remon)HY(ter)YH( le syst\350me de fichiers origi)HY(nel)YH( \340 la place. C'est aussi utile pour cr\351er des volumes utili)HY(s\351s)YH( avec )R4 2 A(Xen)EA(. Vous pouvez cr\351er une image disque et en faire un instan)HY(tan\351)YH( que vous pourrez modi)HY(fier)YH( avec une instance sp\351ci)HY(fique)YH( de domU. Vous pourrez ensuite cr\351er un autre instan)HY(tan\351)YH( de l'image orgi)HY(nale)YH( et le modi)HY(fier)YH( avec une autre instance de domU. Comme les instan)HY(ta)HY(n\351s)YH( ne stockent que les blocs modi)HY(fi\351s)YH(, la majeure partie du volume sera parta)HY(g\351e)YH( entre les domUs. )EP()BR()5 PT()BR()BR()6 PT()BR()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 25 H(Chapitre\2404.\240Ques)WB 218 Sn()HY(tions)YH()WB 21 Sn( fr\351quem)HY(ment)YH( pos\351es)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 22 1 A(1. FAQ LVM\2402 )22 0 TN TL()Ec /AF f D()0 DT()0 49 1 A(2. FAQ LVM\2401)49 0 TN TL()Ec /AF f D()LD()BR()2 Sl()BR()BR()BR()BR()0 2 26 H(1.\240FAQ)WB 219 Sn()WB 22 Sn( LVM\2402 )EH()BR()BR()BR()BR()0 DL()0 DT(1.1. )0 23 1 A( J'ai LVM\2401 install\351 et fonc)HY(tion)HY(nel)YH( sur mon syst\350me. Comment faire pour passer \340 LVM\2402\240? )23 0 TN TL()Ec /AF f D()0 DT(1.2. )0 25 1 A( Un module noyau sp\351ci)HY(fique)YH( est-il n\351ces)HY(saire)YH( pour LVM\2402\240? )25 0 TN TL()Ec /AF f D()0 DT(1.3. )0 27 1 A( J'ai des erreurs concer)HY(nant)YH( /dev/mapper/control quand j'essaie d'utili)HY(ser)YH( les utili)HY(taires)YH( LVM\2402. Que se passe-t-il\240? )27 0 TN TL()Ec /AF f D()0 DT(1.4. )0 29 1 A( Quelles sont les commandes et types de volumes logiques compa)HY(tibles)YH( avec LVM\2402\240? )29 0 TN TL()Ec /AF f D()0 DT(1.5. )0 31 1 A( Les formats de repr\351)HY(sen)HY(ta)HY(tion)YH( sur le disque des groupes de volumes et volumes logiques sont-ils diff\351)HY(rents)YH( dans LVM\2402 par rapport \340 LVM\2401\240? )31 0 TN TL()Ec /AF f D()0 DT(1.6. )0 33 1 A( LVM\2402 est-il compa)HY(tible)YH( avec les VG et LV cr\351\351s avec LVM\2401\240? )33 0 TN TL()Ec /AF f D()0 DT(1.7. )0 35 1 A( Puis-je passer mes VG et LV qui proviennent de LVM\2401 au format natif de LVM\2402\240? )35 0 TN TL()Ec /AF f D()0 DT(1.8. )0 37 1 A( J'ai mis \340 jour mon syst\350me avec LVM\2402, mais les utili)HY(taires)YH( \351chouent constam)HY(ment)YH( en indiquant qu'il ne reste plus de m\351moire libre. Que se passe-t-il\240? )37 0 TN TL()Ec /AF f D()0 DT(1.9. )0 39 1 A( Ma parti)HY(tion)YH( racine est sur un LV en LVM\2401. Comment faire pour passer \340 LVM\2402\240? Qu'est devenu lvmcreate_initrd\240? )39 0 TN TL()Ec /AF f D()0 DT(1.10. )0 41 1 A( Comment se comporte LVM par rapport \340 un renom)HY(mage)YH( soudain des disques physiques\240? )41 0 TN TL()Ec /AF f D()0 DT(1.11. )0 43 1 A( J'essaie de remplir mon VG et vgdis)HY(play)YH(/vgs indique que j'ai 1,87\240Go de libre mais quand je fais un lvcreate vg -L1.87G, il indique \253\240pas assez d'extents libres\240\273 \201\253\240insuf)HY(fi)HY(cient)YH( free extents\240\273\202. Que se passe-t-il\240? )43 0 TN TL()Ec /AF f D()0 DT(1.12. )0 45 1 A( Quelles sont les diff\351)HY(rences)YH( entre les instan)HY(ta)HY(n\351s)YH( de LVM\2402 et LVM\2401\240? )45 0 TN TL()Ec /AF f D()0 DT(1.13. )0 47 1 A( Quelle est la taille maxi)HY(male)YH( d'un LV\240? )47 0 TN TL()Ec /AF f D()LD()8 PT()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 27 H(2.\240FAQ)WB 220 Sn()WB 49 Sn( LVM\2401)EH()BR()BR()BR()BR()0 DL()0 DT(2.1. )0 50 1 A( Quand y aura-t-il des infos ici\240? )50 0 TN TL()Ec /AF f D()LD()9 PT()BR()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 28 H(Chapitre\2405.\240Obtenir)WB 221 Sn()WB 52 Sn( LVM)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 53 1 A(1. T\351l\351)HY(char)HY(ger)YH( le code source)53 0 TN TL()Ec /AF f D()0 DT()0 54 1 A(2. T\351l\351)HY(char)HY(ger)YH( le code source de d\351ve)HY(lop)HY(pe)HY(ment)YH( par CVS)54 0 TN TL()Ec /AF f D()0 DT()0 55 1 A(3. Avant de commen)HY(cer)YH()55 0 TN TL()Ec /AF f D()0 DT()0 56 1 A(4. Confi)HY(gu)HY(ra)HY(tion)YH( initiale)56 0 TN TL()Ec /AF f D()0 DT()0 57 1 A(5. R\351cu)HY(p\351)HY(ra)HY(tion)YH( du code source)57 0 TN TL()Ec /AF f D()0 DT()0 58 1 A(6. Mise \340 jour du code)58 0 TN TL()Ec /AF f D()0 DT()0 59 1 A(7. Commen)HY(cer)YH( un projet)59 0 TN TL()Ec /AF f D()0 DT()0 60 1 A(8. Bidouiller le code)60 0 TN TL()Ec /AF f D()0 DT()0 61 1 A(9. Conflits)61 0 TN TL()Ec /AF f D()LD()BR()0 P( La premi\350re chose \340 faire est de r\351cu)HY(p\351)HY(rer)YH( une copie de LVM. )BR()UL()0 P()-1 LI(T\351l\351)HY(char)HY(ger)YH( une archive de LVM par FTP.)EP()0 P()-1 LI( T\351l\351)HY(char)HY(ger)YH( le code source en d\351ve)HY(lop)HY(pe)HY(ment)YH( continu par CVS. )EP()LU()BR( )EP()2 Sl()BR()BR()BR()BR()0 2 29 H(1.\240T\351l\351)WB 222 Sn()HY(char)HY(ger)YH()WB 53 Sn( le code source)EH()BR()BR()BR()0 P( )BR()UL()0 P()-1 LI( )R8 2 A(Mappeur de p\351ri)HY(ph\351)HY(riques)YH()EA( )EP()0 P()-1 LI( )R9 2 A(LVM\2402)EA( )EP()0 P( Assurez-vous de t\351l\351)HY(char)HY(ger)YH( aussi les sources du mappeur de p\351ri)HY(ph\351)HY(riques)YH(. )EP()0 P()-1 LI( )R10 2 A(LVM\2401)EA( )EP()LU()BR( )EP()BR()10 PT()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 30 H(2.\240T\351l\351)WB 223 Sn()HY(char)HY(ger)YH()WB 54 Sn( le code source de d\351ve)HY(lop)HY(pe)HY(ment)YH( par CVS)EH()BR()BR()BR()0 P( )BD(Remarque\240:)ES( L'\351tat du code dans l'entre)HY(p\364t)YH( CVS \351volue sauva)HY(ge)HY(ment)YH(. Il contient des erreurs, certaines peuvent faire planter LVM ou le noyau. Il peut aussi ne pas compi)HY(ler)YH( du tout. Consi)HY(d\351)HY(rez)YH(-le comme du code de qualit\351 alpha et que vous pour)HY(riez)YH( perdre des donn\351es... Vous \352tes pr\351venu. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 31 H(3.\240Avant)WB 224 Sn()WB 55 Sn( de commen)HY(cer)YH()EH()BR()BR()BR()0 P( Pour suivre la progres)HY(sion)YH( des d\351ve)HY(lop)HY(pe)HY(ments)YH( de LVM, abonnez-vous aux listes de diffu)HY(sion)YH( de LVM, linux-lvm et la liste de commit appro)HY(pri\351e)YH(. \201Cf. )0 166 1 A(Section\2401, \253\240Listes de diffu)HY(sion)YH(\240\273)166 0 TN TL()Ec /AF f D(.\202 )EP()0 P( Pour construire LVM \340 partir des sources CVS, plusieurs outils GNU sont )BD(n\351ces)HY(saires)YH()ES(\240: )EP()BR()UL()0 P()-1 LI(le client CVS version 1.9 ou sup\351)HY(rieure)YH(\240;)EP()0 P()-1 LI(GCC 2.95.2\240;)EP()0 P()-1 LI(GNU make 3.79\240;)EP()0 P()-1 LI(auto)HY(conf)YH( version 2.13 ou sup\351)HY(rieure)YH(.)EP()LU()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 32 H(4.\240Confi)WB 225 Sn()HY(gu)HY(ra)HY(tion)YH()WB 56 Sn( initiale)EH()BR()BR()BR()0 P( Pour vous rendre la vie plus facile lors des mises \340 jour futures de l'arbre CVS, cr\351ez le fichier )SM($HOME/.cvsrc)ES( et mettez-y les lignes suivantes qui permettent de confi)HY(gu)HY(rer)YH( le compor)HY(te)HY(ment)YH( par d\351faut des commandes CVS les plus utili)HY(s\351es)YH(. Faites-le avant de conti)HY(nuer)YH( plus loin. )EP() 3 13 PR(diff -u -b -B checkout -P update -d -P)RP()0 P( De m\352me, si vous utili)HY(sez)YH( une connexion \340 bas d\351bit \201comme un modem RTC\202, vous voudrez proba)HY(ble)HY(ment)YH( rajou)HY(ter)YH( une ligne conte)HY(nant)YH( )SM(cvs -z5)ES( dans ce fichier. Cela active un niveau de compres)HY(sion)YH( qui sera utilis\351 par toutes les commandes CVS. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 33 H(5.\240R\351cu)WB 226 Sn()HY(p\351)HY(ra)HY(tion)YH()WB 57 Sn( du code source)EH()BR()BR()BR()BR()UL()0 P()-1 LI( )BD(Biblio)HY(th\350que)YH( et utili)HY(taires)YH( du mappeur de p\351ri)HY(ph\351)HY(riques)YH()ES( )EP()0 P( La biblio)HY(th\350que)YH( du mappeur de p\351ri)HY(ph\351)HY(riques)YH( est n\351ces)HY(saire)YH( pour construire LVM\2402. )EP()0 P( Vous devez vous authen)HY(ti)HY(fier)YH( lors de votre premier char)HY(ge)HY(ment)YH(\240: )EP() 1 58 PR(# cvs -d :pserver:cvs@sources.redhat.com:/cvs/dm login cvs)RP()0 P( Le mot de passe est \253\240cvs\240\273. La commande ne renvoie rien en cas de succ\350s et renvoie un message d'erreur en cas d'\351chec. Seule la premi\350re connexion n\351ces)HY(site)YH( une authen)HY(ti)HY(fi)HY(ca)HY(tion)YH( expli)HY(cite)YH(. Toutes les commandes CVS suivantes lisent le mot de passe stock\351 dans le fichier )SM($HOME/.cvspass)ES( pour l'authen)HY(ti)HY(fi)HY(ca)HY(tion)YH(. )EP()0 P( La commande de \253\240checkout\240\273 suivante permet de r\351cu)HY(p\351)HY(rer)YH( une copie du code\240: )EP() 1 71 PR(# cvs -d :pserver:cvs@sources.redhat.com:/cvs/dm checkout device-mapper)RP()0 P( Cela cr\351e un nouveau r\351per)HY(toire)YH( )SM(device-mapper)ES( dans le r\351per)HY(toire)YH( courant. Il contient la version la plus \340 jour possible du code du mappeur de p\351ri)HY(ph\351)HY(riques)YH(. )EP()0 P()-1 LI( )BD(LVM\2402)ES( )EP()0 P( Vous devez vous authen)HY(ti)HY(fier)YH( lors de votre premier char)HY(ge)HY(ment)YH(\240: )EP() 1 60 PR(# cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm2 login cvs)RP()0 P( Le mot de passe est \253\240cvs\240\273. La commande ne renvoie rien en cas de succ\350s et un message d'erreur en cas d'\351chec. Seule la premi\350re connexion n\351ces)HY(site)YH( une authen)HY(ti)HY(fi)HY(ca)HY(tion)YH( expli)HY(cite)YH(. Toutes les commandes CVS suivantes lisent le mot de passe stock\351 dans le fichier )SM($HOME/.cvspass)ES( pour l'authen)HY(ti)HY(fi)HY(ca)HY(tion)YH(. )EP()0 P( La commande de \253\240checkout\240\273 suivante permet de r\351cu)HY(p\351)HY(rer)YH( une copie du code\240: )EP() 1 64 PR(# cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm2 checkout LVM2)RP()0 P( Cela cr\351e un nouveau r\351per)HY(toire)YH( )SM(LVM2)ES( dans le r\351per)HY(toire)YH( courant. Il contient la version la plus \340 jour possible du code de LVM\2402. )EP()0 P()-1 LI( )BD(LVM\2401)ES( )EP()0 P( Vous devez vous authen)HY(ti)HY(fier)YH( lors de votre premier char)HY(ge)HY(ment)YH(\240: )EP() 1 59 PR(# cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm login cvs)RP()0 P( Le mot de passe est \253\240cvs\240\273. La commande ne renvoie rien en cas de succ\350s et un message d'erreur en cas d'\351chec. Seule la premi\350re connexion n\351ces)HY(site)YH( une authen)HY(ti)HY(fi)HY(ca)HY(tion)YH( expli)HY(cite)YH(. Toutes les commandes CVS suivantes lisent le mot de passe stock\351 dans le fichier )SM($HOME/.cvspass)ES( pour l'authen)HY(ti)HY(fi)HY(ca)HY(tion)YH(. )EP()0 P( La commande de \253\240checkout\240\273 suivante permet de r\351cu)HY(p\351)HY(rer)YH( une copie du code\240: )EP() 1 62 PR(# cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm checkout LVM)RP()0 P( Cela cr\351e un nouveau r\351per)HY(toire)YH( )SM(LVM)ES( dans le r\351per)HY(toire)YH( courant. Il contient la version la plus \340 jour possible du code de LVM\2401. )EP()LU()BR()0 P( Les commandes CVS fonc)HY(tionnent)YH( depuis )EM(n'importe o\371)ES( dans l'arbo)HY(res)HY(cence)YH( des sources et de fa\347on r\351cur)HY(sive)YH(. Par cons\351)HY(quent)YH(, si vous faites une mise \340 jour \340 partir du sous r\351per)HY(toire)YH( \253\240tools\240\273, cela fonc)HY(tion)HY(nera)YH( mais unique)HY(ment)YH( pour le r\351per)HY(toire)YH( \253\240tools\240\273 et ses sous-r\351per)HY(toires)YH(. Les commandes qui suivent supposent que vous \352tes \340 la racine de l'arbo)HY(res)HY(cence)YH( des sources. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 34 H(6.\240Mise)WB 227 Sn()WB 58 Sn( \340 jour du code)EH()BR()BR()BR()0 P( Les modi)HY(fi)HY(ca)HY(tions)YH( du code sont assez fr\351quentes dans le d\351p\364t CVS. Elles sont annon)HY(c\351es)YH( auto)HY(ma)HY(tique)HY(ment)YH( par un envoi dans la liste lvm-commit. )EP()0 P( Vous pouvez mettre \340 jour votre copie des sources pour corres)HY(pondre)YH( au d\351p\364t ma\356tre avec la commande update. Il n'est pas n\351ces)HY(saire)YH( de r\351cu)HY(p\351)HY(rer)YH( une nouvelle copie des sources. Il est beau)HY(coup)YH( plus simple et rapide d'utili)HY(ser)YH( la commande update, car elle t\351l\351)HY(charge)YH( unique)HY(ment)YH( les modi)HY(fi)HY(ca)HY(tions)YH( des fichiers modi)HY(fi\351s)YH( depuis la derni\350re mise \340 jour. Elle permet aussi de fusion)HY(ner)YH( auto)HY(ma)HY(tique)HY(ment)YH( les modi)HY(fi)HY(ca)HY(tions)YH( du d\351p\364t CVS avec les chan)HY(ge)HY(ments)YH( que vous auriez pu effec)HY(tuer)YH( en local. Pour cela, il vous suffit juste d'aller dans le r\351per)HY(toire)YH( \340 mettre \340 jour et de taper la commande suivante\240: )EP() 1 12 PR(# cvs update)RP()0 P( Si vous n'avez pas sp\351ci)HY(fi\351)YH( de balise lors du \253\240checkout\240\273, cela mettra \340 jour vos sources par rapport \340 la derni\350re version de la branche prin)HY(ci)HY(pale)YH( des sources. Si vous aviez sp\351ci)HY(fi\351)YH( une balise de branche, cela mettra \340 jour suivant la derni\350re version de cette branche. Si vous aviez sp\351ci)HY(fi\351)YH( une balise de version, cela ne fera rien du tout. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 35 H(7.\240Commen)WB 228 Sn()HY(cer)YH()WB 59 Sn( un projet)EH()BR()BR()BR()0 P( Discu)HY(tez)YH( de l'id\351e sur la liste de d\351ve)HY(lop)HY(pe)HY(ment)YH( avant de commen)HY(cer)YH(. Quelqu'un est peut-\352tre d\351j\340 en train de travailler sur le m\352me sujet ou peut avoir des bonnes id\351es pour le mener \340 bien. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 36 H(8.\240Bidouiller)WB 229 Sn()WB 60 Sn( le code)EH()BR()BR()BR()0 P( Ainsi, vous voulez corri)HY(ger)YH( un bogue\240? D\351ve)HY(lop)HY(per)YH( une fonc)HY(tion)HY(na)HY(lit\351)YH( de la liste TODO\240? D\351ve)HY(lop)HY(per)YH( une nouvelle fonc)HY(tion)HY(na)HY(lit\351)YH(\240? Bidouiller le code ne pour)HY(rait)YH( pas \352tre plus simple. Utili)HY(sez)YH( votre copie des sources. Pas besoin de copier les fichiers en )SM(.orig)ES( ou autres. CVS garde la copie des origi)HY(naux)YH(. )EP()0 P( Quand votre code fonc)HY(tion)HY(nera)YH( et aura \351t\351 test\351 du mieux possible avec le mat\351)HY(riel)YH( dont vous dispo)HY(sez)YH(, faites un correc)HY(tif)YH( par rapport \340 la version )EM(current)ES( des sources sur CVS. )EP() 2 22 PR(# cvs update # cvs diff > patchfile)RP()0 P( Envoyez le correc)HY(tif)YH( \340 la liste linux-lvm ou dm-devel \201)0 166 1 A(Section\2401, \253\240Listes de diffu)HY(sion)YH(\240\273)166 0 TN TL()Ec /AF f D(\202 avec une descrip)HY(tion)YH( des modi)HY(fi)HY(ca)HY(tions)YH( et ajouts que vous avez effec)HY(tu\351s)YH(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 37 H(9.\240Conflits)WB 230 Sn()WB 61 Sn()EH()BR()BR()BR()0 P( Si quelqu'un a travaill\351 sur les m\352mes fichiers que vous, il se peut qu'il y ait des modi)HY(fi)HY(ca)HY(tions)YH( conflic)HY(tuelles)YH(. Vous le saurez quand vous mettrez \340 jour vos sources. )EP() 8 55 PR(# cvs update RCS file: LVM/tools/pvcreate.c,v retrieving revision 1.5 retrieving revision 1.6 Merging differences between 1.5 and 1.6 into pvcreate.c rcsmerge: warning: conflicts during merge cvs server: conflicts found in tools/pvcreate.c C tools/pvcreate.c)RP()0 P( Pas de panique\240! Le fichier original, tel qu'il \351tait avant la mise \340 jour, est conserv\351 avec le nom )SM(.#pvcreate.c.1.5)ES(. Vous pouvez toujours le r\351cu)HY(p\351)HY(rer)YH( si les choses se passent mal. Le fichier nomm\351 )SM(pvcreate.c)ES( contient d\351sor)HY(mais)YH( les )BD(deux)ES( versions, la v\364tre et la nouvelle, des lignes conflic)HY(tuelles)YH(. Il vous reste simple)HY(ment)YH( \340 ouvrir le fichier et r\351soudre les conflits en effa\347ant la mauvaise version des lignes. )EP() 5 18 PR(<<<<<<< pvcreate.c j++; ======= j--; >>>>>>> 1.6)RP()0 P( N'oubliez pas de suppri)HY(mer)YH( les lignes avec les symboles \253\240<\240\273, \253\240=\240\273 et \253\240>\240\273. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 38 H(Chapitre\2406.\240Construire)WB 231 Sn()WB 62 Sn( les modules du noyau)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 63 1 A(1. Construire le module noyau device-mapper)63 0 TN TL()Ec /AF f D()0 DT()0 64 1 A(2. Construire le module du noyau pour LVM\2401)64 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 65 1 A(2.1. Fabriquer un correc)HY(tif)YH( pour votre noyau)65 0 TN TL()Ec /AF f D()0 DT()0 66 1 A(2.2. Construire le module LVM pour Linux 2.2.17+)66 0 TN TL()Ec /AF f D()0 DT()0 67 1 A(2.3. Compi)HY(ler)YH( les modules LVM pour Linux 2.4)67 0 TN TL()Ec /AF f D()0 DT()0 68 1 A(2.4. V\351ri)HY(fier)YH( le syst\350me de fichiers proc)68 0 TN TL()Ec /AF f D()LD()LD()BR()2 Sl()BR()BR()BR()BR()0 2 39 H(1.\240Construire)WB 232 Sn()WB 63 Sn( le module noyau device-mapper)EH()BR()BR()BR()0 P( Le mappeur de p\351ri)HY(ph\351)HY(riques)YH( est inclus dans les noyaux 2.6.9 et suivants, donc vous devez juste v\351ri)HY(fier)YH( qu'il est activ\351 direc)HY(te)HY(ment)YH( dans le noyau ou sous forme de module. Pour cela, vous devez avoir la pr\351sence de )SM(/sys/class/misc/device-mapper)ES( ou de la ligne )BD(device-mapper)ES( dans )SM(/proc/devices)ES(. Si aucun n'est pr\351sent, essayez )BD(modprobe dm_mod)ES( et re-v\351ri)HY(fiez)YH(. Pour les versions de noyau avant le 2.6.9, vous ou votre distri)HY(bu)HY(tion)YH( doit patcher le noyau pour le suppor)HY(ter)YH(. Allez voir la page web du )R11 2 A(mappeur de p\351ri)HY(ph\351)HY(riques)YH()EA( pour plus d'infor)HY(ma)HY(tions)YH(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 40 H(2.\240Construire)WB 233 Sn()WB 64 Sn( le module du noyau pour LVM\2401)EH()BR()BR()BR()0 P( Pour utili)HY(ser)YH( LVM\2401, il faut que vous compi)HY(liez)YH( le module LVM\2401 du noyau \201recom)HY(mand\351)YH(\202 ou, si vous le pr\351f\351)HY(rez)YH(, que vous recons)HY(trui)HY(siez)YH( le noyau avec le code LVM\2401 li\351 statique)HY(ment)YH( dedans. )EP()0 P( Votre syst\350me Linux est proba)HY(ble)HY(ment)YH( bas\351 sur une des distri)HY(bu)HY(tions)YH( popu)HY(laires)YH( de Linux \201Redhat, Debian...\202 avec laquelle le module LVM\2401 est peut-\352tre d\351j\340 fourni. V\351ri)HY(fiez)YH( la version des utili)HY(taires)YH( que vous avez sur votre syst\350me en utili)HY(sant)YH( une des commandes de LVM avec l'option \253\240-h\240\273. Utili)HY(sez)YH( la commande )BD(pvscan -h)ES( si vous ne connais)HY(sez)YH( aucune des commandes. Si le num\351ro de version en t\352te du listing de l'aide est 1.0.8, )BD(utili)HY(sez)YH( votre confi)HY(gu)HY(ra)HY(tion)YH( actuelle)ES( et sautez le reste de ce chapitre. )EP()2 Sl()BR()BR()BR()BR()0 3 41 H(2.1.\240Fabriquer)WB 234 Sn()WB 65 Sn( un correc)HY(tif)YH( pour votre noyau)EH()BR()BR()BR()0 P( Afin de mettre \340 jour le noyau pour qu'il soit compa)HY(tible)YH( avec LVM\240v1.0.8, vous devez effec)HY(tuer)YH( les op\351ra)HY(tions)YH( suivantes\240: )BR()4 OL()0 P()-1 LI(D\351com)HY(pres)HY(ser)YH( LVM\2401.0.8\240:)EP() 1 26 PR(# tar zxf lvm_1.0.8.tar.gz)RP()0 P()-1 LI( Allez dans le r\351per)HY(toire)YH( racine de cette version\240:)EP() 1 14 PR(# cd LVM/1.0.8)RP()0 P()-1 LI(Lancez le script de confi)HY(gu)HY(ra)HY(tion)YH(\240:)EP() 1 13 PR(# ./configure)RP()0 P( Il faut ajouter l'option )SM(--with-kernel_dir)ES( \340 confi)HY(gure)YH( si les sources du noyau ne sont pas dans )SM(/usr/src/linux)ES(. \201Lancez )BD(./confi)HY(gure)YH( --help)ES( pour visua)HY(li)HY(ser)YH( toutes les options dispo)HY(nibles)YH(.\202 )EP()0 P()-1 LI(Allez dans le r\351per)HY(toire)YH( PATCHES\240:)EP() 1 12 PR(# cd PATCHES)RP()0 P()-1 LI(Lancez \253\240make\240\273\240:)EP() 1 6 PR(# make)RP()0 P( Vous devriez main)HY(te)HY(nant)YH( avoir un correc)HY(tif)YH( appel\351 )SM(lvm-1.0.8-$KERNEL)HY(VER)HY(SION)YH(.patch)ES( dans le r\351per)HY(toire)YH( PATCHES. C'est le correc)HY(tif)YH( du noyau pour LVM qui sera utilis\351 dans la suite de ce guide pratique. )EP()0 P()-1 LI(Patchez le noyau\240:)EP() 1 76 PR(# cd /usr/src/linux ; patch -pX < /r\351pertoire/lvm-1.0.8-$KERNELVERSION.patch)RP()LO()BR( )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 42 H(2.2.\240Construire)WB 235 Sn()WB 66 Sn( le module LVM pour Linux 2.2.17+)EH()BR()BR()BR()0 P( Un noyau de la s\351rie 2.2 doit \352tre mis \340 jour avant de commen)HY(cer)YH( la compi)HY(la)HY(tion)YH(. Allez voir ailleurs les instruc)HY(tions)YH( pour apprendre \340 appliquer des correc)HY(tifs)YH( au noyau. )EP()0 P( Correc)HY(tifs)YH(\240: )EP()BR()4 OL()0 P()-1 LI( )BD(Correc)HY(tif)YH( rawio)ES( )EP()0 P( Le correc)HY(tif)YH( raw_io de Stephen Tweedie est dispo)HY(nible)YH( \340 )R12 2 A(http://www.kernel.org/pub/linux/kernel/people/sct/raw-io)EA( )EP()0 P()-1 LI( )BD(Correc)HY(tif)YH( lvm)ES( )EP()0 P( Ce correc)HY(tif)YH( doit \352tre construit \340 partir du sous-r\351per)HY(toire)YH( PATCHES de la distri)HY(bu)HY(tion)YH( de LVM\2401. Vous trou)HY(ve)HY(rez)YH( plus d'infor)HY(ma)HY(tions)YH( dans la )0 65 1 A(Section\2402.1, \253\240Fabriquer un correc)HY(tif)YH( pour votre noyau\240\273)65 0 TN TL()Ec /AF f D(. )EP()LO()BR()0 P( Une fois que les correc)HY(tifs)YH( ont \351t\351 correc)HY(te)HY(ment)YH( appliqu\351s, il faut vous assurer que le module soit bien compil\351. Les pilotes LVM\2401 se trouvent dans la section \253\240devices\240\273 de la confi)HY(gu)HY(ra)HY(tion)YH( du noyau. Vous devriez aussi compi)HY(ler)YH( les infor)HY(ma)HY(tions)YH( de /proc pour LVM. )EP()0 P( Compi)HY(lez)YH( les modules noyau comme d'habi)HY(tude)YH(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 43 H(2.3.\240Compi)WB 236 Sn()HY(ler)YH()WB 67 Sn( les modules LVM pour Linux 2.4)EH()BR()BR()BR()0 P( Le noyau 2.4 contient d\351j\340 LVM, mais vous devriez v\351ri)HY(fier)YH( la pr\351sence de mises \340 jour sur le site web de LVM \201c'est-\340-dire que les noyaux 2.4.9 et inf\351)HY(rieurs)YH( doivent utili)HY(ser)YH( le )0 65 1 A(plus r\351cent correc)HY(tif)YH( LVM\2401)65 0 TN TL()Ec /AF f D(\202. En confi)HY(gu)HY(rant)YH( le noyau, cher)HY(chez)YH( LVM\2401 dans )BD(Multi-device support \201RAID and LVM\202)ES(. LVM\2401 peut \352tre compil\351 dans le noyau ou en tant que module. Compi)HY(lez)YH( votre noyau et les modules et instal)HY(lez)YH(-les de la mani\350re habi)HY(tuelle)YH(. Si vous d\351cidez de compi)HY(ler)YH( LVM en tant que module, il s'appel)HY(lera)YH( )SM(lvm-mod.o)ES(. )EP()0 P( Si vous voulez faire des instan)HY(ta)HY(n\351s)YH( avec ReiserFS, faites atten)HY(tion)YH( \340 appliquer le correc)HY(tif)YH( )SM(linux-2.4.x-VFS-lock)ES( \201il y en a une copie dans le r\351per)HY(toire)YH( )SM(LVM/1.0.8/PATCHES)ES(\202. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 44 H(2.4.\240V\351ri)WB 237 Sn()HY(fier)YH()WB 68 Sn( le syst\350me de fichiers proc)EH()BR()BR()BR()0 P( Si le noyau est compil\351 avec le syst\350me de fichiers /proc \201proba)HY(ble)HY(ment)YH(\202, vous pouvez v\351ri)HY(fier)YH( la pr\351sence de LVM par l'exis)HY(tence)YH( du r\351per)HY(toire)YH( /proc/lvm. S'il n'existe pas, il se peut que vous ayez \340 charger le module par la commande\240: )EP() 1 18 PR(# modprobe lvm-mod)RP()0 P( Si )SM(/proc/lvm)ES( n'existe toujours pas, v\351ri)HY(fiez)YH( soigneu)HY(se)HY(ment)YH( votre confi)HY(gu)HY(ra)HY(tion)YH( noyau. )EP()0 P( Quand LVM est actif, il existe des entr\351es dans )SM(/proc/lvm)ES( pour tous les volumes physiques, groupes de volumes et volumes logiques. De plus, le \253\240fichier\240\273 appel\351 )SM(/proc/lvm/global)ES( donne le statut de LVM et montre la version du noyau LVM en cours d'utili)HY(sa)HY(tion)YH(. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 45 H(Chapitre\2407.\240Scripts)WB 238 Sn()WB 69 Sn( de d\351mar)HY(rage)YH( pour LVM\2401)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 70 1 A(1. Caldera)70 0 TN TL()Ec /AF f D()0 DT()0 71 1 A(2. Debian)71 0 TN TL()Ec /AF f D()0 DT()0 72 1 A(3. Mandrake)72 0 TN TL()Ec /AF f D()0 DT()0 73 1 A(4. Redhat)73 0 TN TL()Ec /AF f D()0 DT()0 74 1 A(5. Slack)HY(ware)YH()74 0 TN TL()Ec /AF f D()0 DT()0 75 1 A(6. SuSE)75 0 TN TL()Ec /AF f D()LD()BR()0 P( Les scripts de d\351mar)HY(rage)YH( ne sont pas fournis par la distri)HY(bu)HY(tion)YH( de LVM, bien qu'ils soient simples \340 faire soi-m\352me. )EP()0 P( Le d\351mar)HY(rage)YH( de LVM demande juste ces deux commandes\240: )EP() 2 14 PR(# vgscan # vgchange -ay)RP()0 P( Et l'arr\352t une seule\240: )EP() 1 14 PR(# vgchange -an)RP()0 P( Suivez les instruc)HY(tions)YH( ci-dessous suivant la distri)HY(bu)HY(tion)YH( de Linux que vous utili)HY(sez)YH(. )EP()2 Sl()BR()BR()BR()BR()0 2 46 H(1.\240Caldera)WB 239 Sn()WB 70 Sn()EH()BR()BR()BR()0 P( Il est n\351ces)HY(saire)YH( d'ouvrir le fichier )SM(/etc/rc.d/rc.boot)ES(. Ins\351rez les lignes de commandes vgscan et vgchange juste avant les lignes qui disent \253\240Moun)HY(ting)YH( local file)HY(sys)HY(tems)YH(\240\273. )EP()0 P( Vous pouvez aussi modi)HY(fier)YH( le fichier )SM(/etc/rc.d/init.d/halt)ES( pour d\351sac)HY(ti)HY(ver)YH( les groupes de volume \340 l'arr\352t de la machine. Ins\351rer la commande )EP() 1 12 PR(vgchange -an)RP()0 P( pr\350s de la fin du fichier, juste apr\350s le d\351mon)HY(tage)YH( des syst\350mes de fichiers ou leur montage en lecture seule et avant le commen)HY(taire)YH( disant \253\240Now halt or reboot\240\273. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 47 H(2.\240Debian)WB 240 Sn()WB 71 Sn()EH()BR()BR()BR()0 P( Si vous t\351l\351)HY(char)HY(gez)YH( le paquet Debian lvm-common \201pour LVM\2401\202 ou lvm2, un script d'initia)HY(li)HY(sa)HY(tion)YH( devrait \352tre install\351 pour vous. )EP()0 P( Si vous instal)HY(lez)YH( LVM \340 partir des sources, vous devez cr\351er votre propre fichier d'initia)HY(li)HY(sa)HY(tion)YH(\240: )EP()BR()UL()0 P()-1 LI( Cr\351ez le script de d\351mar)HY(rage)YH( )SM(/etc/init.d/lvm)ES( conte)HY(nant)YH( les lignes suivantes\240: )EP() 15 23 PR(#!/bin/sh case "$1" in start\202 /sbin/vgscan /sbin/vgchange -ay ;; stop\202 /sbin/vgchange -an ;; restart|force-reload\202 ;; esac exit 0)RP()0 P()-1 LI( Ensuite, ex\351cu)HY(tez)YH( les commandes\240: )EP() 2 42 PR(# chmod 0755 /etc/init.d/lvm # update-rc.d lvm start 26 S . stop 82 1 .)RP()0 P( Remarquez les points dans la derni\350re commande. )EP()LU()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 48 H(3.\240Mandrake)WB 241 Sn()WB 72 Sn()EH()BR()BR()BR()0 P( Aucune modi)HY(fi)HY(ca)HY(tion)YH( des scripts d'initia)HY(li)HY(sa)HY(tion)YH( ne devrait \352tre n\351ces)HY(saire)YH( pour les versions actuelles de Mandrake. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 49 H(4.\240Redhat)WB 242 Sn()WB 73 Sn()EH()BR()BR()BR()0 P( Pour la Redhat 7.0 et sup\351)HY(rieure)YH(, vous ne devriez pas avoir besoin de modi)HY(fier)YH( de script d'initia)HY(li)HY(sa)HY(tion)YH( pour d\351mar)HY(rer)YH( LVM s'il est inclus dans le noyau. Si LVM est compil\351 en tant que module, il peut \352tre n\351ces)HY(saire)YH( de modi)HY(fier)YH( )SM(/etc/rc.d/rc.sysinit)ES( pour charger le module en y ajou)HY(tant)YH( la ligne \253\240modprobe lvm-mod\240\273 avant la partie disant\240: )EP() 5 66 PR(# LVM initialization, take 2 \201it could be on top of RAID\202 if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then action $"Setting up Logical Volume Management:" /sbin/vgscan && /sbin/vgchange -a y fi)RP()BR()11 PT()BR()0 P( Pour les versions de RedHat ant\351)HY(rieures)YH( \340 la 7.0, il est n\351ces)HY(saire)YH( de modi)HY(fier)YH( le fichier )SM(/etc/rc.d/rc.sysinit)ES(. Regar)HY(dez)YH( la ligne qui dit \253\240Mount all other file)HY(sys)HY(tems)YH(\240\273 et ins\351rez les commandes vgscan et vgchange juste avant celle-ci. Assurez-vous que votre syst\350me de fichiers racine est mont\351 en lecture/\351cri)HY(ture)YH( avant d'utili)HY(ser)YH( les commandes LVM. )EP()0 P( Vous voudrez peut-\352tre aussi modi)HY(fier)YH( le fichier )SM(/etc/rc.d/init.d/halt)ES( pour d\351sac)HY(ti)HY(ver)YH( les groupes de volumes \340 l'arr\352t de la machine. Ins\351rez la commande\240: )EP() 1 12 PR(vgchange -an)RP()0 P( vers la fin du fichier, juste apr\350s le remon)HY(tage)YH( des syst\350mes de fichiers en lecture seule et avant le commen)HY(taire)YH( qui dit \253\240Now halt or reboot\240\273. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 50 H(5.\240Slack)WB 243 Sn()HY(ware)YH()WB 74 Sn()EH()BR()BR()BR()0 P( La Slack)HY(ware)YH( 8.1 ne demande aucune mise \340 jour des scripts de d\351mar)HY(rage)YH( pour faire fonc)HY(tion)HY(ner)YH( LVM. )EP()0 P( Pour les versions pr\351c\351)HY(dentes)YH( de Slack)HY(ware)YH( 8.1, vous devrez appliquer le correc)HY(tif)YH( suivant \340 )SM(/etc/rc.d/rc.S)ES(. )EP() 3 21 PR(cd /etc/rc.d cp -a rc.S rc.S.old patch -p0 < rc.S.diff)RP()0 P( \201Le cp sert \340 faire une sauve)HY(garde)YH( au cas o\371\202. )EP() 105 72 PR(----- snip snip file: rc.S.diff--------------- --- rc.S.or Tue Jul 17 18:11:20 2001 +++ rc.S Tue Jul 17 17:57:36 2001 @@ -4,6 +4,7 @@ # # Mostly written by: Patrick J. Volkerding, # +# Added LVM support PATH=/sbin:/usr/sbin:/bin:/usr/bin @@ -28,19 +29,21 @@ READWRITE=yes fi + # Check the integrity of all filesystems if [ ! READWRITE = yes ]; then - /sbin/fsck -A -a + /sbin/fsck -a / + # Check only the root fs first, but no others # If there was a failure, drop into single-user mode. if [ ? -gt 1 ] ; then echo echo - echo "*******************************************************" - echo "*** An error occurred during the file system check. ***" - echo "*** You will now be given a chance to log into the ***" - echo "*** system in single-user mode to fix the problem. ***" - echo "*** Running 'e2fsck -v -y ' might help. ***" - echo "*******************************************************")WR( + echo "************************************************************" + echo "*** An error occurred during the root file system check. ***" + echo "*** You will now be given a chance to log into the ***" + echo "*** system in single-user mode to fix the problem. ***" + echo "*** Running 'e2fsck -v -y ' might help. ***" + echo "************************************************************" echo echo "Once you exit the single-user shell, the system will reboot." echo @@ -82,6 +85,44 @@ echo -n "get into your machine and start looking for the problem. " read junk; fi + # okay / fs is clean, and mounted as rw + # This was an addition, limits vgscan to /proc thus + # speeding up the scan immensely. + /sbin/mount /proc + + # Initialize Logical Volume Manager + /sbin/vgscan + /sbin/vgchange -ay + + /sbin/fsck -A -a -R + #Check all the other filesystem, including the LVM's, excluding / + + # If there was a failure, drop into single-user mode. + if [ ? -gt 1 ] ; then + echo + echo + echo "*******************************************************")WR( + echo "*** An error occurred during the file system check. ***" + echo "*** You will now be given a chance to log into the ***" + echo "*** system in single-user mode to fix the problem. ***" + echo "*** Running 'e2fsck -v -y ' might help. ***" + echo "*** The root filesystem is ok and mounted readwrite ***" + echo "*******************************************************" + echo + echo "Once you exit the single-user shell, the system will reboot." + echo + + PS1="\201Repair filesystem\202 #"; export PS1 + sulogin + + echo "Unmounting file systems." + umount -a -r + mount -n -o remount,ro / + echo "Rebooting system." + sleep 2 + reboot + fi + else echo "Testing filesystem status: read-write filesystem" if cat /etc/fstab | grep ' / ' | grep umsdos 1> /dev/null 2> /dev/null ; then @@ -111,14 +152,16 @@ echo -n "Press ENTER to continue. " read junk; fi +)WR( fi + # remove /etc/mtab* so that mount will create it with a root entry /bin/rm -f /etc/mtab* /etc/nologin /etc/shutdownpid # mount file systems in fstab \201and create an entry for /\202 # but not NFS or SMB because TCP/IP is not yet configured -/sbin/mount -a -v -t nonfs,nosmbfs +/sbin/mount -a -v -t nonfs,nosmbfs,proc # Clean up temporary files on the /var volume: /bin/rm -f /var/run/utmp /var/run/*.pid /var/log/setup/tmp/* --snip snip snip end of file---------------)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 51 H(6.\240SuSE)WB 244 Sn()WB 75 Sn()EH()BR()BR()BR()0 P( Aucun chan)HY(ge)HY(ment)YH( ne devrait \352tre n\351ces)HY(saire)YH( \340 partir de la 6.4 puisque LVM y est inclus. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 52 H(Chapitre\2408.\240Scripts)WB 245 Sn()WB 76 Sn( de d\351mar)HY(rage)YH( pour LVM\2402)EH()BR()BR()BR()0 P( Pour utili)HY(ser)YH( )BD(initrd)ES(, vous avez besoin d'avoir les lignes\240: ) 3 43 PR( dmsetup mknodes vgscan --ignorelockingfailure vgchange -ay --ignorelockingfailure)RP( dans )SM(linuxrc)ES( pour pouvoir activer le LV racine avant d'acc\351der au volume racine. La plupart des distri)HY(bu)HY(tions)YH( semblent main)HY(te)HY(nant)YH( poss\351)HY(der)YH( cette confi)HY(gu)HY(ra)HY(tion)YH( dans leur script )BD(mkini)HY(trd)YH()ES( et tendent aussi \340 l'avoir dans les scripts d'initia)HY(li)HY(sa)HY(tion)YH( du syst\350me \201)SM(rc.sysinit)ES( ou \351qui)HY(valent)YH(\202, ce qui active tous les volumes au d\351mar)HY(rage)YH(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 53 H(Chapitre\2409.\240Compi)WB 246 Sn()HY(ler)YH()WB 77 Sn( LVM \340 partir des sources)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 78 1 A(1. Compi)HY(ler)YH( la biblio)HY(th\350que)YH( et les utili)HY(taires)YH( LVM )78 0 TN TL()Ec /AF f D()0 DT()0 79 1 A(2. Instal)HY(ler)YH( la biblio)HY(th\350que)YH( LVM et les utili)HY(taires)YH()79 0 TN TL()Ec /AF f D()0 DT()0 80 1 A(3. Suppri)HY(mer)YH( la biblio)HY(th\350que)YH( LVM et les utili)HY(taires)YH()80 0 TN TL()Ec /AF f D()LD()BR()2 Sl()BR()BR()BR()BR()0 2 54 H(1.\240Compi)WB 247 Sn()HY(ler)YH()WB 78 Sn( la biblio)HY(th\350que)YH( et les utili)HY(taires)YH( LVM )EH()BR()BR()BR()0 P( Allez dans le r\351per)HY(toire)YH( de LVM et faites un )BD(./confi)HY(gure)YH()ES( suivi d'un )BD(make)ES(. Cela cr\351era toutes les biblio)HY(th\350ques)YH( et programmes. )EP()0 P( Si vous en avez besoin, vous pouvez modi)HY(fier)YH( des options avec la commande de confi)HY(gu)HY(ra)HY(tion)YH(. Faites un )BD(./confi)HY(gure)YH( --help)ES( pour voir les options dispo)HY(nibles)YH(. La plupart du temps, ceci sera inutile. )EP()0 P( Il ne devrait pas y avoir d'erreur dans le proces)HY(sus)YH( de compi)HY(la)HY(tion)YH(. S'il y en a, repor)HY(tez)YH(-vous au chapitre )0 164 1 A(Signa)HY(ler)YH( des erreurs et des bogues)164 0 TN TL()Ec /AF f D( pour les signa)HY(ler)YH(. )EP()0 P( Vous \352tes aussi les bien)HY(ve)HY(nus)YH( si vous les corri)HY(gez)YH( et que vous nous envoyez les correc)HY(tifs)YH(. Les correc)HY(tifs)YH( sont habi)HY(tuel)HY(le)HY(ment)YH( \340 envoyer \340 la liste )0 166 1 A(linux-lvm)166 0 TN TL()Ec /AF f D(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 55 H(2.\240Instal)WB 248 Sn()HY(ler)YH()WB 79 Sn( la biblio)HY(th\350que)YH( LVM et les utili)HY(taires)YH()EH()BR()BR()BR()0 P( Une fois que les sources compilent correc)HY(te)HY(ment)YH(, faites simple)HY(ment)YH( un )BD(make install)ES( pour instal)HY(ler)YH( la biblio)HY(th\350que)YH( LVM et les utili)HY(taires)YH( sur votre syst\350me. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 56 H(3.\240Suppri)WB 249 Sn()HY(mer)YH()WB 80 Sn( la biblio)HY(th\350que)YH( LVM et les utili)HY(taires)YH()EH()BR()BR()BR()0 P( Pour enlever la biblio)HY(th\350que)YH( et les utili)HY(taires)YH( que vous venez d'instal)HY(ler)YH(, faites )BD(make remove)ES(. Vous devez avoir les sources origi)HY(nelles)YH( utili)HY(s\351es)YH( pour l'instal)HY(la)HY(tion)YH( de LVM pour que cela fonc)HY(tionne)YH(. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 57 H(Chapitre\24010.\240Migrer)WB 250 Sn()WB 81 Sn( d'une version pr\351c\351)HY(dente)YH( de LVM vers LVM\2401.0.8)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 82 1 A(1. Migrer vers LVM\2401.0.8 avec une parti)HY(tion)YH( racine non LVM)82 0 TN TL()Ec /AF f D()0 DT()0 83 1 A(2. Migrer vers LVM\2401.0.8 avec une parti)HY(tion)YH( racine en LVM et initrd)83 0 TN TL()Ec /AF f D()LD()BR()0 P( Migrer d'une version pr\351c\351)HY(dente)YH( de LVM vers LVM\2401.0.8 devrait \352tre tr\350s simple. Nous avons trouv\351 une m\351thode pour lire les m\351ta-donn\351es des PV version 1 \201LVM\2400.9.1 Beta7 et pr\351c\351)HY(dents)YH(\202 aussi bien que les m\351ta-donn\351es des PV version 2 \201LVM\2400.9.1 Beta8 et LVM\2401.0\202. )EP()0 P( )EM(Atten)HY(tion)YH(\240:)ES( Les nouveaux PV initia)HY(li)HY(s\351s)YH( avec LVM\2401.0.8 utilisent la struc)HY(ture)YH( de disque des PV version 1. Cela signi)HY(fie)YH( que LVM\2400.9.1 Beta8 et LVM\2401.0 ne peuvent pas lire ou utili)HY(ser)YH( les PV cr\351\351s avec la version 1.0.8. )EP()2 Sl()BR()BR()BR()BR()0 2 58 H(1.\240Migrer)WB 251 Sn()WB 82 Sn( vers LVM\2401.0.8 avec une parti)HY(tion)YH( racine non LVM)EH()BR()BR()BR()0 P( Les \351tapes de la migra)HY(tion)YH( sont tr\350s simples, mais il est n\351an)HY(moins)YH( recom)HY(mand\351)YH( de faire une sauve)HY(garde)YH( des donn\351es avant. Vous \352tes pr\351ve)HY(nus)YH(. )BR()4 OL()0 P()-1 LI( )BD(Compi)HY(ler)YH( le noyau LVM et les modules)ES( )EP()0 P( Suivez les \351tapes expliqu\351es dans les )0 52 1 A(Chapitre\2405, )I(Obtenir LVM)ES()52 0 TN TL()Ec /AF f D( et )0 64 1 A(Section\2402, \253\240Construire le module du noyau pour LVM\2401\240\273)64 0 TN TL()Ec /AF f D( pour conna\356tre les instruc)HY(tions)YH( pour obtenir et compi)HY(ler)YH( les \351l\351ments n\351ces)HY(saires)YH( de LVM pour le noyau Linux. )EP()0 P()-1 LI( )BD(Compi)HY(ler)YH( les utili)HY(taires)YH( LVM)ES( )EP()0 P( Suivez les \351tapes du )0 77 1 A(Chapitre\2409, )I(Compi)HY(ler)YH( LVM \340 partir des sources)ES()77 0 TN TL()Ec /AF f D( pour compi)HY(ler)YH( et instal)HY(ler)YH( les utili)HY(taires)YH( de LVM. )EP()0 P()-1 LI( )BD(Confi)HY(gu)HY(rer)YH( les scripts de d\351mar)HY(rage)YH()ES( )EP()0 P( Assurez-vous d'avoir une confi)HY(gu)HY(ra)HY(tion)YH( correcte des scripts de d\351mar)HY(rage)YH( comme dans le )0 69 1 A(Chapitre\2407, )I(Scripts de d\351mar)HY(rage)YH( pour LVM\2401)ES()69 0 TN TL()Ec /AF f D(. )EP()0 P()-1 LI( )BD(D\351mar)HY(rer)YH( avec le nouveau noyau)ES( )EP()0 P( Assurez-vous que le char)HY(geur)YH( d'amor\347age est confi)HY(gur\351)YH( pour charger le nouveau noyau avec LVM et, si vous utili)HY(sez)YH( des modules, que la commande )BD(insmod lvm-mod)ES( soit dans le script de d\351mar)HY(rage)YH( ou que les lignes suivantes soient ajou)HY(t\351es)YH( dans )SM(/etc/modules.conf)ES( \201ancien)HY(ne)HY(ment)YH( appel\351 )SM(/etc/conf.modules)ES(\202 pour permettre \340 modprobe de charger le module LVM \201n'oubliez pas d'activer kmod\202\240: )EP() 2 33 PR(alias block-major-58 lvm-mod alias char-major-109 lvm-mod)RP()0 P( Red\351)HY(mar)HY(rez)YH( la machine et appr\351)HY(ciez)YH(. )EP()LO()BR( )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 59 H(2.\240Migrer)WB 252 Sn()WB 83 Sn( vers LVM\2401.0.8 avec une parti)HY(tion)YH( racine en LVM et initrd)EH()BR()BR()BR()0 P( La proc\351)HY(dure)YH( est rela)HY(ti)HY(ve)HY(ment)YH( simple si elle est suivie avec atten)HY(tion)YH(. Il est recom)HY(mand\351)YH( de faire une bonne sauve)HY(garde)YH( avec une disquette de d\351mar)HY(rage)YH( de secours, juste au cas o\371. )EP()0 P( L'utili)HY(sa)HY(tion)YH( \253\240normale\240\273 de LVM sur le syst\350me de fichiers racine est d'avoir une seule parti)HY(tion)YH( non LVM appel\351e )SM(/boot)ES( qui contient le noyau et une image disque RAM d'initia)HY(li)HY(sa)HY(tion)YH(, n\351ces)HY(saire)YH( pour d\351mar)HY(rer)YH( le syst\350me. Le syst\350me que j'ai mis \340 jour \351tait comme suit\240: )EP() 7 65 PR(# df Sys. de fich. Blocs-1k Occup\351 Dispo. Cap% Mont\351 sur /dev/rootvg/root 253871 93384 147380 39% / /dev/hda1 17534 12944 3685 78% /boot /dev/rootvg/home 4128448 4568 3914168 0% /home /dev/rootvg/usr 1032088 332716 646944 34% /usr /dev/rootvg/var 253871 31760 209004 13% /var)RP()0 P( )SM(/boot)ES( contient l'ancien noyau et l'image disque RAM d'initia)HY(li)HY(sa)HY(tion)YH( ainsi que les fichiers d'amor\347age de Lilo et les lignes suivantes dans )SM(/etc/lilo.conf)ES(\240: )EP() 12 68 PR(# ls /boot System.map lost+found vmlinux-2.2.16lvm map module-info boot.0300 boot.b os2_d.b chain.b initrd.gz # tail /etc/lilo.conf image=/boot/vmlinux-2.2.16lvm label=lvm08 read-only root=/dev/rootvg/root initrd=/boot/initrd.gz append="ramdisk_size=8192")RP()0 P( )BR()4 OL()0 P()-1 LI( )BD( Compi)HY(ler)YH( le noyau LVM et les modules )ES( )EP()0 P( Suivez les instruc)HY(tions)YH( d\351taill\351es dans les )0 52 1 A(Chapitre\2405, )I(Obtenir LVM)ES()52 0 TN TL()Ec /AF f D( et )0 64 1 A(Section\2402, \253\240Construire le module du noyau pour LVM\2401\240\273)64 0 TN TL()Ec /AF f D( pour obtenir et compi)HY(ler)YH( les compo)HY(sants)YH( noyau n\351ces)HY(saires)YH( pour LVM. )EP()0 P()-1 LI( )BD( Compi)HY(ler)YH( les utili)HY(taires)YH( LVM )ES( )EP()0 P( Suivez les instruc)HY(tions)YH( d\351taill\351es dans le )0 64 1 A(Section\2402, \253\240Construire le module du noyau pour LVM\2401\240\273)64 0 TN TL()Ec /AF f D( pour compi)HY(ler)YH( et instal)HY(ler)YH( les utili)HY(taires)YH( n\351ces)HY(saires)YH( pour LVM. )EP()0 P( Instal)HY(ler)YH( les nouveaux utili)HY(taires)YH(. Une fois cela effec)HY(tu\351)YH(, vous ne pourrez plus faire de mani)HY(pu)HY(la)HY(tions)YH( sur LVM car les utili)HY(taires)YH( ne sont pas compa)HY(tibles)YH( avec le noyau d\351marr\351 actuel)HY(le)HY(ment)YH(. )EP()0 P()-1 LI( )BD( Renom)HY(mer)YH( le fichier initrd.gz exis)HY(tant)YH( )ES( )EP()0 P( Cela permet qu'il ne soit pas \351cras\351 par le nouveau fichier. )EP() 1 38 PR(# mv /boot/initrd.gz /boot/initrd08.gz)RP()0 P()-1 LI( )BD( Modi)HY(fier)YH( )SM(/etc/lilo.conf)ES( )ES( )EP()0 P( Faites pointer l'entr\351e de d\351mar)HY(rage)YH( exis)HY(tante)YH( vers le fichier renomm\351. Vous devrez red\351)HY(mar)HY(rer)YH( en utili)HY(sant)YH( cela si quelque chose se passe mal. L'entr\351e modi)HY(fi\351e)YH( devrait ressem)HY(bler)YH( \340 cela\240: )EP() 6 34 PR(image=/boot/vmlinux-2.2.16lvm label=lvm08 read-only root=/dev/rootvg/root initrd=/boot/initrd08.gz append="ramdisk_size=8192")RP()0 P()-1 LI( )BD( Lancer lvmcreate_initrd pour cr\351er une nouvelle image disque RAM d'initia)HY(li)HY(sa)HY(tion)YH( )ES( )EP() 1 24 PR(# lvmcreate_initrd 2.4.9)RP()0 P( N'oubliez pas de sp\351ci)HY(fier)YH( la nouvelle version du noyau afin qu'il prenne les bons modules. )EP()0 P()-1 LI( )BD( Ajouter une nouvelle entr\351e dans /etc/lilo.conf )ES( )EP()0 P( Cette nouvelle entr\351e sert \340 d\351mar)HY(rer)YH( avec le nouveau noyau et le nouvel initrd. )EP() 6 28 PR(image=/boot/vmlinux-2.4.9lvm label=lvm10 read-only root=/dev/rootvg/root initrd=/boot/initrd.gz append="ramdisk_size=8192")RP()0 P()-1 LI( )BD( Relan)HY(cer)YH( lilo )ES( )EP()0 P( Cela installe le nouveau bloc d'amor\347age )EP() 1 12 PR(# /sbin/lilo)RP()0 P()-1 LI( )BD( Red\351)HY(mar)HY(rer)YH( la machine )ES( )EP()0 P( Lorsque vous avez l'\351cran de s\351lec)HY(tion)YH( de Lilo, choi)HY(sis)HY(sez)YH( la nouvelle entr\351e \201lvm10 dans cet exemple\202 et le syst\350me devrait d\351mar)HY(rer)YH( avec un Linux utili)HY(sant)YH( la nouvelle version de LVM. )EP()0 P( Si le nouveau noyau ne d\351marre pas, alors d\351mar)HY(rez)YH( avec l'ancien et essayez de corri)HY(ger)YH( le probl\350me. Cela peut prove)HY(nir)YH( du noyau qui n'aurait pas tous les pilotes de p\351ri)HY(ph\351)HY(riques)YH( correc)HY(te)HY(ment)YH( compi)HY(l\351s)YH( ou bien qu'ils ne sont pas dispo)HY(nibles)YH( dans initrd. Souve)HY(nez)YH(-vous que tous les pilotes \201except\351 pour LVM\202 qui sont n\351ces)HY(saires)YH( pour acc\351der au p\351ri)HY(ph\351)HY(rique)YH( racine doivent \352tre compi)HY(l\351s)YH( en dur dans le noyau et non en tant que modules. )EP()0 P( Si vous avez besoin d'effec)HY(tuer)YH( des mani)HY(pu)HY(la)HY(tions)YH( avec LVM lorsque vous avez red\351)HY(marr\351)YH( sur l'ancienne version, il vous faut juste recom)HY(pi)HY(ler)YH( les anciens utili)HY(taires)YH( et les instal)HY(ler)YH( avec\240: )EP() 1 14 PR(# make install)RP()0 P( Si vous faites cela, n'oubliez pas de r\351ins)HY(tal)HY(ler)YH( la nouvelle version lorsque vous red\351)HY(mar)HY(re)HY(rez)YH( avec le nouveau LVM. )EP()LO()BR( Une fois satis)HY(fait)YH( de la nouvelle instal)HY(la)HY(tion)YH(, pensez \340 modi)HY(fier)YH( l'entr\351e \253\240default=\240\273 dans le fichier lilo.conf pour mettre par d\351faut le nouveau noyau. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 60 H(Chapitre\24011.\240T\342ches)WB 253 Sn()WB 84 Sn( courantes)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 85 1 A(1. Initia)HY(li)HY(ser)YH( des disques ou des parti)HY(tions)YH( de disques)85 0 TN TL()Ec /AF f D()0 DT()0 86 1 A(2. Cr\351er un groupe de volumes)86 0 TN TL()Ec /AF f D()0 DT()0 87 1 A(3. Activer un groupe de volumes)87 0 TN TL()Ec /AF f D()0 DT()0 88 1 A(4. Enlever un groupe de volumes)88 0 TN TL()Ec /AF f D()0 DT()0 89 1 A(5. Ajouter un volume physique \340 un groupe de volumes)89 0 TN TL()Ec /AF f D()0 DT()0 90 1 A(6. Suppri)HY(mer)YH( un volume physique d'un groupe de volumes)90 0 TN TL()Ec /AF f D()0 DT()0 91 1 A(7. Cr\351er un volume logique)91 0 TN TL()Ec /AF f D()0 DT()0 92 1 A(8. Suppri)HY(mer)YH( un volume logique)92 0 TN TL()Ec /AF f D()0 DT()0 93 1 A(9. \311tendre un volume logique)93 0 TN TL()Ec /AF f D()0 DT()0 94 1 A(10. R\351duire un volume logique)94 0 TN TL()Ec /AF f D()0 DT()0 95 1 A(11. Migrer des donn\351es hors d'un volume physique)95 0 TN TL()Ec /AF f D()LD()BR()0 P( Ce chapitre d\351taille quelques op\351ra)HY(tions)YH( courantes sur un syst\350me LVM. )EM(Cela ne remplace pas la lecture des pages de man.)ES( )EP()2 Sl()BR()BR()BR()BR()0 2 61 H(1.\240Initia)WB 254 Sn()HY(li)HY(ser)YH()WB 85 Sn( des disques ou des parti)HY(tions)YH( de disques)EH()BR()BR()BR()0 P( Avant de pouvoir utili)HY(ser)YH( un disque ou une parti)HY(tion)YH( comme volume physique, il faut l'initia)HY(li)HY(ser)YH(\240: )EP()0 P( Pour un disque entier\240: )BR()UL()0 P()-1 LI( Lancez pvcreate sur le disque\240: )EP() 1 19 PR(# pvcreate /dev/hdb)RP()0 P( Cela cr\351e un descrip)HY(teur)YH( de groupe de volumes au d\351but du disque. )EP()BR()12 PT()BR()0 P()-1 LI( Si vous obtenez une erreur indiquant que LVM ne peut pas initia)HY(li)HY(ser)YH( un disque qui poss\350de d\351j\340 une table de parti)HY(tion)YH(, v\351ri)HY(fiez)YH( tout d'abord que vous \352tes en train d'utili)HY(ser)YH( le bon disque. Si vous en \352tes vrai)HY(ment)YH( s\373r, effec)HY(tuez)YH( les commandes suivantes\240: )BR()13 PT()BR( )EP() 2 51 PR(# dd if=/dev/zero of=/dev/nomdudisque bs=1k count=1 # blockdev --rereadpt /dev/nomdudisque)RP()LU()BR( Pour les parti)HY(tions)YH(\240: )BR()UL()0 P()-1 LI( Quand vous utili)HY(sez)YH( LVM\2401 sur des PC avec des parti)HY(tions)YH( DOS, mettez le type de la parti)HY(tion)YH( \340 0x8e avec fdisk ou un programme simi)HY(laire)YH(. Ceci n'est pas n\351ces)HY(saire)YH( avec un syst\350me PPC ou avec LVM\2402. )EP()0 P()-1 LI( Lancez pvcreate sur la parti)HY(tion)YH(\240: ) 1 20 PR(# pvcreate /dev/hdb1)RP( Cela cr\351e un descrip)HY(teur)YH( de groupe de volumes au d\351but de la parti)HY(tion)YH( /dev/hdb1. )EP()LU()BR( )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 62 H(2.\240Cr\351er)WB 255 Sn()WB 86 Sn( un groupe de volumes)EH()BR()BR()BR()0 P( Utili)HY(sez)YH( le programme )BD(vgcreate)ES(\240: )EP() 1 52 PR(# vgcreate mon_groupe_de_volumes /dev/hda1 /dev/hdb1)RP()0 P( )EM(Remarque\240:)ES( Si vous utili)HY(sez)YH( devfs, il est primor)HY(dial)YH( d'utili)HY(ser)YH( le nom complet du p\351ri)HY(ph\351)HY(rique)YH( devfs plut\364t que le lien symbo)HY(lique)YH( dans )SM(/dev)ES(. Par cons\351)HY(quent)YH( la commande pr\351c\351)HY(dente)YH( devient\240: )EP() 3 45 PR(# vgcreate mon_groupe_de_volumes \200\200 /dev/ide/host0/bus0/target0/lun0/part1 \200\200 /dev/ide/host0/bus0/target1/lun0/part1)RP()0 P( LVM\2402 n'a pas cette restric)HY(tion)YH(. )EP()0 P( Vous pouvez aussi pr\351ci)HY(ser)YH( la taille des extents avec l'option \253\240-s\240\273 de cette commande si la valeur par d\351faut de 32\240Mo ne vous convient pas. De plus, vous pouvez mettre des limites sur le nombre de volumes physiques et logiques que le volume peut conte)HY(nir)YH(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 63 H(3.\240Activer)WB 256 Sn()WB 87 Sn( un groupe de volumes)EH()BR()BR()BR()0 P( Apr\350s un red\351)HY(mar)HY(rage)YH( ou la commande )BD(vgchange -an)ES(, les VG et LV ne sont plus acces)HY(sibles)YH(. Pour r\351ac)HY(ti)HY(ver)YH( le groupe de volumes, ex\351cu)HY(tez)YH(\240: )EP() 1 37 PR(# vgchange -a y mon_groupe_de_volumes)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 64 H(4.\240Enlever)WB 257 Sn()WB 88 Sn( un groupe de volumes)EH()BR()BR()BR()0 P( Assurez-vous qu'aucun volume logique n'est pr\351sent dans le groupe de volumes, voir les sections suivantes pour savoir comment faire. )EP()0 P( D\351sac)HY(ti)HY(vez)YH( le groupe de volumes\240: )EP() 1 37 PR(# vgchange -a n mon_groupe_de_volumes)RP()0 P( Main)HY(te)HY(nant)YH(, vous pouvez suppri)HY(mer)YH( le groupe de volumes\240: )EP() 1 32 PR(# vgremove mon_groupe_de_volumes)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 65 H(5.\240Ajouter)WB 258 Sn()WB 89 Sn( un volume physique \340 un groupe de volumes)EH()BR()BR()BR()0 P( Utili)HY(sez)YH( \253\240vgex)HY(tend)YH(\240\273 pour ajouter un volume physique d\351j\340 initia)HY(lis\351)YH( \340 un groupe de volumes exis)HY(tant)YH(. )EP() 3 56 PR(# vgextend mon_groupe_de_volumes /dev/hdc1 ^^^^^^^^^ nouveau volume physique)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 66 H(6.\240Suppri)WB 259 Sn()HY(mer)YH()WB 90 Sn( un volume physique d'un groupe de volumes)EH()BR()BR()BR()0 P( La commande \253\240pvdis)HY(play)YH(\240\273 permet de s'assurer que le volume physique n'est utilis\351 par aucun volume logique\240: )EP() 14 61 PR(# pvdisplay /dev/hda1 --- Physical volume --- PV Name /dev/hda1 VG Name myvg PV Size 1.95 GB / NOT usable 4 MB [LVM: 122 KB] PV# 1 PV Status available Allocatable yes \201but full\202 Cur LV 1 PE Size \201KByte\202 4096 Total PE 499 Free PE 0 Allocated PE 499 PV UUID Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7)RP()0 P( Si le volume physique est encore utilis\351, il faut migrer les donn\351es vers un autre volume physique. )EP()0 P( Utili)HY(sez)YH( ensuite \253\240vgre)HY(duce)YH(\240\273 pour enlever le volume physique\240: )EP() 1 42 PR(# vgreduce mon_groupe_de_volumes /dev/hda1)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 67 H(7.\240Cr\351er)WB 260 Sn()WB 91 Sn( un volume logique)EH()BR()BR()BR()0 P( Pour cr\351er un LV \253\240testlv\240\273 lin\351aire de 1\240500\240Mo et son p\351ri)HY(ph\351)HY(rique)YH( sp\351cial \253\240/dev/testvg/testlv\240\273\240: )EP() 1 33 PR(# lvcreate -L1500 -ntestlv testvg)RP()0 P( Pour cr\351er un volume logique de 100 LE avec 2 blocs r\351par)HY(tis)YH( et une taille de bloc de 4\240Ko\240: )EP() 1 47 PR(# lvcreate -i2 -I4 -l100 -nunautretestlv testvg)RP()0 P( Pour cr\351er un LV qui utilise tout le VG, utili)HY(sez)YH( vgdis)HY(play)YH( pour trouver la valeur de \253\240Total PE\240\273, puis utili)HY(sez)YH(-la avec lvcreate. )EP() 3 36 PR(# vgdisplay testvg | grep "Total PE" Total PE 10230 # lvcreate -l 10230 testvg -n monlv)RP()0 P( Cela cr\351era un LV appel\351 )BD(monlv)ES( qui remplira la tota)HY(lit\351)YH( du VG )BD(testvg)ES(. )EP()0 P( Si vous d\351sirez allouer le volume logique sur un volume physique pr\351cis, il faut sp\351ci)HY(fier)YH( le nom du ou des PV \340 la fin de la commande lvcreate. )EP() 1 43 PR(# lvcreate -L 1500 -ntestlv testvg /dev/sdg)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 68 H(8.\240Suppri)WB 261 Sn()HY(mer)YH()WB 92 Sn( un volume logique)EH()BR()BR()BR()0 P( Un volume logique doit \352tre d\351mont\351 avant d'\352tre supprim\351\240: )EP() 5 71 PR(# umount /dev/monvg/homevol # lvremove /dev/monvg/homevol lvremove -- do you really want to remove "/dev/monvg/homevol"? [y/n]: )EM()SM(y)ES()ES( lvremove -- doing automatic backup of volume group "monvg" lvremove -- logical volume "/dev/monvg/homevol" successfully removed)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 69 H(9.\240\311tendre)WB 262 Sn()WB 93 Sn( un volume logique)EH()BR()BR()BR()0 P( Pour \351tendre un volume logique, il suffit de dire \340 lvex)HY(tend)YH( de combien vous voulez augmen)HY(ter)YH( la taille. Vous pouvez sp\351ci)HY(fier)YH( la quan)HY(tit\351)YH( d'espace \340 ajouter ou bien la taille finale du volume logique\240: )EP() 4 69 PR(# lvextend -L12G /dev/monvg/homevol lvextend -- extending logical volume "/dev/monvg/homevol" to 12 GB lvextend -- doing automatic backup of volume group "monvg" lvextend -- logical volume "/dev/monvg/homevol" successfully extended)RP()0 P( \351tend )SM(/dev/monvg/homevol)ES( jusqu'\340 12\240Go. )EP() 4 69 PR(# lvextend -L+1G /dev/monvg/homevol lvextend -- extending logical volume "/dev/monvg/homevol" to 13 GB lvextend -- doing automatic backup of volume group "monvg" lvextend -- logical volume "/dev/monvg/homevol" successfully extended)RP()0 P( ajoute 1\240Go \340 )SM(/dev/monvg/homevol)ES(. )EP()0 P( Une fois le volume logique \351tendu, il est n\351ces)HY(saire)YH( d'augmen)HY(ter)YH( la taille du syst\350me de fichiers \340 la taille corres)HY(pon)HY(dante)YH(. La proc\351)HY(dure)YH( \340 suivre d\351pend du type de syst\350me de fichiers utilis\351. )EP()0 P( Par d\351faut, la plupart des utili)HY(taires)YH( de redi)HY(men)HY(sion)HY(ne)HY(ment)YH( de syst\350mes de fichiers vont augmen)HY(ter)YH( leur taille suivant la taille du volume logique corres)HY(pon)HY(dant)YH(. Vous n'avez donc pas \340 vous occuper de sp\351ci)HY(fier)YH( la m\352me taille pour les deux commandes. )EP()BR()4 OL()0 P()-1 LI( )BD(ext2/ext3)ES( )EP()0 P( \300 moins que vous n'ayez un noyau avec le correc)HY(tif)YH( ext2online, il est n\351ces)HY(saire)YH( de d\351mon)HY(ter)YH( le syst\350me de fichiers avant le redi)HY(men)HY(sion)HY(ne)HY(ment)YH(. \201Il semble que le patch de redi)HY(men)HY(sion)HY(ne)HY(ment)YH( \340 chaud soit dange)HY(reux)YH(, donc \340 utili)HY(ser)YH( \340 vos risques et p\351rils.\202 )EP() 3 32 PR(# umount /dev/monvg/homevol # ext2resize /dev/monvg/homevol # mount /dev/monvg/homevol /home)RP()0 P( Si vous n'avez pas e2fsprogs 1.19 ou sup\351)HY(rieur)YH(, la commande ext2resize est dispo)HY(nible)YH( sur )R13 2 A(ext2resize.sour)HY(ce)HY(forge)YH(.net)EA(. Utili)HY(sez)YH(-la ensuite\240: )EP() 3 32 PR(# umount /dev/monvg/homevol # resize2fs /dev/monvg/homevol # mount /dev/monvg/homevol /home)RP()0 P( Pour ext2, il y a une solu)HY(tion)YH( plus simple\240: LVM\2401 fournit un utili)HY(taire)YH( appel\351 e2fsadm qui effec)HY(tue)YH( le lvex)HY(tend)YH( et le resize2fs pour vous \201et peut aussi faire la r\351duc)HY(tion)YH(, voir le chapitre suivant\202. )BR()14 PT()BR( La commande unique devient\240: )EP() 1 34 PR(# e2fsadm -L+1G /dev/monvg/homevol)RP()0 P( qui est \351qui)HY(va)HY(lente)YH( \340\240: )EP() 2 35 PR(# lvextend -L+1G /dev/monvg/homevol # resize2fs /dev/monvg/homevol)RP()0 P( )BR()15 PT()BR( )EP()0 P()-1 LI( )BD(reiserfs)ES( )EP()0 P( Le syst\350me de fichiers Reiserfs peut \352tre redi)HY(men)HY(sionn\351)YH( mont\351 ou d\351mont\351, comme vous le pr\351f\351)HY(rez)YH(\240: )BR()UL()0 P()-1 LI( en fonc)HY(tion)HY(ne)HY(ment)YH(\240: )EP() 1 39 PR(# resize_reiserfs -f /dev/monvg/homevol)RP()0 P()-1 LI( hors fonc)HY(tion)HY(ne)HY(ment)YH(\240: )EP() 3 43 PR(# umount /dev/monvg/homevol # resize_reiserfs /dev/monvg/homevol # mount -treiserfs /dev/monvg/homevol /home)RP()LU()BR( )EP()0 P()-1 LI( )BD(xfs)ES( )EP()0 P( Les syst\350mes de fichiers XFS doivent \352tre mont\351s pour \352tre redi)HY(men)HY(sion)HY(n\351s)YH( et le point de montage doit \352tre donn\351 \340 la place du nom de p\351ri)HY(ph\351)HY(rique)YH(. )EP() 1 18 PR(# xfs_growfs /home)RP()0 P()-1 LI( )BD(jfs)ES( )EP()0 P( Comme XFS, le syst\350me de fichiers JFS doit \352tre mont\351 pour \352tre redi)HY(men)HY(sionn\351)YH( et le point de montage doit \352tre sp\351ci)HY(fi\351)YH( plut\364t que le nom du p\351ri)HY(ph\351)HY(rique)YH(. Il vous faut au minimum la version 1.0.21 de jfs-utils pour cela. )EP() 1 31 PR(# mount -o remount,resize /home)RP()BR()16 PT()BR()LO()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 70 H(10.\240R\351duire)WB 263 Sn()WB 94 Sn( un volume logique)EH()BR()BR()BR()0 P( Les volumes logiques peuvent \352tre r\351duits de la m\352me fa\347on qu'ils peuvent \352tre agran)HY(dis)YH(. Cepen)HY(dant)YH(, il est )EM(tr\350s)ES( impor)HY(tant)YH( de se souve)HY(nir)YH( qu'il faut r\351duire la taille du syst\350me de fichiers ou de toute autre chose r\351si)HY(dant)YH( sur le volume avant de le r\351duire lui-m\352me. Autre)HY(ment)YH(, vous risquez de perdre des donn\351es. )EP()BR()4 OL()0 P()-1 LI( )BD(ext2)ES( )EP()0 P( Si vous utili)HY(sez)YH( LVM\2401 avec le syst\350me de fichiers ext2, vous pouvez utili)HY(ser)YH( e2fsadm comme mentionn\351 pr\351c\351)HY(dem)HY(ment)YH( pour effec)HY(tuer)YH( les deux commandes de r\351duc)HY(tion)YH( du syst\350me de fichiers et de r\351duc)HY(tion)YH( du volume\240: )EP() 3 34 PR(# umount /home # e2fsadm -L-1G /dev/monvg/homevol # mount /home)RP()BR()17 PT()BR()0 P( Si vous pr\351f\351)HY(rez)YH( faire cela manuel)HY(le)HY(ment)YH(, vous devez conna\356tre la nouvelle taille du volume en blocs et utili)HY(ser)YH( les commandes suivantes\240: )EP() 4 37 PR(# umount /home # resize2fs /dev/monvg/homevol 524288 # lvreduce -L-1G /dev/monvg/homevol # mount /home)RP()0 P()-1 LI( )BD(reiserfs)ES( )EP()0 P( Il semble que Reiserfs pr\351f\350re \352tre d\351mont\351 avant d'\352tre r\351duit\240: )EP() 4 43 PR(# umount /home # resize_reiserfs -s-1G /dev/monvg/homevol # lvreduce -L-1G /dev/monvg/homevol # mount -treiserfs /dev/monvg/homevol /home)RP()0 P()-1 LI( )BD(xfs)ES( )EP()0 P( Il n'y a pas moyen de r\351duire un syst\350me de fichiers XFS. )EP()0 P()-1 LI( )BD(jfs)ES( )EP()0 P( Il n'y a pas moyen de r\351duire un syst\350me de fichiers JFS. )EP()LO()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 71 H(11.\240Migrer)WB 264 Sn()WB 95 Sn( des donn\351es hors d'un volume physique)EH()BR()BR()BR()0 P( Pour mettre un disque hors service, il faut au pr\351a)HY(lable)YH( d\351pla)HY(cer)YH( tous ses extents physiques sur d'autres disques du groupe de volumes. Il doit y avoir assez d'extents physiques libres sur les PV qui restent pour accueillir les extents prove)HY(nant)YH( du disque \340 enlever. Pour plus de d\351tails, voir la )0 123 1 A(Section\2405, \253\240Enlever un disque\240\273)123 0 TN TL()Ec /AF f D(. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 72 H(Chapitre\24012.\240Parti)WB 265 Sn()HY(tion)HY(ne)HY(ment)YH()WB 96 Sn( de disques)EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 97 1 A(1. Plusieurs parti)HY(tions)YH( sur le m\352me disque)97 0 TN TL()Ec /AF f D()0 DT()0 98 1 A(2. \311tiquettes de disque Sun \201Sun disk labels\202)98 0 TN TL()Ec /AF f D()LD()BR()2 Sl()BR()BR()BR()BR()0 2 73 H(1.\240Plusieurs)WB 266 Sn()WB 97 Sn( parti)HY(tions)YH( sur le m\352me disque)EH()BR()BR()BR()0 P( Le LVM permet de cr\351er des PV \201volumes physiques\202 sur presque tous les p\351ri)HY(ph\351)HY(riques)YH( par blocs. Par exemple, les commandes suivantes sont valides et vont tr\350s bien fonc)HY(tion)HY(ner)YH( dans un envi)HY(ron)HY(ne)HY(ment)YH( LVM\240: )EP() 5 20 PR(# pvcreate /dev/sda1 # pvcreate /dev/sdf # pvcreate /dev/hda8 # pvcreate /dev/hda6 # pvcreate /dev/md1)RP()0 P( Dans un envi)HY(ron)HY(ne)HY(ment)YH( de produc)HY(tion)YH( \253\240normal\240\273, il est recom)HY(mand\351)YH( de n'avoir qu'un seul PV par disque r\351el pour les raisons suivantes\240: )BR()UL()0 P()-1 LI( Faci)HY(lit\351)YH( d'admi)HY(nis)HY(tra)HY(tion)YH(. )EP()0 P( Il est plus simple de g\351rer le mat\351)HY(riel)YH( du syst\350me si chaque disque r\351el n'appa)HY(ra\356t)YH( qu'en un seul endroit. C'est parti)HY(cu)HY(li\350)HY(re)HY(ment)YH( vrai en cas de probl\350me sur le disque. )EP()0 P()-1 LI( \311viter les probl\350mes de perfor)HY(mances)YH( avec la r\351par)HY(ti)HY(tion)YH(. )EP()0 P( LVM ne sait pas dire si deux PV sont sur le m\352me disque physique. Donc si vous cr\351ez des LV r\351par)HY(tis)YH(, les blocs peuvent tr\350s bien \352tre sur diff\351)HY(rentes)YH( parti)HY(tions)YH( du m\352me disque, ce qui entra\356ne une )BD(dimi)HY(nu)HY(tion)YH()ES( des perfor)HY(mances)YH(, plut\364t qu'une augmen)HY(ta)HY(tion)YH(. )EP()LU()BR( Cepen)HY(dant)YH(, il peut \352tre souhai)HY(table)YH( de le faire pour certaines raisons\240: )BR()UL()0 P()-1 LI( La migra)HY(tion)YH( d'un syst\350me exis)HY(tant)YH( vers LVM. )EP()0 P( Sur un syst\350me avec peu de disques, il peut \352tre n\351ces)HY(saire)YH( de d\351pla)HY(cer)YH( des donn\351es entre les parti)HY(tions)YH( pour effec)HY(tuer)YH( la conver)HY(sion)YH( \201cf. la )0 146 1 A(Section\2408, \253\240Conver)HY(tir)YH( le syst\350me de fichiers racine en LVM\2401\240\273)146 0 TN TL()Ec /AF f D(\202. )EP()0 P()-1 LI( S\351parer un gros disque dans plusieurs groupes de volumes. )EP()0 P( Si vous avez un tr\350s gros disque et que vous voulez plus d'un groupe de volumes pour des raisons d'admi)HY(nis)HY(tra)HY(tion)YH(, alors il est n\351ces)HY(saire)YH( de faire plusieurs parti)HY(tions)YH( sur le disque. )EP()LU()BR( )EP()0 P( Si vous avez un disque avec plus d'une parti)HY(tion)YH( et que ces parti)HY(tions)YH( sont dans le m\352me groupe de volumes, faites atten)HY(tion)YH( \340 bien sp\351ci)HY(fier)YH( les parti)HY(tions)YH( qui doivent \352tre incluses dans le volume logique lorsque vous cr\351ez des volumes r\351par)HY(tis)YH(. )EP()0 P( Il est recom)HY(mand\351)YH( d'utili)HY(ser)YH( une seule parti)HY(tion)YH( qui couvre l'ensemble du disque physique. Cela \351vite des acci)HY(dents)YH( avec les n\275uds des p\351ri)HY(ph\351)HY(riques)YH( du disque et \351vite les messages d'alerte du noyau au d\351mar)HY(rage)YH( \340 propos de types de parti)HY(tions)YH( incon)HY(nus)YH(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 74 H(2.\240\311tiquettes)WB 267 Sn()WB 98 Sn( de disque Sun \201Sun disk labels\202)EH()BR()BR()BR()0 P( Il faut porter une atten)HY(tion)YH( parti)HY(cu)HY(li\350re)YH( aux syst\350mes SPARC car les disques contiennent des \351tiquettes de disque Sun. )EP()0 P( L'orga)HY(ni)HY(sa)HY(tion)YH( normale des disques munis d'\351tiquettes de disque Sun est de faire commen)HY(cer)YH( la premi\350re parti)HY(tion)YH( \340 partir du bloc z\351ro du disque. Cela implique que l'\351tiquette du disque se trouve en fait sur sa premi\350re parti)HY(tion)YH(. Cela fonc)HY(tionne)YH( parfai)HY(te)HY(ment)YH( avec les syst\350mes de fichiers ext2 \201et c'est essen)HY(tiel)YH( pour amorcer un syst\350me avec avec SILO\202 mais ces parti)HY(tions)YH( ne doivent pas \352tre utili)HY(s\351es)YH( avec LVM car celui-ci commence \340 \351crire au tout d\351but du p\351ri)HY(ph\351)HY(rique)YH( et \351crase alors l'\351tiquette de disque. )EP()0 P( Si vous voulez utili)HY(ser)YH( un disque avec des \351tiquettes de disque Sun, assurez-vous de faire commen)HY(cer)YH( votre parti)HY(tion)YH( \340 partir du cylindre 1 ou sup\351)HY(rieur)YH(. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 75 H(Chapitre\24013.\240Recettes)WB 268 Sn()WB 99 Sn()EH()BR()BR()BR()BR()0 P()BD(Table des mati\350res)ES()EP()0 DL()0 DT()0 100 1 A(1. Mettre en place LVM avec trois disques SCSI)100 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 101 1 A(1.1. Pr\351pa)HY(ra)HY(tion)YH( des disques)101 0 TN TL()Ec /AF f D()0 DT()0 102 1 A(1.2. Confi)HY(gu)HY(ra)HY(tion)YH( du groupe de volumes)102 0 TN TL()Ec /AF f D()0 DT()0 103 1 A(1.3. Cr\351a)HY(tion)YH( du volume logique)103 0 TN TL()Ec /AF f D()0 DT()0 104 1 A(1.4. Cr\351a)HY(tion)YH( du syst\350me de fichiers)104 0 TN TL()Ec /AF f D()0 DT()0 105 1 A(1.5. Test du syst\350me de fichiers)105 0 TN TL()Ec /AF f D()LD()0 DT()0 106 1 A(2. Mise en place de LVM sur trois disques SCSI avec r\351par)HY(ti)HY(tion)YH( \201stri)HY(ping)YH(\202)106 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 107 1 A(2.1. Pr\351pa)HY(ra)HY(tion)YH( des parti)HY(tions)YH( de disque)107 0 TN TL()Ec /AF f D()0 DT()0 108 1 A(2.2. Confi)HY(gu)HY(ra)HY(tion)YH( du groupe de volumes)108 0 TN TL()Ec /AF f D()0 DT()0 109 1 A(2.3. Cr\351a)HY(tion)YH( du volume logique)109 0 TN TL()Ec /AF f D()0 DT()0 110 1 A(2.4. Cr\351a)HY(tion)YH( du syst\350me de fichiers)110 0 TN TL()Ec /AF f D()0 DT()0 111 1 A(2.5. Test du syst\350me de fichiers)111 0 TN TL()Ec /AF f D()LD()0 DT()0 112 1 A(3. Ajouter un nouveau disque dans un syst\350me avec plusieurs disques SCSI)112 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 113 1 A(3.1. Situa)HY(tion)YH( actuelle)113 0 TN TL()Ec /AF f D()0 DT()0 114 1 A(3.2. Pr\351pa)HY(ra)HY(tion)YH( du parti)HY(tion)HY(ne)HY(ment)YH( du disque)114 0 TN TL()Ec /AF f D()0 DT()0 115 1 A(3.3. Ajout des nouvelles parti)HY(tions)YH( au groupe de volumes)115 0 TN TL()Ec /AF f D()0 DT()0 116 1 A(3.4. Exten)HY(sion)YH( des syst\350mes de fichiers)116 0 TN TL()Ec /AF f D()0 DT()0 117 1 A(3.5. Remon)HY(tage)YH( des volumes \351tendus)117 0 TN TL()Ec /AF f D()LD()0 DT()0 118 1 A(4. Faire une sauve)HY(garde)YH( avec un instan)HY(tan\351)YH( \201snap)HY(shot)YH(\202)118 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 119 1 A(4.1. Cr\351er le volume d'instan)HY(tan\351)YH()119 0 TN TL()Ec /AF f D()0 DT()0 120 1 A(4.2. Monter le volume d'instan)HY(tan\351)YH()120 0 TN TL()Ec /AF f D()0 DT()0 121 1 A(4.3. Faire la sauve)HY(garde)YH()121 0 TN TL()Ec /AF f D()0 DT()0 122 1 A(4.4. Suppri)HY(mer)YH( l'instan)HY(tan\351)YH()122 0 TN TL()Ec /AF f D()LD()0 DT()0 123 1 A(5. Enlever un disque)123 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 124 1 A(5.1. Distri)HY(buer)YH( les anciens extents vers des disques exis)HY(tants)YH( du groupe de volumes)124 0 TN TL()Ec /AF f D()0 DT()0 126 1 A(5.2. Distri)HY(buer)YH( les anciens extents sur un nouveau disque de rempla)HY(ce)HY(ment)YH()126 0 TN TL()Ec /AF f D()LD()0 DT()0 131 1 A(6. D\351pla)HY(cer)YH( un groupe de volumes vers un autre syst\350me)131 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 132 1 A(6.1. D\351mon)HY(ter)YH( le syst\350me de fichiers)132 0 TN TL()Ec /AF f D()0 DT()0 133 1 A(6.2. Marquer le groupe de volumes comme inactif)133 0 TN TL()Ec /AF f D()0 DT()0 134 1 A(6.3. Expor)HY(ter)YH( le groupe de volumes)134 0 TN TL()Ec /AF f D()0 DT()0 135 1 A(6.4. Impor)HY(ter)YH( le groupe de volumes)135 0 TN TL()Ec /AF f D()0 DT()0 136 1 A(6.5. Activer le groupe de volumes)136 0 TN TL()Ec /AF f D()0 DT()0 137 1 A(6.6. Monter le syst\350me de fichiers)137 0 TN TL()Ec /AF f D()LD()0 DT()0 138 1 A(7. Diviser un groupe de volumes)138 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 139 1 A(7.1. D\351ter)HY(mi)HY(ner)YH( l'espace libre)139 0 TN TL()Ec /AF f D()0 DT()0 140 1 A(7.2. D\351pla)HY(cer)YH( les donn\351es des disques \340 r\351uti)HY(li)HY(ser)YH()140 0 TN TL()Ec /AF f D()0 DT()0 141 1 A(7.3. Cr\351er un nouveau groupe de volumes)141 0 TN TL()Ec /AF f D()0 DT()0 142 1 A(7.4. Enlever le volume restant)142 0 TN TL()Ec /AF f D()0 DT()0 143 1 A(7.5. Cr\351er le nouveau volume logique)143 0 TN TL()Ec /AF f D()0 DT()0 144 1 A(7.6. Cr\351ez un syst\350me de fichiers sur le volume)144 0 TN TL()Ec /AF f D()0 DT()0 145 1 A(7.7. Montez le nouveau volume)145 0 TN TL()Ec /AF f D()LD()0 DT()0 146 1 A(8. Conver)HY(tir)YH( le syst\350me de fichiers racine en LVM\2401)146 0 TN TL()Ec /AF f D()DD()0 DL()0 DT()0 147 1 A(8.1. D\351mar)HY(rer)YH( en mode mono-utili)HY(sa)HY(teur)YH()147 0 TN TL()Ec /AF f D()0 DT()0 148 1 A(8.2. Utili)HY(ser)YH( Parted)148 0 TN TL()Ec /AF f D()0 DT()0 149 1 A(8.3. Red\351)HY(mar)HY(rer)YH()149 0 TN TL()Ec /AF f D()0 DT()0 150 1 A(8.4. V\351ri)HY(fier)YH( les options de confi)HY(gu)HY(ra)HY(tion)YH( du noyau)150 0 TN TL()Ec /AF f D()0 DT()0 151 1 A(8.5. Ajuster le type de parti)HY(tion)YH()151 0 TN TL()Ec /AF f D()0 DT()0 152 1 A(8.6. Confi)HY(gu)HY(rer)YH( LVM\2401 pour la nouvelle confi)HY(gu)HY(ra)HY(tion)YH()152 0 TN TL()Ec /AF f D()0 DT()0 153 1 A(8.7. Cr\351er le syst\350me de fichiers)153 0 TN TL()Ec /AF f D()0 DT()0 154 1 A(8.8. Mise \340 jour de /etc/fstab)154 0 TN TL()Ec /AF f D()0 DT()0 155 1 A(8.9. Cr\351ez une image disque RAM d'initia)HY(li)HY(sa)HY(tion)YH( pour LVM\2401)155 0 TN TL()Ec /AF f D()0 DT()0 156 1 A(8.10. Mise \340 jour de /etc/lilo.conf)156 0 TN TL()Ec /AF f D()0 DT()0 157 1 A(8.11. Lancez lilo pour \351crire le nouveau secteur de boot)157 0 TN TL()Ec /AF f D()0 DT()0 158 1 A(8.12. Red\351)HY(mar)HY(rer)YH( avec LVM)158 0 TN TL()Ec /AF f D()0 DT()0 159 1 A(8.13. Ajoutez le reste du disque dans LVM)159 0 TN TL()Ec /AF f D()LD()0 DT()0 160 1 A(9. Restau)HY(rer)YH( les m\351ta-donn\351es d'un volume physique)160 0 TN TL()Ec /AF f D()LD()BR()0 P( Ce chapitre d\351taille plusieurs \253\240recettes\240\273 diff\351)HY(rentes)YH( pour mettre en place LVM. L'objec)HY(tif)YH( est que le lecteur puisse adapter ces recettes pour son syst\350me et ses propres besoins. )EP()2 Sl()BR()BR()BR()BR()0 2 76 H(1.\240Mettre)WB 269 Sn()WB 100 Sn( en place LVM avec trois disques SCSI)EH()BR()BR()BR()0 P( Pour cette recette, on dispose de trois disques SCSI qui vont \352tre mis dans un volume logique utili)HY(sant)YH( LVM. Les disques sont /dev/sda, /dev/sdb et /dev/sdc. )EP()2 Sl()BR()BR()BR()BR()0 3 77 H(1.1.\240Pr\351pa)WB 270 Sn()HY(ra)HY(tion)YH()WB 101 Sn( des disques)EH()BR()BR()BR()0 P( Il faut pr\351pa)HY(rer)YH( le disque avant de pouvoir l'utili)HY(ser)YH( dans un groupe de volumes\240: )EP()BR()18 PT()BR()0 P( Lancez pvcreate sur les disques\240: )EP() 3 19 PR(# pvcreate /dev/sda # pvcreate /dev/sdb # pvcreate /dev/sdc)RP()0 P( Cela cr\351e une zone avec les descrip)HY(teurs)YH( de groupes de volumes \201volume group descrip)HY(tor)YH( area, VGDA\202 au d\351but des disques. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 78 H(1.2.\240Confi)WB 271 Sn()HY(gu)HY(ra)HY(tion)YH()WB 102 Sn( du groupe de volumes)EH()BR()BR()BR()BR()4 OL()0 P()-1 LI( Cr\351ez un groupe de volumes )EP() 1 59 PR(# vgcreate mon_groupe_de_volumes /dev/sda /dev/sdb /dev/sdc)RP()0 P()-1 LI( Utili)HY(sez)YH( vgdis)HY(play)YH( pour v\351ri)HY(fier)YH( le groupe de volume )EP() 19 60 PR(# vgdisplay --- Volume Group --- VG Name mon_groupe_de_volumes VG Access read/write VG Status available/resizable VG # 1 MAX LV 256 Cur LV 0 Open LV 0 MAX LV Size 255.99 GB Max PV 256 Cur PV 3 Act PV 3 VG Size 1.45 GB PE Size 4 MB Total PE 372 Alloc PE / Size 0 / 0 Free PE / Size 372/ 1.45 GB VG UUID nP2PY5-5TOS-hLx0-FDu0-2a6N-f37x-0BME0Y)RP()0 P( Le plus impor)HY(tant)YH( est de v\351ri)HY(fier)YH( les trois premiers \351l\351ments et que la taille indiqu\351e par \253\240VG Size\240\273 est bien la taille de vos trois disques r\351unis. )EP()LO()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 79 H(1.3.\240Cr\351a)WB 272 Sn()HY(tion)YH()WB 103 Sn( du volume logique)EH()BR()BR()BR()0 P( Si le groupe de volumes semble correct, il est alors temps de cr\351er un volume logique dessus. )EP()0 P( Vous pouvez choisir la taille que vous voulez pour le volume logique \201de la m\352me mani\350re que vous le feriez dans un envi)HY(ron)HY(ne)HY(ment)YH( non LVM\202. Pour cet exemple, nous allons juste cr\351er un volume logique d'1\240Go dans le groupe de volumes. Nous n'utili)HY(se)HY(rons)YH( pas la r\351par)HY(ti)HY(tion)YH( car il n'est pas actuel)HY(le)HY(ment)YH( possible de rajou)HY(ter)YH( un disque une fois le volume logique cr\351\351. )EP() 3 95 PR(# lvcreate -L1G -nmon_volume_logique mon_groupe_de_volumes lvcreate -- doing automatic backup of "mon_groupe_de_volumes" lvcreate -- logical volume "/dev/mon_groupe_de_volumes/mon_volume_logique" successfully created)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 80 H(1.4.\240Cr\351a)WB 273 Sn()HY(tion)YH()WB 104 Sn( du syst\350me de fichiers)EH()BR()BR()BR()0 P( Cr\351ez un syst\350me de fichiers ext2 dans le volume logique\240: )EP() 17 63 PR(# mke2fs /dev/mon_groupe_de_volumes/mon_volume_logique mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 \201log=2\202 Fragment size=4096 \201log=2\202 131072 inodes, 262144 blocks 13107 blocks \2015.00%\202 reserved for the super user First data block=0 9 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Writing superblocks and filesystem accounting information: done)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 81 H(1.5.\240Test)WB 274 Sn()WB 105 Sn( du syst\350me de fichiers)EH()BR()BR()BR()0 P( Montez le volume logique et v\351ri)HY(fiez)YH( que tout semble correct. )EP() 7 66 PR(# mount /dev/mon_groupe_de_volumes/mon_volume_logique /mnt # df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 1311552 628824 616104 51% / /dev/mon_groupe_de_volumes/mon_volume_logique 1040132 20 987276 0% /mnt)RP()0 P( Si tout s'est pass\351 correc)HY(te)HY(ment)YH(, vous avez d\351sor)HY(mais)YH( un volume logique avec un syst\350me de fichiers ext2 mont\351 dans )SM(/mnt)ES(. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 82 H(2.\240Mise)WB 275 Sn()WB 106 Sn( en place de LVM sur trois disques SCSI avec r\351par)HY(ti)HY(tion)YH( \201stri)HY(ping)YH(\202)EH()BR()BR()BR()0 P( Pour cette recette, on dispose de trois disques SCSI qui vont \352tre mis dans un volume logique en utili)HY(sant)YH( LVM. Les disques sont /dev/sda, /dev/sdb et /dev/sdc. )EP()BR()19 PT()BR()2 Sl()BR()BR()BR()BR()0 3 83 H(2.1.\240Pr\351pa)WB 276 Sn()HY(ra)HY(tion)YH()WB 107 Sn( des parti)HY(tions)YH( de disque)EH()BR()BR()BR()0 P( Il faut pr\351pa)HY(rer)YH( le disque avant de pouvoir l'utili)HY(ser)YH( dans un groupe de volumes\240: )EP()BR()20 PT()BR()0 P( Lancez pvcreate sur les disques\240: )EP() 3 19 PR(# pvcreate /dev/sda # pvcreate /dev/sdb # pvcreate /dev/sdc)RP()0 P( Cela cr\351e une zone de descrip)HY(teurs)YH( de groupes de volumes \201volume group descrip)HY(tor)YH( area, VGDA\202 au d\351but des disques. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 84 H(2.2.\240Confi)WB 277 Sn()HY(gu)HY(ra)HY(tion)YH()WB 108 Sn( du groupe de volumes)EH()BR()BR()BR()BR()4 OL()0 P()-1 LI( Cr\351ez un groupe de volumes )EP() 1 59 PR(# vgcreate mon_groupe_de_volumes /dev/sda /dev/sdb /dev/sdc)RP()0 P()-1 LI( Utili)HY(sez)YH( vgdis)HY(play)YH( pour v\351ri)HY(fier)YH( le groupe de volume )EP() 19 60 PR(# vgdisplay --- Volume Group --- VG Name mon_groupe_de_volumes VG Access read/write VG Status available/resizable VG # 1 MAX LV 256 Cur LV 0 Open LV 0 MAX LV Size 255.99 GB Max PV 256 Cur PV 3 Act PV 3 VG Size 1.45 GB PE Size 4 MB Total PE 372 Alloc PE / Size 0 / 0 Free PE / Size 372/ 1.45 GB VG UUID nP2PY5-5TOS-hLx0-FDu0-2a6N-f37x-0BME0Y)RP()0 P( Le plus impor)HY(tant)YH( est de v\351ri)HY(fier)YH( les trois premiers \351l\351ments et que la taille indiqu\351e par \253\240VG Size\240\273 est bien la taille de vos trois disques r\351unis. )EP()LO()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 85 H(2.3.\240Cr\351a)WB 278 Sn()HY(tion)YH()WB 109 Sn( du volume logique)EH()BR()BR()BR()0 P( Si le groupe de volumes semble correct, il est alors temps de cr\351er un volume logique dessus. )EP()0 P( Vous pouvez choisir la taille que vous voulez pour le volume logique \201de la m\352me mani\350re que vous le feriez sur un envi)HY(ron)HY(ne)HY(ment)YH( non LVM\202. Pour cet exemple, nous allons juste cr\351er un volume logique d'1\240Go sur le groupe de volumes. Le volume logique sera r\351parti en utili)HY(sant)YH( une taille de bloc de 4\240Ko. Cela devrait am\351lio)HY(rer)YH( ses perfor)HY(mances)YH(. )EP() 4 95 PR(# lvcreate -i3 -I4 -L1G -nmon_volume_logique mon_groupe_de_volumes lvcreate -- rounding 1048576 KB to stripe boundary size 1056768 KB / 258 PE lvcreate -- doing automatic backup of "mon_groupe_de_volumes" lvcreate -- logical volume "/dev/mon_groupe_de_volumes/mon_volume_logique" successfully created)RP()BR()21 PT()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 86 H(2.4.\240Cr\351a)WB 279 Sn()HY(tion)YH()WB 110 Sn( du syst\350me de fichiers)EH()BR()BR()BR()0 P( Cr\351ez un syst\350me de fichiers ext2 dans le volume logique\240: )EP() 17 63 PR(# mke2fs /dev/mon_groupe_de_volumes/mon_volume_logique mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 \201log=2\202 Fragment size=4096 \201log=2\202 132192 inodes, 264192 blocks 13209 blocks \2015.00%\202 reserved for the super user First data block=0 9 block groups 32768 blocks per group, 32768 fragments per group 14688 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Writing superblocks and filesystem accounting information: done)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 87 H(2.5.\240Test)WB 280 Sn()WB 111 Sn( du syst\350me de fichiers)EH()BR()BR()BR()0 P( Montez le volume logique et v\351ri)HY(fiez)YH( que tout semble correct. )EP() 1 58 PR(# mount /dev/mon_groupe_de_volumes/mon_volume_logique /mnt)RP() 5 66 PR(# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 1311552 628824 616104 51% / /dev/mon_groupe_de_volumes/mon_volume_logique 1040132 20 987276 0% /mnt)RP()0 P( Si tout s'est pass\351 correc)HY(te)HY(ment)YH(, vous avez d\351sor)HY(mais)YH( un volume logique avec un syst\350me de fichiers ext2 mont\351 dans )SM(/mnt)ES(. )EP()2 Sl()BR()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 2 88 H(3.\240Ajouter)WB 281 Sn()WB 112 Sn( un nouveau disque dans un syst\350me avec plusieurs disques SCSI)EH()BR()BR()BR()2 Sl()BR()BR()BR()BR()0 3 89 H(3.1.\240Situa)WB 282 Sn()HY(tion)YH()WB 113 Sn( actuelle)EH()BR()BR()BR()0 P( Un serveur de donn\351es poss\350de six disques orga)HY(ni)HY(s\351s)YH( de la fa\347on suivante\240: )EP() 19 74 PR(# pvscan pvscan -- ACTIVE PV "/dev/sda" of VG "dev" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sdb" of VG "sales" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sdc" of VG "ops" [1.95 GB / 44 MB free] pvscan -- ACTIVE PV "/dev/sdd" of VG "dev" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sde1" of VG "ops" [996 MB / 52 MB free] pvscan -- ACTIVE PV "/dev/sde2" of VG "sales" [996 MB / 944 MB free] pvscan -- ACTIVE PV "/dev/sdf1" of VG "ops" [996 MB / 0 free] pvscan -- ACTIVE PV "/dev/sdf2" of VG "dev" [996 MB / 72 MB free] pvscan -- total: 8 [11.72 GB] / in use: 8 [11.72 GB] / in no VG: 0 [0] # df Filesystem 1k-blocks Used Available Use% Mounted on /dev/dev/cvs 1342492 516468 757828 41% /mnt/dev/cvs /dev/dev/users 2064208 2060036 4172 100% /mnt/dev/users /dev/dev/build 1548144 1023041 525103 66% /mnt/dev/build /dev/ops/databases 2890692 2302417 588275 79% /mnt/ops/databases /dev/sales/users 2064208 871214 1192994 42% /mnt/sales/users /dev/ops/batch 1032088 897122 134966 86% /mnt/ops/batch)RP()0 P( Comme vous pouvez le voir, les groupes \253\240dev\240\273 et \253\240ops\240\273 sont presque pleins. Un nouveau disque est achet\351 et ajout\351 au syst\350me. Il devient )SM(/dev/sdg)ES(. )EP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 90 H(3.2.\240Pr\351pa)WB 283 Sn()HY(ra)HY(tion)YH()WB 114 Sn( du parti)HY(tion)HY(ne)HY(ment)YH( du disque)EH()BR()BR()BR()0 P( Le nouveau disque doit \352tre partag\351 entre ops et dev. Il est donc parti)HY(tionn\351)YH( en deux volumes physiques /dev/sdg1 et /dev/sdg2\240: )EP() 47 70 PR(# fdisk /dev/sdg Device contains neither a valid DOS partition table, nor Sun or SGI disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Command \201m for help\202: n Command action e extended p primary partition \2011-4\202 p Partition number \2011-4\202: 1 First cylinder \2011-1000, default 1\202: Using default value 1 Last cylinder or +size or +sizeM or +sizeK \2011-1000, default 1000\202: 500 Command \201m for help\202: n Command action e extended p primary partition \2011-4\202 p Partition number \2011-4\202: 2 First cylinder \201501-1000, default 501\202: Using default value 501 Last cylinder or +size or +sizeM or +sizeK \201501-1000, default 1000\202: Using default value 1000 Command \201m for help\202: t)WR( Partition number \2011-4\202: 1 Hex code \201type L to list codes\202: 8e Changed system type of partition 1 to 8e \201Unknown\202 Command \201m for help\202: t Partition number \2011-4\202: 2 Hex code \201type L to list codes\202: 8e Changed system type of partition 2 to 8e \201Unknown\202 Command \201m for help\202: w The partition table has been altered! Calling ioctl\201\202 to re-read partition table. WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information.)RP()0 P( Ensuite, les volumes physiques sont cr\351\351s sur cette parti)HY(tion)YH(\240: )EP() 5 60 PR(# pvcreate /dev/sdg1 pvcreate -- physical volume "/dev/sdg1" successfully created # pvcreate /dev/sdg2 pvcreate -- physical volume "/dev/sdg2" successfully created)RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 91 H(3.3.\240Ajout)WB 284 Sn()WB 115 Sn( des nouvelles parti)HY(tions)YH( au groupe de volumes)EH()BR()BR()BR()0 P( Les volumes sont ensuite ajout\351s aux groupes de volumes dev et ops\240: )EP() 23 72 PR(# vgextend ops /dev/sdg1 vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte vgextend -- doing automatic backup of volume group "ops" vgextend -- volume group "ops" successfully extended # vgextend dev /dev/sdg2 vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte vgextend -- doing automatic backup of volume group "dev" vgextend -- volume group "dev" successfully extended # pvscan pvscan -- reading all physical volumes \201this may take a while...\202 pvscan -- ACTIVE PV "/dev/sda" of VG "dev" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sdb" of VG "sales" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sdc" of VG "ops" [1.95 GB / 44 MB free] pvscan -- ACTIVE PV "/dev/sdd" of VG "dev" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sde1" of VG "ops" [996 MB / 52 MB free] pvscan -- ACTIVE PV "/dev/sde2" of VG "sales" [996 MB / 944 MB free] pvscan -- ACTIVE PV "/dev/sdf1" of VG "ops" [996 MB / 0 free] pvscan -- ACTIVE PV "/dev/sdf2" of VG "dev" [996 MB / 72 MB free] pvscan -- ACTIVE PV "/dev/sdg1" of VG "ops" [996 MB / 996 MB free] pvscan -- ACTIVE PV "/dev/sdg2" of VG "dev" [996 MB / 996 MB free] pvscan -- total: 10 [13.67 GB] / in use: 10 [13.67 GB] / in no VG: 0 [0])RP()2 Sl()BR()2 Sl()BR()BR()BR()BR()0 3 92 H(3.4.\240Exten)WB 285 Sn()HY(sion)YH()WB 116 Sn( des syst\350mes de fichiers)EH()BR()BR()BR()0 P( L'action suivante est d'\351tendre les syst\350mes de fichiers pour que de l'espace disque suppl\351)HY(men)HY(taire)YH( soit dispo)HY(nible)YH( aux utili)HY(sa)HY(teurs)YH(. )EP()0 P( Il existe des outils qui permettent le redi)HY(men)HY(sion)HY(ne)HY(ment)YH( \340 chaud des syst\350mes de fichiers ext2, mais nous utili)HY(sons)YH( ici la m\351thode la plus s\373re et d\351mon)HY(tons)YH( les deux syst\350mes de fichiers avant le redi)HY(men)HY(sion)HY(ne)HY(ment)YH(\240: )EP() 2 23 PR(# umount /mnt/ops/batch # umount /mnt/dev/users)RP()0 P( Nous utili)HY(sons)YH( ensuite la commande e2fsadm pour redi)HY(men)HY(sion)HY(ner)YH( le volume logique et le syst\350me de fichiers ext2 en une seule op\351ra)HY(tion)YH(. Nous utili)HY(sons)YH( ext2resize \340 la place de resize2fs \201qui est la commande par d\351faut de e2fsadm\202. Pour cela, nous d\351fi)HY(nis)HY(sons)YH( la variable d'envi)HY(ron)HY(ne)HY(ment)YH( E2FSADM_RESIZE_CMD pour dire \340 e2fsadm d'utili)HY(ser)YH( cette commande. )EP() 30 85 PR(# export E2FSADM_RESIZE_CMD=ext2resize # e2fsadm /dev/ops/batch -L+500M e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/ops/batch: 11/131072 files \2010.0