From d7bb79b6f177e8c58d47695e0ee1a072475463c4 Mon Sep 17 00:00:00 2001 From: Ayush Ranjan Date: Tue, 23 Jul 2019 18:59:55 -0700 Subject: [PATCH] ext: Add ext2 and ext3 tiny images. PiperOrigin-RevId: 259657917 --- pkg/sentry/fs/ext/assets/README.md | 24 ++++++++++++++++-------- pkg/sentry/fs/ext/assets/tiny.ext2 | Bin 0 -> 65536 bytes pkg/sentry/fs/ext/assets/tiny.ext3 | Bin 0 -> 65536 bytes pkg/sentry/fs/ext/extent_test.go | 3 ++- 4 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 pkg/sentry/fs/ext/assets/tiny.ext2 create mode 100644 pkg/sentry/fs/ext/assets/tiny.ext3 diff --git a/pkg/sentry/fs/ext/assets/README.md b/pkg/sentry/fs/ext/assets/README.md index b6eac4f40..6f1e81b3a 100644 --- a/pkg/sentry/fs/ext/assets/README.md +++ b/pkg/sentry/fs/ext/assets/README.md @@ -1,19 +1,21 @@ -### Tiny Ext4 Image +### Tiny Ext(2/3/4) Images -The image is of size 64Kb which supports 64 1k blocks and 16 inodes. This is the -smallest size mkfs.ext4 works with. +The images are of size 64Kb which supports 64 1k blocks and 16 inodes. This is +the smallest size mkfs.ext(2/3/4) works with. -This image was generated using the following commands. +These images were generated using the following commands. ```bash -fallocate -l 64K tiny.ext4 -mkfs.ext4 -j tiny.ext4 +fallocate -l 64K tiny.ext$VERSION +mkfs.ext$VERSION -j tiny.ext$VERSION ``` +where `VERSION` is `2`, `3` or `4`. + You can mount it using: ```bash -sudo mount -o loop tiny.ext4 $MOUNTPOINT +sudo mount -o loop tiny.ext$VERSION $MOUNTPOINT ``` `file.txt`, `bigfile.txt` and `symlink.txt` were added to this image by just @@ -21,8 +23,14 @@ mounting it and copying (while preserving links) those files to the mountpoint directory using: ```bash -sudo cp -P {file.txt,symlink.txt,bigfile.txt} $MOUNTPOINT/ +sudo cp -P {file.txt,symlink.txt,bigfile.txt} $MOUNTPOINT ``` The files in this directory mirror the contents and organisation of the files stored in the image. + +You can umount the filesystem using: + +```bash +sudo umount $MOUNTPOINT +``` diff --git a/pkg/sentry/fs/ext/assets/tiny.ext2 b/pkg/sentry/fs/ext/assets/tiny.ext2 new file mode 100644 index 0000000000000000000000000000000000000000..381ade9bf822fe2bb02127ce01bef452638604e6 GIT binary patch literal 65536 zcmeHPO^+?tRqgleD533q0Om7JQXyhQ>pEhD#2{E95s_lY!Ppr@8C2g}-Ca=k)^&Zf zo+l`oWyXME1_6a1kVyv2m@z+Y3 zS!eCF*WRa|&(88E5l95?D*_+G#Qy}xGdNzv@es!Y9P!iO6%L;FsD0@he}m(}**ovN z{^JL7-iW{Pk^K1gp2J_?#PLTscs*YG&p-Zyzxd>tQ*L{b4!z?7jNq8=v^kfByY1eeplO^Y8!l?f?1A#YZ^a=k4P4Jl?DO@j8yl z-E02V-8b^@MBo>I0Aur693Q~(BBJ%7{PhbMNZv9LNCe(@1m3~V2a&G%JAV>^MBttw z@VR?7-<)nDkO%|N-=t1!BNpJeXlYTM3_r4+UPt>2!o}E3u{twT7yBfuZ@cLJ9oa11B zlYPSv%t1Ng`5xc2e4ez)-N0p9qHpZ9|Aa^Bbf_Qki~ zweF(m?tz*9hg8-V$f2qXgc6M>BX`?>Bp>qLME zWc()&5`p`RK*s<5UHhDQB9QT)97qK2F9I3=_jm1c=7~VYe{vuZxW5Qw{NLZT&zUCz z8UM+FMBx4+knw+i*FI;S2xR;x2NHoqAQ4Ce5`lY#z@K%)Fg9Nsr(ySL{@d34Ndyvs z`-8xj$En*l{c&FR&2AjVshRtwY4_c7(QL=V+-;X`S*NDm^~ZkR_J`}H8~SC_ymr&h z(2jL(uG)3mU*bhKbp2I#*fry{?Jt^j!HYvXb2#P!#ypXFNZw8bD^$2mibIrZ`3zP&!Qxar#L$6>(PLx0&#V{_Y1J!a_G zY??nE58c*Ix@g{7F$4_jwv{h!$NhfXjTrL0b`wUb$R7H+Z;rTQH({jw>!Rro1(a-+hZlV{igX6=6wSQm#IBj4##}cys_Z)e#ZTp?orcSUG>|Z3)WqC^8%2U{;=(L z`2VVInpfIx+a2&;jXGATJuDpuGOf$B;-+u*x9y&@1wKToS-L&YzbGTc4ZwzmByj+_ z3Y+tDVv0-QU0mR{8#v7Y?=0Q4!x~=#&I4cI9A5q}*LfMa=7%lrB6PwUaovGGCeU}y zZNIdgjsxGQKH#WulcB#}2k_=Kd>usU=C=UiO?!#29Tr?>y6l?;7hQUOFn3rt5DQ~( z4q&#t*tfXX+U{D+aNmKL7>vzOQM3`t(C{@}=%TqDhjlq(A#o)^5F`cZN#5-^9XsJ^ zkeg?0nwJL*0#xDD5n{MIa99x}Crc7UDocS?GA1gEG2IFOpIm3D5ltzAJ7BTjBzl+Y z0IY*@#%X-QK_A!Qwnuzo)s)S;{>`}SM?xTR6>}n_9K=LVuRTt(%T0A0oXXj@LVqus|Wl) z2_{4--vhh5<1)_84P~V5Mhxfmbv}Y+{XBOO8!@CABf?Z}3p|df2oD&r?GgAGqW-OO zY_6yFwg*8NwYB(F*D?48;nzje0>EpWKKGP1k)9ijYU(BktdLs5n*!he6esI>?~^HmIt@n>>@Kq2e#{VT{Xxe`~tXk;+1AUFLM z;SFt5O$U=iBqewhYI2oPRl-a3)#LM&5A(QVu)8E9u0kMvC|EiXV!etAziJZ~HKa^F zo{>DM<$&)b<5pXyG_D)s@I=ET!L*NhO0i@x$xD|*3u-SC zot31^!i!jI&Xw#k)x7v`F@tH!{D+W50*E?fMSk&WzeZtS8a{K1j^e5tg8bv|G3p z#Sj2(p@hb`ktEPUbMZK893}{7cjy&(u?w&s!Zm~@a{G7*(}nrEnNZ&(<_#LEt`X5E zS=>YWF&kk~I&>q`BU16UM~;o`kNBaKSIN5&5=lk|I@65N*X)p8B>##pB&i2CnMPk1 zv3|$AMmcm$nRuu;CTAf$DnN`S5ovd^Vr_sqC|rsBUIWrBpL&mC(WnW~DRagZl03DAa&y?&B9&AG{LJLK zkmAlJMsg9XM4_+*YJ_s<4!@AD_C+G?brNN=Xw~wXAclMiSsNsKUsuV2=jUHo==x1P z5jdiM64#;dpt4&WwU3nx2~CMWYt-Ck1oNQ~s#skYR&|`tNng#P!O*7x zrbN;+rZ3r-x~(S870koMY^WGg8t=xXXu25>F#Qon)GC=Nh$2(+D+J_sQitX{)PUkZ znV{%!4NQw}UUY7+dsKo@B`an_jd6Z1E?g3_m)|Dpr7^0DZ=Hn zT5-8>!zsE}m>J^S%Dl`y>7Y%EsXal0_qIU&!bnNzW&rmXxB!QBp2gO z$3T~`x-MH4JdeiQ>p)mLI2=nVRv82@U8J;NU~R}aiNafuvd=n%N+?%JB)A=Gx;M+0 zj7}_rSlm$+{q7$7Ry`TFO2}LHish}AEy_7N59?qQRVj$>0h5+=qUr#mExaSpPp7F; zWo1vRsacQ%wW3wU&51?{pCMS%^V4}FP52x54Z~ML z7FRRf#5Lvnzz}A`&&SZM@lO@X&vg#UF z8$`+Ut~=_UTriL#%>Jt@cYhHjNTnT^y5_zZli9$+PxN=T=={Qcpvx7#Hj5l-3nDzW z>wZR8L1GeJ!srska>pA6qFQ!4 znBodWM`yMO; z+=f~20v%-Oi?a2`Hh{~sCjr%2UHw>XBy(>zYbelY7Ltn~ZM1iP+uwE*8g$S+?eRkR zRCCJtsQ6B8Dpp(VL3!D+azid0<7l0s0caYusDSLR?#jn8m- zaXujyt^!Pv%yy_3Ddd*7sHczah`JP+TE1zzf+uw_QLXAKGXr8=LJDV4D1&8HA+~jJ zJXnDf~&x<~^LarF3b~$(( zFMzz{wUWWt%u~8-z$k^d2wM3vR-Xf@4 zrVxX5;#LbboPy7spytW4#u2|h!Qe1WQ|VxM#?S$JmsTh&i)y=(0_;gQ*3?eQF;Z2* z^r^)BC1xNxv2X^oHJvT>8{H&Wq`nGox@%|#uvLi(Ku7N!PP;$ z;E3*X#W`-2r65G;Rjn>n4n&`12G2>5T50K-;Cf$3`V8U>Ztx8?Yuo|>!IqA@5o}q^ zm2ZL^2$^HAQ8yi`N;I|@6o5O@5hn_&oMOx=YC$X#1;v)9SXI6YSP;wBO3_%sUMmck z_bPNb$XPmJ;UQA9MyB>5#GD%rx-cbT)FeJlqwogzrK-lIH7N)x>wuxka*%2prgb!Z zj$#x8m$IL#)*YbMhKkwt&LY5>Y6yY!qK{59tHaE|2Bxt@QZJq;rUe({*R`Zhoib9t z4z$lIE=vke6KA#5ZmZbZ;RcOb1ou5AX-XrF4~&dH|D?K-3=o}n(-EpwYys<*wC-e! zoN(S^gUZ7Y*!kCHF=fC$6Eov|KxL<=FNaFQITkxiS+UH%9=>tJ01=BtGFQEySM>I@ zPuhu;OZ&G&Z9T`aB(hZQ>96$6L|A3?A(I+on3!zvRy1a=4ij4SbnlQ-L($7o-^-w} zw|aws>b0G&T5n3EbAO!QVJ}3DgQXrPpM7rB7HEp=!#9d3gELw=%1W2_OMOvXL~&h? zqqj2rx7Y6_iv}f>aT1Ajq6)OVVT1vxe#IKWGI<}<&^aj#fq2!b_1358cI2*D5f=c! z8`udRr71;5Nj?q4AXWY-gXKR_9rtj$f2$JgJyN*nHr#|;9y%3b)JUarSa;+&J}M+#3r|&Q+Khrq z5voa5y%^IiH(1!iR`K~L&8U1nOWcMmZY*`chXMoA;DS^97=lgbpi;GIo*0-n?Rg+= zG{|Eiv{;f4Vi-n7m>8vsYl$@6OSs9mnHuFq6)KuA^%h#gI)hzBJtswj25KTbRlgPX zWvguLwjqcm&KsymMeknf#2PcRY<*F(F zr?jacPZ`ubH%n_Sf^HFP3q+HD)iMxg_0#qT%-X4O1wq1|dkk;!EX{zYX~>xFk8Q7y z>uRaZOAxVS0hdc4wOoROfo*&R7xXz6!~lI9PKn-7K~R}$G2zN8V27`z=(d0SH%(tIDM-4{b0`s|K7;#WJ#Sg#yG{NZUK+ zyV!^oisGUgC+gVT+j#Yy4vUIm+TCgn{#E>Vpbidd~ z=G@lFVe}_emthogj|xy0*`A*CW(jdA=U7P=n`Bj7lh@iu(UY_`Eh*WuDQa#9S{{(_ z-acn!c8o=%V$DP{By*=iIR#P z5~{J_mNL-@EdyMnm6H!@7Dgi6X^v4HaM8FRILlTY;&pDT=D;NrT0k%nGjfX0HzRVlMhBt|(y zY^>2;b$y5(R~Mj{s0gvcr+jLVy~N6O_}+_qrqWSX(bOrp@@h#SEB=}L^G_Xerinlz za0daT5bGanc6_a>pv)c6e%@)HoTQnO8C0M3F-2}2hWju3@%zU!@cFq^yWYr)j3|EA zq|~xWJ>3?$SHHQjGTXK=(X*{GnB%#R7v4uh;os0A*c|Hm2jxP=hSYe(r;`FL>;T1t0J(q*thkN>C*PUlVlCb?x`;$ab6XVGJRO2?dxDt!s->PzGQ*j)LSbWZ8@?QGIW9cR}5cS0AmH z8B8+bKSU&q5QF@L{E3VrMGC`6Q4~ZneOYUNopbvc1-6Jnz>(eChqS+n3(IbMoN9JO6n{ z&ii}3hmYjPzxOQu`U#Fd$HD9I+W-FIr|-S_4{!YNS7-mV`NnetKRWt(Y2F@Q+U}R# zeAxH9`RKC`>yIygySx6^e|zoOpZ)W_|91) zKl!9{zx09b1pglOrq4g>7xQ}`83O-A{dxK1*^UV1M*;IG)4tc^tp*&o96~UdOes=wIRA9en%iQe*b=t+RjeYu)_K`TyoyA3T5dqxr-8e-XzY;ozFEclswd z{uBq#`7(|_!|@dy4UVtk_!+8FBSNMY*fBxk3 z?y#TcZ(g7;zfsPA_T=e1&IR)J`IBd#n*L@x^t&GmJs1!F_{6h!&ihM04e#VnB9I7t z5)sf`R^tD+PiXvq633cjN(2&t$AADg0P`miNCa*t0vZ3ebKP^+i2xDE_)i`r0=E}| zjQ`ua_Br!JAmcwdkOBXVIrZ`3w!Pf7xarbt_rrj*hyJ`9_sw-X_L!k#vugfwzw6d^ z(phtF!4NR4>sG$B-fy@2%^pLZmTtsI71>=s_00iy>_&`~f1Ne`t^m_6m{zmxd3&rx zw_P>g!@REm;XJlS%i)->ns;ZM-cPt+)7@{ni;I5UbHTdHZkhq|-0#-?2LE5xRr5yM zt-BrGt5L@)wY$0FK*nVr7u@u{{<__Aw!nu-HFLKG`e$XNxB=MEkR%QuS7CK}N=$Jn zyo(E5cLS$6;GMY}H(29yz`5fKoWsliXqo0c*L=6eU4%|pBd$B}#{~MWx$ft-({bP% z)dw6EZZhq_lVy4G63tKoN*eT zaL|Wkxb6|3ST$v{u79)N^m{@eapmj-Q#S~*F=7>Q(yW&eYjp#9jB10xR6*#$5ZtOJ z9K~VPygDG-oAxkc$(k8KIQPx8U-x?~AH)W;MWnY4{sXXais8AOBUX3#e-ey{QoaXv zcZYdDHCL38w%cPk?<~^+EbFJKi`a-EO&AfTa$VqYL`8VOfOU_+#}M^zonv!3w%0uf z!l`K*z_xPn~uYlJtnO*I`% z5|NbPQK-pPMpX$f(N~YpV?Ip#4TIe!8F3W?=|jQNi4f~mRQOe!xTqmz^6`Y^Ni7F_ zM!<*945wlx$|fMde2H``dOFuqjax zj4irG8PX&PP26IFmw2ay$psjXa4^;e)qI7RUrf_%5@(uG?C$oNWZyceGmb1gKmfzz zE$EWx`CU8j$yUfnOBJ;&!EnZWrsmL&NDwd|OfbwjAZsOdVhedPuv4TTu)F&=yK) zj2lS;Ei@O8qsC!`aCW<1ffu^~>mgi2Xd<`o&tbYSUpEu#o5Z|9L)A4R`Xq~cXg_2l zEJ}xN&-92?yzY@>Bl{zMDCJf1E`&sqk%3M$WArr}WEaW5;tNUY!A+*o*F~(~Ft1S# z9aAPADvrrn2#*R7V@X8XU94CeU=9jbBEQvuG|Q*nqgXU*0(8n8blka&*cL+OP*jp6halN>%yvz(>dv@Su_~>G{BTdddBo6 z`%<^n#JPfbxR?zULrUY_xD<_7`yEVw#1XYhW(uOnl>7<-`Hj?}`3^OpI8Y`iI$Q(O zqMH|;+RGl5AXLeVos#(@ost|!xyOoB)jehziwN98Ip%N`m{m9C0kRu~K0Td7{mevIxT|VI4Jyq;3`2!`N?eR}8jPewta_pxZ18E!>IeoiREN z8>(HhtE#y>Gpr~JNU@le{{(L+E0o%uWW$Mty=iE>hIAvG#S2xIZ-Gbt|4r^q8qzXU z^HcPaXVu$5Dd}HS;9`uc$5~^Xo{9^XgzV+FiF#>_FgY1eY$%9j4MmD@Ij&Y*F5Ga6 zu2uO*lR#zs!jD?_24bWMJj|PO)d?E$_q&Q!=pDjG?kr|QYuE6L@_`lWpn|2Pn3x;X zh?}6xkwaz?s>C|V{bp7mM^>+!Zb1vh z96Kb*+E{9#JT=o9m4q2}1*$r%9Ad3#RdI8oQNm{kmh}8|-bfSv27bfvm5{~NOgC{& z`93g&+3@o*bnEz`2uI*`_aW*k%aZv7{yK|uF?~cdH9;gdM_;L03#)`%lw`yHFr8qbZ*Hw{*C!YprfDi249^%kK=0BDg=JA~H&TE->c*PdNjXNUDwsZ%n7_mf zL?;%`fVQTyrGBHEBv2$D7zEjj)SVHvWwHzqIIVNotH=0awaW{f3i>dNWkOLue z>^179Lsf~!7J~wCLptI_L6uXCIYljqMWUeC@)WDecL57x*;*+YE7)s=0rOskE(bYF zCoDWfYSzfqK7^Qa!$B9OM2wom$7vMa<-SzaxU?n(L1i5eqqxS;b{Z z;c?=umfCF^YrTWnBy z7y>*0+AO9F*k@v9ybq}C^z`LWX*kDXhbb$T+1JB2ju;?fu}J2s_w$C{p7u#Qk#cGO zcBrlAIF>|~%02y+o|y=%j6P&iV+<3M4c>~z%++B+tDf!+QferAIqG{EH1<|+5Kz6g z(^czDiFEFd^E>Q?sBy5=#e zSmL~aid6LOrH-sIGt1g{90WXzbVuC{X$XHfm@`nax^+Pnl2 zOBQgs1X9Z-I2hQ*S8zd}V?hki$KjOd4HX2HsTLEitO9oUT8h3tx@0G79f`GJ|E{Pw zDUKwsojtAr14}n?(XaE4i;nOWd-O^uC)v(Dsd(ww!Qeim?s{8#387ZP(~Mi?rcYXc z@qSb0XiIBehzmxZ|BX^Ul<*vIvBCu;hhh$_ID<)Mg@h)7Lnwv-{>$m%LM{3r{WO?; zKFVnkfNIQl-SI7bW)g`C@Fz=md!_~3l0gi4VoUdnePqsUog7Ag zRCO6fA@`^NWs&XaNpF@AmvWAkWU)zB#Wi`YeH1-OYtxdFEt{g|cA(_}3GXcwWPIw> zN_&{c-%_o2&5Oy$$24w~-54-Vh1^MEQHR7&bt&A$g1dYskH=F7*x5L3az#^~WXs%S@FlI#RgYd364r;l~Ugr!YG4H)13F9f)IG-;{}RAh8?Pq3~C_)fRD~OtCb;2N4|CQ-qF* z=)@1)Y%_$9E3+$zn|mX}#7d~7{1po*51%nt+c)`CPw~0J2nH^mJd@3Kp@a8e#Cd8% z6OkOmk^EUKsVs#W4Ov4iB5`wTnTY}j@9St$7i6u#Z7bXPx`Ek7`^rpIwL&sH0}5KH zCd@i>QPa_uGL7vtAw06{DNf2tab6GTxmS)C2oh=N6$WT5h+LI2>qughGsMOk-Bs6z z*l~3MdWnhdLRQCdZV$(@VV3&;X6yw%ffk$d%?gvNK8H~67oa!&l#%RZOaxNu0TO*O?SH14>h}p zTpIsu3o9Qbk`*Ra$I!XCL)H}K6^r^;FOZxS^hIGvYY2lGYBu4e6e7Khnuf?&k?SzX znuJ>5^7((9VUJq~(Y$t)Zk3N0_n@V8$0S__EA;q}+Te6<1VH|o2qXfDKq8O`Bm#** zB9I6q0*OE(kO(9Ki9jNd2qXfDKq8O`Bm#**B9I6q0*OE(kO(9Ki9jNd2qXfDKq8O` zBm#**B9I6q0*OE(kO(9Ki9jNd2qXfDKq8O`Bm#**B9I6q0*OE(kO(9Ki9jNd2qXfD zKq8O`Bm#**B9I6q0*OE(kO(9Ki9jNd2qXfDKq8O`Bm#**B9I6q0*OE(kO(9Ki9jNd i2qXfDKq8O`Bm#**B9I6q0*OE(kO(9KiNODX!2be@dmpj@ literal 0 HcmV?d00001 diff --git a/pkg/sentry/fs/ext/extent_test.go b/pkg/sentry/fs/ext/extent_test.go index c8c52f836..9e55187e5 100644 --- a/pkg/sentry/fs/ext/extent_test.go +++ b/pkg/sentry/fs/ext/extent_test.go @@ -145,7 +145,8 @@ func TestExtentTree(t *testing.T) { t.Fatalf("inode.buildExtTree failed: %v", err) } - if diff := cmp.Diff(&mockInode.root, node0, cmpopts.IgnoreUnexported(disklayout.ExtentNode{})); diff != "" { + opt := cmpopts.IgnoreUnexported(disklayout.ExtentIdx{}, disklayout.ExtentHeader{}) + if diff := cmp.Diff(&mockInode.root, node0, opt); diff != "" { t.Errorf("extent tree mismatch (-want +got):\n%s", diff) } }