[BACK]Return to xfs_lab_02_mkfs.doc CVS log [TXT][DIR] Up to [Development] / xfs-website / training / docs

File: [Development] / xfs-website / training / docs / xfs_lab_02_mkfs.doc (download)

Revision 1.2, Wed Jan 17 07:01:30 2007 UTC (10 years, 9 months ago) by chatz
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +106 -67 lines

Execute bits changed from --- to xxx
Initial XFS training course that was presented in Nov 06.

ࡱ>	`	w<bjbjss	Er2;;;;̀̀̀8$(;C0*Zf$hI;ΎҎ^*;RH/:f;"ԁx̀i0C.4"ֳ8;nZȏ@4<nnndnnnC;$;$;B~D;;;~;;;
XFS
Practical Exercises


02  mkfs & mount




Overview
In order to use XFS we must first create a filesystem.  Filesystems can be used for various different purposes and the tool used to create an XFS filesystem, mkfs.xfs, can be used to customise the characteristics of the filesystem.
Goals
The goal of this lab is to understand the procedure for creating an XFS filesystem including the options available for customising it for a particular purpose.
In this lab exercise we will explore the options to:
adjust the filesystem block size
filesystem directory block size
set the stripe unit and width sizes
configure an external log
set the allocation group count and/or size
grow a filesystem
Prerequisites
It is assumed that the reader is familiar with basic UNIX commands, in particular mkfs and mount.
Setup
Recent Linux kernel with XFS enabled (and loaded if installed as a module)
XFS user-space commands package, xfsprogs, installed.
One or more spare block device(s).
Exercises
Exercise 1
Make an XFS filesystem using default options. Note: the -f option is required to force mkfs to overwrite an existing filesystem.
# mkfs -t xfs -f /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=16, agsize=461617 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=7385872, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=3606, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0

Mount the filesystem:
# mkdir mnt
# mount /dev/sda4 /mnt
# mount
/dev/sda2 on / type xfs (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda4 on /mnt type xfs (rw)

Query the filesystem's parameters:
# xfs_info /mnt
meta-data=/dev/sda4              isize=256    agcount=16, agsize=461617 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=7385872, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal               bsize=4096   blocks=3606, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0

Unmount the filesystem:
# umount /mnt
Exercise 2
Make an XFS filesystem to contain many small files per directory
reduce filesystem block size to 512 bytes to save wasted space
use the maximum directory block size of 4KB (this is actually the default), this allows for more entries per level in the directory b-trees resultling in faster lookups.
Create the filesystem.
# mkfs -t xfs -f -b size=512 -n size=4096 /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=16, agsize=3692941 blks
         =                       sectsz=512   attr=0
data     =                       bsize=512    blocks=59087056, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=512    blocks=28851, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
# mount /dev/sda4 /mnt
# cd /mnt
# for file in `seq 0 1000`; do echo $file > $file; done
# du -k
537     .
Try the same test with a default block size of 4KB and verify the savings for yourself.
Exercise 3
Make an XFS filesystem that is aligned on stripe width/unit boundaries:
use a stripe unit size of 128KB (Note: when using the sunit option the value is in 512 byte blocks)
use a stripe width size of 2MB (Note: when using the swidth option the value is in 512 byte blocks and is a multiple of the sunit value)
Create the stripe aligned filesystem.
# mkfs -t xfs -f -d sunit=256,swidth=2048 /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=16, agsize=461632 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=7385872, imaxpct=25
         =                       sunit=32     swidth=256 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=3616, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
The sunit and swidth values displayed by mkfs are in filesystem blocks (ie 32 * 4KB = 128KB)
Exercise 4
Make an XFS filesystem that uses an external log on a second device. Note: the maximum size for a log is 128MB, if the log device is larger than this the size option must be specified.
Create the filesystem with an external log.
# mkfs -t xfs -f -l logdev=/dev/sda3,size=128m /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=16, agsize=461617 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=7385872, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =/dev/sda3              bsize=4096   blocks=32768, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
In order to mount a filesystem with an external log, the log device must be specified on the mount command line.
# mount -o logdev=/dev/sda3 /dev/sda4 /mnt
# mount
/dev/sda2 on / type xfs (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda4 on /mnt type xfs (rw,logdev=/dev/sda3)
If the log device is not specified the filesystem will fail to mount:
# mount /dev/sda4 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sda4,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail
Exercise 5
Make an XFS filesystem with more allocation groups to allow more parallelism when allocating blocks and inodes.  Increasing the number of allocation groups will decrease the space available in each group.  For most workloads, filesystem configurations with a very small or very large number of allocation groups should be avoided.  The capacity of your block device may cause mkfs.xfs to report different values for agcount and agsize.  For this exercise take the default agcount value and double it.
Create a simple filesystem first.
# mkfs -t xfs -f /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=16, agsize=461617 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=7385872, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=3606, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
In this example. the default agcount is 16 so let's try 32.
# mkfs -t xfs -f -d agcount=32 /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=32, agsize=230809 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=7385883, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=3606, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
Or alternatively, set the allocation group size.  In this example set each allocation group to 4GB.  If the capacity of your block device is less than 4GB mkfs will fail, in this case pick a value for agsize that is one quarter of the device's capacity.
# mkfs -t xfs -f -d agsize=4g /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=8, agsize=1048576 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=7385883, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=3606, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
Exercise 6
Grow an XFS filesystem. 
Setup
Start off by creating an XFS filesystem that uses only a portion of the available space on the device.  We can do this by specifying the size option.
# mkfs -t xfs -f -d size=1g /dev/sda4
meta-data=/dev/sda4              isize=256    agcount=8, agsize=32768 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=2560, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0

Mount the filesystem:
# mount /dev/sda4 /mnt

The current capacity of the filesystem is 262144 blocks.  To double the capacity, grow the filesystem to a capacity of 524288 blocks with:
# xfs_growfs -D 524288 /mnt
meta-data=/dev/sda4              isize=256    agcount=8, agsize=32768 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal               bsize=4096   blocks=2560, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
data blocks changed from 262144 to 524288

Verify the new filesystem capacity:
# xfs_info /mnt
meta-data=/dev/sda4              isize=256    agcount=16, agsize=32768 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal               bsize=4096   blocks=2560, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0

The default behaviour of xfs_growfs is to grow the filesystem to the maximum available capacity:
# xfs_growfs /mnt

Continually growing a filesystem can have it's drawbacks  a grown filesystem keeps its allocation size fixed and increases the allocation group count in order to accommodate the new capacity.  As we can see from the following filesystem geometry the allocation group count is very high.
# xfs_info /mnt

Questions
From the following information calculate the stripe unit and width:
meta-data=/dev/sda4              isize=256    agcount=16, agsize=923264 blks
         =                       sectsz=512   attr=0
data     =                       bsize=2048   blocks=14771760, imaxpct=25
         =                       sunit=128    swidth=256 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=2048   blocks=7296, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
What would be the conseqence of not aligning a filesystem on a stripe unit correctly?
What are the advantages of an external log?
Why would having very few or very many allocation groups be a bad idea?
Answers
Stripe unit = 128 * 2048 = 256KB, stripe width = 256 * 2048 = 512KB
If a block write is not aligned on a RAID stripe unit boundary and is not a full stripe unit, the RAID will be forced to do a read/modify/write cycle to write the data. This can have a significant performance impact. By setting the stripe unit size properly, XFS will avoid unaligned accesses.
With an internal log, excessive amounts of log activity can adversely affect the performance of the rest of the filesystem.  The external log could also be placed on higher speed storage.
Too few allocation groups limits the ability to parallelise concurrent disk block and/or inode allocations.  Too many allocation groups (with little space in each one) will increase the probability of exhausting an allocation group and having to search for another group that has free space.  This can cause an unreasonable amount of CPU time to be used when the filesystem is close to full.








XFS Lab 02  mkfs & mount		sgi

	 PAGE 2	

Copyright  2006, Silicon Graphics, Inc.
1200 Crittenden Lane
Mountain View, CA 94043







































































































































































































































































































,.1:!	"	'	(	



()/Hhi()JjR˿yqjhahahamH	sH	hahamH	sH	h2Oh2OmHnHsHh&h"vh
h2Ohe7he7hhhoh2Oh2Oh2OhOhhQ9hOJQJh]hhQ9OJQJh]hCJOJQJaJhOCJOJQJaJh]hHCJOJQJaJ)-./01:"	(			
>
b
|



)/4gd2OgdOgd2OgdO$^a$gdhQ9,gdO,gd$-gd$:S;r<v</zi
O


	D"Dxgd2O
&Fgd&"gd"vgd#G4gdo@u3x)jSj!kgda
&Fgd&"4gdagdagdOgd&
&Fgd&"gd2ORijghsdepTU=: M N Y '!<!M"o"p""$źůůůůů{{{nah!h!mHnHsH	h!h!mHnHsHh!h!mH	sH	h!mH	sH	h1*mHnHsH	h!mHnHsH	h1*h1*mHnHsH	h1*h1*mH	sH	hah1*mH	sH	h1*mH	sH	hamH	sH	hm&fmH	sH	hahamH	sH	hahamHnHsH	hahaha&k&ahsODgd&"
&Fgd1*4gd&"gdagda
&Fgd&"gdaep)UYO/7Tq=gd1*
&Fgd1*gd1*gd1*!gd1*gd&" : N Y N"p"""
#V###$K$$$$A%v%%&4&y&&gd!
&Fgd!gd!gd!gd1*$$$&'!*"*L**	- -8--
0/0A2223333;6<67778888::::::::::::öööööösoh*SjhPUmHnHuh]jh]UhOhOh0h]h!h]h!hOhahamH	sH	hchcmHnHsH	hchcmH	sH	hcmH	sH	h!mHnHsH	h!h!mHnHsH	h!h!mH	sH	h!mH	sH	*&&'(k(((2)^)))"*-*F*L**+S+++,E,,,	-gdc
&F
gdcgdcgdcgdc
&Fgd!gd!	-
- -7-8---*._.../a///
00/0?0001Q1}111A2B2gdc
&F
gdcgdcB2222333354445L5x555<66677R7x849:
&F	gd!gd!
&Fgd!gdOgdagdcgdc
&F
gdc:::::::::::::#;8;P;Q;R;S;T;U;V;W;%$^a$gdO%
9r 'gd	@
$
*Q'V^Vgdgd>3R:::::::::::::::Q;R;S;q<r<s<t<u<v<w<ȷhOhOh<hU?hPh2Dh]hh{YhOh,Z0J'mHnHu
hP0J'jhP0J'UjhPUmHnHuhhPCJEHaJhhPCJ0aJ0hPhW;X;Y;Z;[;\;];^;_;`;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;gd`77]7^7gdrXr;s;t;u;v;w;x;y;z;{;|;};~;;;;;;;;;;;;;;;;;$
Ba$gd>m;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
BgdCN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$a$gd"hTgd"hT	
Bgd"hT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gdF;;;<<<<<<<<<	<
<<<
<<<<<<<<<<<<<gd7F<<<<<<< <!<"<#<$<%<&<'<(<)<*<+<,<-<.</<0<1<2<3<4<5<gdsr5<6<7<8<9<:<;<<<=<><?<@<A<B<C<D<E<F<G<H<I<J<K<L<M<N<O<P<Q<R<R<S<T<U<V<W<X<Y<Z<[<\<]<^<_<`<a<b<c<d<e<f<g<h<i<j<k<l<m<n<o<o<p<q<r<s<t<u<v<w<
&F	gd!$gdHpC	0
00&P	P/R :p#. A!r"r#$% 29L@LdFNormal7x^7OJQJ_HmH	sH	tH	@`	Heading 1,$$&d@&P`&^'5B*	CJ(KH OJQJ\^JaJ phDj@jO	Heading 2$@&^&5B*	CJ OJQJ\]^JaJphDh@hlF	Heading 3$x@&^#5B*	CJOJQJ\^JaJphDP@P$	Heading 4$@&B*	CJ\aJphDDA@DDefault Paragraph FontVi@VTable Normal :V44
la(k@(No List6U@6+	Hyperlink>*B*phbOb"p6Code 
@@xx^m$ B*	CJOJQJmHnHph=lufOfng	Structure
B^#CJOJQJ^JaJmHnHsHur@#rrX
Table Grid7:V0
7^7TO2Ti7^Array contents$
B&<<a$sH	@OC@i7^Array TableCJOJQJ2OR2#p6Example
n^nT@T
ETOC 1$
%5CJOJQJ\^JaJD@D
q_TOC 2
%S(^S5\:@:
ukgTOC 3
%^2@2
sTOC 4^2@2
sTOC 5X^X2@2
sTOC 6 ^ 2@2
sTOC 7^2@2
sTOC 8^2@2
sTOC 9x^xHOH<[
Parameters$xm$5mHnHu:O:+YCDescription
 n^n>@>2O
Normal Indent
!^VO!Vp6	Code Char,B*	CJOJQJ_HmHnHph=lsH	tH	u0O"10p6Example CharT@BTTHHeader$
B*^5B*CJ OJQJph< @R<78Footer
%
9r OJQJFV@aF78FollowedHyperlink>*B*ph.)@q.78Page NumberRORnY
Table Heading(<^5OJQJ^JJOJnYTable Description)<^HOHnYTable Values*<^OJQJHOH Description Char_HmH	sH	tH	O$@Style 24 pt Bold Custom Color(RGB(9638168)) Centered Left:  0...,$^a$5B*	CJ0\phDO3$@Style 60 pt Bold Custom Color(RGB(9638168)) Centered Left:  0...-$^a$5B*	CJx\phDRY@R$Document Map.-D M
OJQJ^JBOBp6Style Courier NewOJQJnOn1p6Style Description + Courier New0OJQJmHnHutOt0p6$Style Description + Courier New CharOJQJmHnHujOjXTOC Heading"2$&d	PD^5B*	CJ(OJQJphDO1-9qEStyle 60 pt Bold Custom Color(RGB(9638168)) Centered Left:  0... Char+5B*	CJxOJQJ\_HmH	phDsH	tH	8OB8aBullet4
&F
e@R]HTML PreformattedC5
2(
Px4 #\'*.25@9^OJQJ^JmH	sH	tH	8Ob8&Y
Table Text6OJQJ*O*&"Number8F	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	

w4		



  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~		



	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	

!	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	

w4w4rx4@0x4@0-./01:"(>b|)/ziO	D"Dx@u	3	x				

)
j

Sj!k&
a




hsODep)UYO/7Tq=:NYNp
VKAv4y k   2!^!!!""-"F"L""#S###$E$$$	%
% %7%8%%%*&_&&&'a'''
((/(?((()Q)})))A*B****++++5,,,-L-x---<...//R/x0412222222222222#383P3Q3R3S3T3U3V3W3X3Y3Z3[3\3]3^3_3`3a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}3~3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444	4
444
4444444444444444444 4!4"4#4$4%4&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4\4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4x4-0-0-0,0,0,0,0000001010"0" 40" 40" 40" 40" 40" 40"01001 40) 40) 40)00 00000000000 000000000000 00000000000 0000
 40	
 40

 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
 0
00h 40h 40h 0h0h0h0h0h0h0h0h0h0h!0h00e 0e0e0e0e0e0e0e0e0e0e 0e0e0e0e0e0e0e0e0e0e 0e0e0e0e0e0e00N 0N0N0N0N0N0N0N0N0N0N 0N0N0N0N0N0N0N0N0N0N 0N0N0N0N0N0N0N0N0N0N00""(0""
 0F"0F"0F"0F"0F"0F"0F"0F"0F"0F"0F"
 0F"0F"0F"
 0F"0F"0F"0F"0F"0F"0F"0F"0F"0F"0F"0F"
 0F"0F"0F"0F"0F"0F"0F"0F"0F"0F"0F"
 0F"0F"0F"
 0F"0F"0F"0 0+0+0+0+0+0+0+0+0+ 0+( 0+ 0+0	 0/	 0/	 0/	 0/@0h00@0h00@0h00@0h00@$0@0@%0@0@0@0@0@%0@0h00
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000$00h00J-./01)
+2#383P3x4@-0@-0@,0@,0@,0@,0@0@0@0
@0
@000
00@0@0@0
00	..>>R$:w<$(-/k&	-B2:W;r;;;;;;<5<R<o<w< "#%&')*+,./012345678v<!18:! ,b$.^%rBɮc$0e0e
   A@ AԔ 8c8c	

?1 d0u0@Ty2 NP'p<'pA)BCD|E||s
"
0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F	
5%
   !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab `&@ 0(	
B
S	?J2(	
z	.&/
C  3"t

s*X99?  "`.&/ZB
	
s*DDp  	.

C  S"t

s*X99?  "`.

s*@~D  "`.<
w4./
.k@	/wH*xu/\K*u@_Common_XFS_Typesx4x4j#
j#< 	j#L
j#h j#!j#D#3#38383G3J3x47373E3I3O3O3x4;*urn:schemas-microsoft-com:office:smarttagsaddress:*urn:schemas-microsoft-com:office:smarttagsStreet9*urn:schemas-microsoft-com:office:smarttagsplace8*urn:schemas-microsoft-com:office:smarttagsCity9*urn:schemas-microsoft-com:office:smarttagsState>*urn:schemas-microsoft-com:office:smarttags
PostalCode $?C5?TZ15PR18"""")#.#6#=#A#G#N#R#t#z##########$$$:$?$f$k$$$$$$$$$$%3%6%%%%%&&
&&&&%&)&K&Q&X&\&&&&&&&&&&&''='B'''''''''''1(9(;(>(`(e(m(t(y((((((((((())).)6)<)?)C)r)w)))))))))*#*5*>*N*W*[*e*****++++N.X.2222222222222222R3S3r4x4 $

**N1T1222222222222R3S3r4x43333331"'b|).z	)
Sj!
hr/:M!!"","-"L"**++,x---//22222222222283P3R3S3r4x4222222222222R3S3r4x4
j-ʸp??LʸpZ'rN{W1ʸp_4ʸphHʸpQSʸpOYʸpcZh.4bBvʸph^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h^`OJQJo(hHh
		^	`hH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h
OO^O`hH.h
L^`LhH.h^`OJQJhH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.
??LcZWOYj-QS_4hH{W1bBvZ'

																		qT"								@	@@]xXe>xz0Jd8'%AFyYzZo&''_,00KzcH:*C15?S4WW^{$1)x2;"|6:&DGg"i~5
DqOU]Ncnzu{<$cTa(}i(/4F#^Gnt	="	I-	P	]	e	h	
)	
Q
Q 
3
5
G
b
;p
w
KGFNiuz`
DZBh-
'
(
:0
A
c
u
9I:<aqr.Y>lIU>dhwk&*:ipIS E7U>Zghr6{D
\">&}==ZYfs
$S/0Q^oZsWxI.L84"$/3ODJjL6&t#',Z[ns.eDHya?ADlId37AQ|}d~y+(,s-86;`>].DuoU_#v=> 	 0 E5 )9 = S e i du w "!8!}K!$]!~!"""&"Z'"O""X"s"y"z" #0#B#c#th#zx#m$	$%$%R$X$Fj$% %'%(%)%4%J%P%]%a%r%T&'&8&;&n&co&jy&'_G'M'^'(=(FA(C(F(u^(B|(~())")8)B)&m)Yu)z)
*!*&*eC*d*f*-i*'x*Z{*+ +0+;+D+H+K+(|+,1,b,4h,j,s,w,"-3;-W-_-|-~-k-1.A.d.../H.\].$_.7c.m.//&/y;/D/L/R/Qf/h/w/0:0O@0
I0Tb01:1Y1Z1f1mp1p1262k263)3^3\c3y3M94RV4'p4|4J?5N5PS50Y5Y5g51l5
y5.(6163:6l;6=6?=6B6E6X6]`6Xb6p6p6z67e7}j7z7"7
8187898a8{s89c9#929hQ9b9t9t9:':.:31:G:w:~: ;6$;[;a;e;l; <!<yb<==k=;*=5=p=={>>>>:>=>[>d>j>#k>`v>ez>
A?A?.B?7i?	@x5@I@[@b@`m@w@ZAAAFAoAtA0B9B`(B8B?BAB]eBTiB2zBBC2CUCYCdZClC"D2D*DC+D8/DAaDDaDdDeD|D((E}SEwrE
F@FFF"F7F?FdFlF#Go$G*GBmGFmG H#H'H0HYH~fHE|H8,I
9I?ILIrIY{I"JJ`2J<JzSJwJK
KK6K8K*KK/LKWKgKmK3LXLhL1nL|LN(M8MtHMLMcMiMe>NO&Oa8O:^OFrOXPiPPPP_1P6PCPXP/`Pq`P0Q6QQHQyOQ`Q]xQ}RVR(RG0R>3RZ>Rr@R6MRmRS+S1SLSRST	TJT**T1T7T;TKT"hTnTUzUUkU}!U"(U@)U=UDUEUJUNU<RUfUVx!V9VAVGVMVcVW1W|AWMWOWxWX0X%5X>XQX^`XqYYNY!Y&YT'Yn)YkVYYYfYjoYh{YGZZB%Zq8Z=ZTlZ	[[5[\V\l\Q\Z\_\O]
]#]3]B]^i7^/:^1Z^;[^d^~i^__q_-_?_X_
``=`jq`
aT-a>Eacaeb=wb{b;cdd.dEdJtdKedEefhffm&fg!g72g3gDgEgsNg]hgukgngyg@zghhd#hR8h=h?hChDhxPhiiMiViwioj.&j=.j(1jKj,k~.k9kMkVk]k%eksk%l{9l
5mPfmnG)nfoooCoRop]o`oHpk2p@pOp7ipvpq
qxqq6q9qFDq?nqrr4r(;r{r`szss'st0t|t;uj1u.@uhuJyuvvrv>vcvWdvPvvIw.wJZw9hw#nwvwNyw
xMx?x5IxJxUx\xAzx%y(y(9y?yTy\ywyz9)z$fzjzzz{{:{R{R{T{n{=s{s{|.|9|N|q|O}:}?}(?}KM}Op}w~}~_E~NF~M~;T~q~?x~x~	?D)EEHjx<9'5*@@dBw1
:Q^!#G>U=Srx$<6DDXXI~#w:aU]u[A/
kq39MNOPP'dk+uz&mHs!Dnsr,@5@tEOCu;z;~
2RWYYclM$M%W%-3FM&Vtkz&bCa|`$'EGT\hnyncn(I*SX_"+13A4T[sM$) 8iA%(&"+c10)"#:_4'Wf{{U~
& j'CCPPJRXRo=%0J<~J3SS`l}!_ X(UVBh3$5O$~9 PqShkp-s*^n95DCHUW?Zg9z"2V:LW+p	QY)
9>L,kl}tuz=}m7DSnX
L
.IKTe
T
|P P":d[[v
$'&F=Fma|u	i#*.:AF<LcLo1?58:-Ti!4Sp#Tkpw>9VX\_fh)1E\O1KSt{kvu#),,"B R5AVwWly:2JxT]iy}#'|GM2u}Ga"vB
"?$W6I`r7yUX#%U6:?_H'bb7$ &)AOrvk$CNoZ\`v}/<X[U#5HI]bw>!0S)sL0n3:R=t
FlHx/<#AkEn	E2OnYuY\or"A[jyl>m=uKxy>&78@sFP` s +0@3Fit/jd xxE&5HKLt'_r}
zJ3D6CRXe{{@38<>I3js\"Irs-;+Des~1oy@nx"&1*,.8Ol4"16td2?#0E;U?PrXau)]
&$%J>THHcI2Y:Zze*^
zG!2)/I^e`t5
3/:<`CLKTx
.
.?
O6WOX:\'r_,fsmut&17<SXDd)#J7>BQ7VZC[`O9g-Mp&5G nu.u5$D_~bhitw!'Sip3w;|.%uKj^;DTJq|
F%)2*VJOZa9?Ky
&*dFqT`lq37o9JN*%s;+?iy/Uk8$AaC4Z44}pp3
\-<DLP<[7gl=0&28Q:keo`P
Dc/Y25Fp$55cV]v;B]d=pK\]7 ?uw^Hcv]#bm'tr
#8=yDwz
(;>\]`ab/f],
2>lBEU:l+%3$?$CNU_wr*sL	h$=Dwz'Ka>pA!QUzS+'RySX>K`Czh
>NQZ``:fpIt&* BU]Z`x&g-wy|	!Dabqwg#AG<9MfzBUI+sD^mm+@Lw4P@UnknownG: Times New Roman5Symbol3&: Arial/&SGIA&Arial Narrow?5	: Courier New5&zaTahoma"1hIz#Z*+\*+\q4d222QXR
0>2	XFS Practical Exercises02 - mkfs & mountchatzchatz4
8888888	8Oh+'0	(4
T`l
xXFS Practical Exercises02 - mkfs & mountchatzNormal.dotchatz35Microsoft Office Word@U0@@N@*+՜.+,0hp|
SGI\2XFS Practical ExercisesTitle	

 !"#$%&'()*+,-./0123456789;<=>?@ACDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry	FЯData
:1TableBWordDocumentErSummaryInformation(DocumentSummaryInformation8CompObjq
	FMicrosoft Office Word Document
MSWordDocWord.Document.89q