Messages in this thread |  | | From | ganesh@cse ... | Date | Tue, 10 Dec 1996 06:15:33 +0530 (IST) | Subject | Patch to support mounting a looped file as the root filesystem |
| |
Hi, this is a small patch to enable mounting of the root filesystem from a looped file. So it's possible to have your ext2 root filesystem as a single large file on an MSDOS partition and boot from there, like this : c:\linux> dir loadlin.exe vmlinuz rootfs c:\linux> loadlin vmlinuz root=/dev/hda1 looproot=/linux/rootfs rw
where /dev/hda1 is the DOS partition. The DOS partition is accessible after booting under /bootfs
The kernel must have compiled (_not_ as modules) support for the loop device, the following patch, and the msdos (or whatever) filesystem.
rootfs can be a standard root filesystem produced by any distribution, with the following modifications : Modify /etc/fstab on the fs contained in rootfs to include the line : /dev/loop0 / ext2 defaults 1 1 instead of the usual entry for / Also modify your startup rc file (rc.S for slackware) to remount / ro before the check for a readonly root fs and the subsequent fsck : /sbin/mount -n -r -o remount /
You might also want to setup a file to swap to.
This offers an alternative to UMSDOS as a way to run linux from a DOS partition. It would be useful in situations where you want "Instant Linux" for temporary demos etc. on DOS-only machines, where you can't go through the process of defrag/fips/repartition/install. This is of course, not restricted to DOS partitions, you can as easily boot from files hosted by any other filesystem.
Problems/caveats : 1. The biggest problem is the loop device itself. It is deadlock-prone - mke2fs on a 40MB looped file on a 386/4MB RAM locks up every time. 2. Performance is much worse than it should be when the hosting file is msdos. For example - booting from the same fs took (roughly) 22 seconds on raw ext2, 24 seconds on looped ext2 on ext2, and 45 seconds on looped ext2 on msdos. The problem seems to be the slow msdos bmap (which is called for every block). These timings are on a 486DX2/66MHz/8MB/630MB IDE. 3. This is my first attempt at kernel programming :) Also I haven't tested this very extensively.
Ray van Tassle has written patches which solve 1. and 2., but they don't seem to have made it into the kernel yet. BTW, why does bmap not work when msdos filesystems are mounted with blocksize=1024 ? If it did, then we could implement md-style re-mapping and get almost the same performance as on a raw partition.
The patch is against 2.0.18, but compiles and works nicely upto at least 2.0.26 (should work ok with later kernels too).
Comments, suggestions welcome ...
-- ganesh
begin 600 lrpatch.gz M'XL("&VKK#( VQR<&%T8V@ K5AM4]LX$/X<_XJ=] H)<<@[D-!V2 E0CKQT M$MJ[3MOQ.+8<=#AVSK)IN9;_?KN2XS@F4+BY#DUL[VKU[+./5G)L[CA0CJ!< M#I@5!8+?,+BI[U9W:P<5EWO1]XH=X+- 5*:N;UU7CGW/X;-=[L&C5JU<+C\M M3N[R*H(>LP!:4*UVZ@>=6@UJ[?:>5BJ5'I]D;6BCTVAUFFTU].@(RHVVO@<E M_&S#T9$&EC^?,R^$[:YM\Y#[GNG"6XJ'$6ZXQ<2V!AJ$ 1>A&3+8[OO^8FJB MV99F$-%BX0?A-AR/AJ?G9\;;_H71._EH]$>C]UJ)._ 9\K]ML.7A->1O\_#U M$,(KYFDE@*GON[ - &/?#\'A+A.W(F1S\#WR 1>GCJ=-IJ-0QG@TNM1*#M?B M$(/(#?G"9;&S $74@U@'/0TV(QWTLC@1WHH,O.ESCYD!%,S%@GEV$>:^O4(W MZ!G]\^%)=ZS9O]23(RJ(CP6[%F0?;%#-RI@5RGZGM9<5R@/>C0[^U6LK;=2J MC:J^#Z7XF_1Q1^77RB^X8S,G2]SY\/QRW--*:$6N':3"+FQT*<+/GUF/I'1% MFH*C!JTKTYLQ(\#R%ZZQ=D8('OLF[PV\U2W?$](K@)U%%!J^:^/8'T\@EWN6 M&]DL(6_W"AXR;"#[OM,:C<U.#5=G-4OZKT>U.XV#%?E[>TU:F?1U(*G7X%'6 M@7T/6>!!S%3 3#>AZA!K@G+DSO]0FWB:_UJ@0TQ#08$G%8J'E;G)O609I)YL M+$UBO;\0&O7[-=GLWNS4<3&DBR%+$:\!V $XNX!ZI55IMP#* ,>2"!M"?]E4 M<.%'7LB]&02R>PFXX28,3R=J.'97=*?I QNVTD1VX ^D%[M3UYTS,67!#*^W MX)WI">BS )NS#J=L"MN(3(8:^*8'V'/<6VI:,\L"+@"9UL&\\;E-$*;^+!)P M37%=@7C?FY$+9XAR;N)#'0;FK8Q76D%;IN'X@6RT^(C081XX_LSTF+B"CV9@ MVOC_+Q,Q$748 PA418I5:0@,X^)D/#SI&Y-/D^-NOS\Q#+7Q2$X;^_'&LZYM MTIHAV7H1KQMXI4KF.<*@Q?,FT5%I?6AJ"\B.I41H9"E18"J\*>:5:313H57[ M:U8)8JW9C#%2F^<6$*W@^88J7T'I6^BT(G;P0Z0UKKZS2W;<'3P".ST-058+ M2K P6L23Z7+Y[10/89G+_3 91L\GO:'1&^,J/QXFBUA.P2UO+;@(@SA^)AGB MI%X]($[JM9:.!Q!Y8J!!5!6)TK3M0'S&RJD2=GN]\<3HGPR_XK[Y _)YN$LW M@%]R0#!6%##/G+JHQ-=0I<QC'PE@Y>29<_:Y5JTW:<I\?D615EK/V_X[0G<J M8H'N*=&DQ(H),(/9C?3X/.C^*?NCT1V?34KU.!TRY748?NCW=<I,,K17DPSM M-V+5Y-#1\Y58T#D1#MSI69T\0@A%H20IQ]<8)B,,"I;(FGS%-W-!?O2]<I&F M:>0X9*+OC&EA>MPBF[Q8&2FQ9K-!B35;!WIM?[DC/;F2CZ@Y(SBM] /314D7 MT% $NLGAE6<M;@OK9<;L:*C@_S#?R=B*6$\<F-'%9M=RC>JY_:6Z#9E!*\75 MI.E.*]VE]922J77%K.MT6MASF#R/0([L7,I6,GG0EH?N=KVE-_>6QZIG4FG[ M1@)3Z3?F#:=R'.S^ 0MO3)= (TF1A0 \/(NJ$LC+E(D.U\J"5XN4(?9V?'E% M%VA$\YS-,=7"UO*I#M5E':"P?*A*D':5X5.^A>3A!E\)\IZS?*J\5_>[W CP MP($,#RZPOQ8D9X/N[Z,QCE_YTD2[CD%G<JHHM898:07%%CZ=NO(D@SN>MXYC M*X4U5N4B0+:O"[2_&2?C,>236G7@) APZZ0PM /3V&H'7MI?O/RR-$J@>!UA M1XK%I<!@_1")A) 5_,@8]T;#_B?*JPBO\/.Y4-0VGF#!N=) 8ASW:$GSYR_* M;[AOA>Y#!&$KR@&]#!&&R<FE<=I3$ST/L=+1;"-MENL+5M@,/O<\L"N8D\ON MY8>)#C'\^_\*"+F8B%Y.G4[C?'@Z6LNCKTY.+X7$G^DZAQMH3I^H-TE9AWQE M*@N8)Q4^C4<9=%GZ#6QB%$DG+/E\J,4E>R5NC9$7"6:G^MN"VSI7_:W=:JO7 M1FQPM;K:!+$PD%NUN7*.YGUXM^-Q'UEKPT7*=ZWQ%0_34'.5'?R '3S+<SKO MLH4 P0*.U-*KB(]-;O#A^!U8+L,3;$ [8(B-E DPA8CF3 VFWQ:6[O$O!:JW =TQM_P.2;%1VV<10>ZFWFQ[\K:/\">#K'UB42 P
end
|  |