home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / ext2_240.zip / ext2-os2.INF (.txt) < prev    next >
OS/2 Help File  |  1997-08-10  |  130KB  |  3,612 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Title page ΓòÉΓòÉΓòÉ
  3.  
  4.  32 bits Linux ext2 file system driver for OS/2
  5. EXT2-OS2 VERSION 2.40
  6. Copyright (C) Matthieu WILLM 1995, 1996, 1997 (willm@ibm.net)
  7.  
  8.  
  9. ΓòÉΓòÉΓòÉ 2. Introduction ΓòÉΓòÉΓòÉ
  10.  
  11. ext2-os2 is a file system driver that allows OS/2 to seamlessly access Linux 
  12. native partitions (ext2fs partitions) in both read and write modes. Once 
  13. installed, Linux partitions appear as standard OS/2 drive letters. 
  14.  
  15. My initial purpose was to get limited read only access to ext2fs  partitions 
  16. from my OS/2 system, so at the beginning (version 0.1 alpha back in June 1995), 
  17. it was more a quick and dirty rewrite than a clean and full port of the Linux 
  18. ext2fs  file system kernel code. 
  19.  
  20. I've improved it to reuse as much original ext2fs code as possible in order to 
  21. get an almost full featured ext2fs driver on OS/2.  I wrote a kind of IFS to 
  22. VFS translation layer, and ported some Linux kernel services in order to 
  23. minimize the changes required into the ext2fs sources. Now that ext2-os2 is 32 
  24. bits, these changes are minimal. 
  25.  
  26. This version is almost full featured : the main restriction is that ext2-os2 
  27. does not support extended attributes (EAS). Here are the main features of 
  28. ext2-os2 : 
  29.  
  30.      full 32bits ring 0 implementation 
  31.      allows read-write access to Linux ext2 partitions 
  32.      allows OS/2 to swap on Linux ext2 partitions 
  33.      allows OS/2 to boot from a Linux ext2 partition 
  34.      supports huge cache sizes 
  35.      contains a port of most of the Linux ext2 file system utilities from the 
  36.       e2fsprogs-1.10 package : 
  37.         -  mke2fs, to format drives as Linux ext2 
  38.         -  e2fsck, to check and repair Linux ext2 file systems 
  39.         -  tune2fs, to change Linux ext2 file systems parameters 
  40.         -  debugfs, an interactive Linux ext2 file system debugger 
  41.         -  lsattr and chattr, to see or change attributes of files on Linux 
  42.            ext2 file systems 
  43.      can reorder all hard disk drive letters, to avoid partition headaches 
  44.      hard links are supported under OS/2 and can also be created from OS/2 
  45.  
  46.  DISCLAIMER : 
  47.    THE FACT THAT I WORK FOR IBM HAS NOTHING TO DO WITH THIS DRIVER.  I'M 
  48.  WRITING IT AT HOME, DURING MY SPARE TIME, FOR MY OWN PURPOSES, ON MY OWN 
  49.  MACHINE, WITHOUT ANY IBM MEANS.  I USED ONLY IBM PUBLISHED DOCUMENTS TO WRITE 
  50.  IT :  I AM ABSOLUTELY NOT RELATED TO THE OS/2 DEVELOPMENT TEAM AND THUS I HAVE 
  51.  ABSOLUTELY NO ACCESS TO ANY CONFIDENTIAL OS/2 IFS RELATED INFORMATION. 
  52.  
  53.  Anyway I hope you'll enjoy trying this driver, and even if I don't have much 
  54.  time, I'll try to keep improving it.  I wait for your feedback on this version 
  55.  :  comments, ideas, bug reports and contributions are welcome. Success stories 
  56.  do also interest me, and disasters too ! 
  57.  
  58.  Matthieu WILLM 
  59.  
  60.  willm@ibm.net                 Home 
  61.  mwillm@vnet.ibm.com           Work 
  62.  
  63.  Note:  English is not my native language (I'm french) ... so this document 
  64.         isn't certainly perfect. 
  65.  
  66.  
  67. ΓòÉΓòÉΓòÉ 3. *** IMPORTANT WARNING - READ THIS FIRST *** ΓòÉΓòÉΓòÉ
  68.  
  69. ext2-os2 is a FILE SYSTEM DRIVER. Being a driver it runs at the most privileged 
  70. level of the OS/2 operating system, known as "kernel mode".  IN KERNEL MODE 
  71. THERE IS NO MORE CRASH PROTECTION.  It means that if a bug occurs in the driver 
  72. IT CAN CAUSE A HANG OR A SYSTEM HALT, AND THUS CAN CAUSE LOSS OF DATA. 
  73.  
  74.      I STRONGLY SUGGEST YOU TO MAKE A BACKUP OF ALL YOUR DATA (EVEN IF THEY 
  75.       ARE NOT LOCATED ON A LINUX PARTITION) PRIOR TO USE THIS DRIVER. 
  76.      DON'T USE THIS DRIVER ON A PRODUCTION MACHINE, OR IF YOU MANIPULATE 
  77.       CRITICAL DATA. 
  78.      IF HUMAN LIFE DEPENDS ON YOUR SYSTEM, DON'T INSTALL THIS DRIVER ON IT. 
  79.      USE IT AT YOUR OWN RISKS, AND ONLY ON A MACHINE YOU ACCEPT TO CRASH AND 
  80.       REINSTALL. 
  81.      BE AWARE THAT THIS DRIVER WILL GIVE FULL UNRESTRICTED (ROOT) ACCESS TO 
  82.       ALL YOUR EXT2FS PARTITIONS FROM OS/2. 
  83.  
  84.  From experience, ext2-os2 is now stable for normal use, and it is unlikely 
  85.  that a disaster will occur. But as any piece of software, it cannot be 
  86.  bulletproof. Doing regular backups is still the best method to protect against 
  87.  disasters of any kinds ... 
  88.  
  89.  
  90. ΓòÉΓòÉΓòÉ 4. Copyright information ΓòÉΓòÉΓòÉ
  91.  
  92.       Copyright notice for the ext2fs IFS driver 
  93.       Copyright notice for the ext2fs partition filter 
  94.       Authors of the original Linux ext2 file system 
  95.  
  96.  
  97. ΓòÉΓòÉΓòÉ 4.1. Copyright notice for the ext2fs IFS driver ΓòÉΓòÉΓòÉ
  98.  
  99.     32 bits Linux ext2fs file system driver for OS/2 WARP - Allows OS/2 to
  100.     access your Linux ext2fs partitions as normal drive letters.
  101.     Copyright (C) 1995, 1996, 1997  Matthieu WILLM
  102.  
  103.     This program is free software; you can redistribute it and/or modify
  104.     it under the terms of the GNU General Public License as published by
  105.     the Free Software Foundation; either version 2 of the License, or
  106.     (at your option) any later version.
  107.  
  108.     This program is distributed in the hope that it will be useful,
  109.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  110.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  111.     GNU General Public License for more details.
  112.  
  113.     You should have received a copy of the GNU General Public License
  114.     along with this program; if not, write to the Free Software
  115.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  116.  
  117.  
  118. ΓòÉΓòÉΓòÉ 4.2. Copyright notice for the ext2fs partition filter ΓòÉΓòÉΓòÉ
  119.  
  120. /************************************************************************/
  121. /*                       Linux partition filter.                        */
  122. /*          (C) Copyright Deon van der Westhuysen, July 1995.           */
  123. /*                                                                      */
  124. /*  Dedicated to Jesus Christ, my Lord and Saviour.                     */
  125. /*                                                                      */
  126. /* This program is free software; you can redistribute it and/or modify */
  127. /* it under the terms of the GNU General Public License as published by */
  128. /* the Free Software Foundation; either version 2, or (at your option)  */
  129. /* any later version.                                                   */
  130. /*                                                                      */
  131. /* This program is distributed in the hope that it will be useful,      */
  132. /* but WITHOUT ANY WARRANTY; without even the implied warranty of       */
  133. /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */
  134. /* GNU General Public License for more details.                         */
  135. /*                                                                      */
  136. /* You should have received a copy of the GNU General Public License    */
  137. /* along with this program; if not, write to the Free Software          */
  138. /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.            */
  139. /*                                                                      */
  140. /*  This code is still under development; expect some rough edges.      */
  141. /*                                                                      */
  142. /************************************************************************/
  143.  
  144.  
  145. ΓòÉΓòÉΓòÉ 4.3. Authors of the original Linux ext2 file system ΓòÉΓòÉΓòÉ
  146.  
  147. Parts of the ext2-os2 package are based on GNU GPL copyrighted code whose 
  148. owners are : 
  149.  
  150.      Linus Torvalds, the main author of the Linux kernel. 
  151.      Remy Card, the main author of the Linux ext2fs file system kernel code, 
  152.       as well as part of the ext2fs utilities. 
  153.      Theodore Ts'o, the main author of the Linux ext2fs file system utilities. 
  154.      Stephen Tweedie, who improved the Linux ext2fs allocation algorithms. 
  155.      Werner Almesberger, the author of the Linux FAT file system. 
  156.      Jean Loup Gailly,  the author of gzip 
  157.      ...probably many other contributors to the Linux kernel. 
  158.  
  159.  
  160. ΓòÉΓòÉΓòÉ 5. Installation instructions ΓòÉΓòÉΓòÉ
  161.  
  162.  This chapter describes the installation and setup instructions 
  163.  
  164.       Step 1 - Things to do BEFORE installing ext2-os2 
  165.       Step 2 - Make OS/2 see your Linux ext2fs partitions 
  166.       Step 3 - Copying the files to your hard drive 
  167.       Step 4 - Using the ext2-os2 monitoring tool 
  168.       Step 5 - Specifying command line parameters 
  169.  
  170.  
  171. ΓòÉΓòÉΓòÉ 5.1. Step 1 - Things to do BEFORE installing ext2-os2 ΓòÉΓòÉΓòÉ
  172.  
  173. Here are things you must do before installing this version of ext2-os2 : 
  174.  
  175.    1. Please run e2fsck from Linux on ALL your ext2fs partitions BEFORE 
  176.       installing ext2-os2. (You might have to boot Linux from floppy to do 
  177.       this, especially to run e2fsck on your root partition). 
  178.    2. I STRONGLY suggest you to first backup any data you don't want to loose 
  179.       BEFORE trying this driver. 
  180.    3. Make a backup copy of your CONFIG.SYS 
  181.    4. Have the two OS/2 kicker diskettes handy ,  with a full screen editor, so 
  182.       that you can restore your CONFIG.SYS if the system crashed at boot time. 
  183.       (This is not needed with WARP : Alt+F1 C at boot time will do the trick) 
  184.    5. Prepare a Linux boot diskette, with e2fsck on it. 
  185.    6. If you installed a previous version of ext2-os2, then comment out the 
  186.       following CONFIG.SYS statements and reboot your system to ensure that no 
  187.       ext2-os2 file is locked while installing the new version. 
  188.           IFS = <path>\ext2-os2.ifs <parms> 
  189.           RUN = <path>\ext2_lw.exe 
  190.           BASEDEV = ext2flt.flt <parms> 
  191.           BASEDEV = mwdd32.sys <parms> 
  192.  
  193.  
  194. ΓòÉΓòÉΓòÉ 5.2. Step 2 - Make OS/2 see your Linux ext2fs partitions ΓòÉΓòÉΓòÉ
  195.  
  196.  This chapter describes how to make OS/2 see your Linux ext2fs partitions 
  197.  
  198.  
  199. ΓòÉΓòÉΓòÉ 5.2.1. Understanding how does OS/2 assign drive letters ΓòÉΓòÉΓòÉ
  200.  
  201.  OS2DASD.DMD is the block device managing fixed partitionnable disks and 
  202. floppies. It is always (as far as I know) the first block device loaded by the 
  203. system. It first scans every .add drivers for physical disks. Then it reads the 
  204. partition table of each disk. It first looks for active primary OS/2 partitions 
  205. (Types 01, 04, 06 and 07) and installs a block device for each of them It 
  206. repeats this for each physical drive in the system. Then it looks for extended 
  207. volumes on the first physical drive (type 05 partition), reads the extended 
  208. boot record, looks for an OS/2 partition and assign it a drive letter, looks 
  209. for another extended volume ... and so on until no more extended volume is 
  210. found on the first disk. It them repeats this for each physical drive. 
  211.  
  212. Example : 
  213.  
  214. Γûá Scans all *.add driver for fixed disks - found 2
  215. Γûá Reads the MBR of physical disk 1
  216.         Γûá Found an OS/2 type 7 partition (active primary OS/2 IFS)  - Install a block device (C:)
  217.         Γûá Found an unknown type 0x83 partition                      - skip it
  218.         Γûá Found an OS/2 type 5 partition (extended volume)          - skip it
  219.         Γûá No more primary partition
  220. Γûá Reads the MBR of physical disk 2
  221.         Γûá Found an OS/2 type 7 partition                            - Install a block device (D:)
  222.         Γûá Found an unknown type 17 (inactive primary OS/2 IFS)      - skip it
  223.         Γûá Found an OS/2 type 5 partition (extended vol)             - skip it
  224.         Γûá No more primary partition
  225. Now done for primary partitions - processing extended volumes
  226. Γûá Reread the MBR of physical disk 1
  227.         Γûá Found an OS/2 type 5 partition (extended volume)
  228.                 Γûá Reads the extended boot record of the extended volume
  229.                         Γûá Found a OS/2 type 7 partition             - Install a block device (E:)
  230.                         Γûá Found an OS/2 type 5 partition
  231.                                 Γûá Reads the extended boot record
  232.                                     Γûá Found a OS/2 type 7 partition - Install a block device (F:)
  233.                                     Γûá No more partition
  234. Γûá Reread the MBR of physical disk 2
  235.         Γûá Found an OS/2 type 5 partition (extended volume)
  236.                 Γûá Reads the extended boot record of the extended volume
  237.                         Γûá Found a OS/2 type 7 partition             - Install a block device (G:)
  238.                         Γûá No more partition
  239.  
  240. Make OS/2 see your Linux ext2fs partitions 
  241.  
  242.  
  243. ΓòÉΓòÉΓòÉ 5.2.2. Make OS/2 see your Linux ext2fs partitions. ΓòÉΓòÉΓòÉ
  244.  
  245. During "normal" operations, OS/2 will not assign a drive letter to the Linux 
  246. partitions,  because their type (0x83) is not one of the types OS/2 normally 
  247. recognize. An installable file system driver does not have any control on how 
  248. block devices are assigned : this is a device driver issue. If we don't do 
  249. anything, the ext2fs IFS won't be very useful, since OS/2 doesn't even call it 
  250. (no block device allocated). 
  251.  
  252. In order for OS/2 to see your ext2fs partition, you must either change your 
  253. Linux ext2fs partition ID from 0x83 (Linux native) to 0x7 (OS/2 IFS - and not 
  254. OS/2 HPFS as stated in the Linux fdisk documentation), or make OS/2 think type 
  255. 0x83 partitions are type 0x7 partitions. 
  256.  
  257. In the first case we must manually alter the partition table, and in the second 
  258. case we must use a special filter device driver - ext2flt.flt - whose purpose 
  259. is to show a "hacked" partition table to OS2DASD.DMD. 
  260.  
  261. Here's how ext2flt.flt works : A virtual fixed disk is created for each 
  262. partition under control of the driver. These virtual fixed disks each contain 
  263. one extended partition with a logical drive in it. Since OS2DASD.DMD that 
  264. controls fixed disks first assigns drive letters to primary partitions the 
  265. virtual partitions are tacked on at the end of allocated drive letters. (To 
  266. control the mounting order of all partitions OS2DASD is prevented from directly 
  267. accessing the fixed disks and the filter presents it with an alternate list of 
  268. partitions.) 
  269.  
  270. BE CAREFUL : IF YOU DECIDE TO CHANGE PARTITION ID MANUALLY BE AWARE THAT IT CAN 
  271. CHANGE YOUR DRIVE LETTERS AND MAKE OS/2 UNBOOTABLE !! 
  272.  
  273. Examples being better than a long speach, let's look at some different 
  274. situations : 
  275.  
  276.       Example 1 
  277.       Example 2 
  278.       Example 3 
  279.  
  280.  
  281. ΓòÉΓòÉΓòÉ 5.3. Step 3 - Copying the files to your hard drive ΓòÉΓòÉΓòÉ
  282.  
  283.      Installation using the "Device Driver Install" object 
  284.      Manual installation 
  285.  
  286.  
  287. ΓòÉΓòÉΓòÉ 5.3.1. Installation using the "Device Driver Install" object ΓòÉΓòÉΓòÉ
  288.  
  289.    1. Open the "OS/2 System" folder 
  290.    2. Open the "System Setup" folder 
  291.    3. Open the "Device Driver Install" object 
  292.         a. Type in the "source directory" entry field the path where you 
  293.            decompacted the files 
  294.         b. Type in the "target directory" your OS/2 boot drive 
  295.         c. Click on the "Install..." push button 
  296.         d. Select the drivers to install (select both of them) : 
  297.                "Linux ext2fs file system driver (IFS) version 2.40 for OS/2" 
  298.                "ext2flt - Filter to make Linux partitions visable to OS/2." 
  299.         e. Click on OK 
  300.    4. Add <boot drive>:\OS2\FS\EXT2 to the PATH and LIBPATH statements in your 
  301.       CONFIG.SYS 
  302.    5. Set and/or change command line parameters for ext2-os2.ifs and 
  303.       ext2flt.flt. 
  304.    6. Reboot your computer 
  305.  
  306.  
  307. ΓòÉΓòÉΓòÉ 5.3.2. Manual installation ΓòÉΓòÉΓòÉ
  308.  
  309. ext2flt installation 
  310.  
  311.    1. copy ext2flt.flt and ext2flt.sym in  <boot drive>\OS2 or in <boot 
  312.       drive>\OS2\BOOT (WARP only) 
  313.    2. add the following line in CONFIG.SYS 
  314.  
  315.             BASEDEV=EXT2FLT.FLT
  316.  
  317.    3. if necessary, adjust ext2flt command line parameters (for instance /W if 
  318.       you want write access) 
  319.  
  320.  ext2-os2 installation 
  321.  
  322.    1. copy mwdd32.sys and mwdd32.sym in  <boot drive>\OS2 or in <boot 
  323.       drive>\OS2\BOOT (WARP only) 
  324.    2. add the following line in CONFIG.SYS 
  325.  
  326.             BASEDEV=MWDD32.SYS
  327.  
  328.    3. make a directory to hold ext2-os2 files somewhere but NOT on a Linux 
  329.       partition. 
  330.    4. add this directory at the end of the PATH and LIBPATH statements in 
  331.       CONFIG.SYS 
  332.    5. copy the following files to that directory : 
  333.           ext2-os2.ifs 
  334.           ext2-os2.exe 
  335.           sync.exe 
  336.           hardlink.exe 
  337.           umount.exe 
  338.           remount.exe 
  339.           ext2_lw.exe 
  340.           ext2-os2.inf 
  341.           ext2-os2.htm 
  342.           ext2-os2.sym 
  343.           ext2-os2.ddp 
  344.           vfsapi.dll 
  345.           vfsapi.lib 
  346.           uext2.dll 
  347.           uuid.dll 
  348.           et.dll 
  349.           ext2fs.dll 
  350.           badblks.exe 
  351.           mke2fs.exe 
  352.           e2fsck.exe 
  353.    6. add the following lines in your CONFIG.SYS 
  354.  
  355.             IFS=<path>\ext2-os2.ifs -cache:256 -errors=continue
  356.             RUN=<path>\ext2_lw.exe
  357.  
  358.    7. if necessary, adjust ext2-os2.ifs command line parameters (for instance 
  359.       -rw if you want write access) 
  360.  
  361.  Note:  In CONFIG.SYS, ext2-os2.ifs MUST be located AFTER the IFS managing the 
  362.         boot drive (HPFS.IFS usually). ext2-os2.ifs can appear at the head of 
  363.         CONFIG.SYS only if you boot OS/2 from a Linux partition. 
  364.  
  365.  
  366. ΓòÉΓòÉΓòÉ 5.4. Step 4 - Using the ext2-os2 monitoring tool ΓòÉΓòÉΓòÉ
  367.  
  368. ext2-os2.exe is a monitoring tool to retrieve data from ext2-os2.ifs. It is a 
  369. PM notebook containing : 
  370.  
  371.      page 1 : disk cache information 
  372.      page 2 : I-node and open file information 
  373.      page 3 : ext2-os2.ifs standard output 
  374.      page 4 : ext2-os2.ifs swapper information (active only when SWAPPER.DAT 
  375.       is located on a Linux ext2fs partition) 
  376.  
  377.  
  378. ΓòÉΓòÉΓòÉ 5.5. Step 5 - Specifying command line parameters ΓòÉΓòÉΓòÉ
  379.  
  380. ext2-os2.ifs command line in CONFIG.SYS : 
  381.  
  382. IFS = <drive>:<path>\ext2-os2.ifs [-q]
  383.                                   [-cache:<max. disk cache size>]
  384.                                   [-rw]
  385.                                   [-no_auto_fsck]
  386.                                   [-case_retensive]
  387.                                   [-<IFS entry point to trace>]
  388.                                   [-no_strat2]
  389.                                   [-errors=[panic|continue]]
  390.                                   [-output=[com1|com2]]
  391.                                   [-tz:<time zone in minutes from UTC>]
  392.                                   [-force_strat2:<removable drive number to be forced to use strat 2 I/O>]
  393.  
  394. NOTE : case is not significant (-q and -Q are equivalent), and '-' as well as 
  395. '/' can be used as a command line switch on the ext2-os2.ifs command line. 
  396.  
  397. ext2flt.flt command line in CONFIG.SYS : 
  398.  
  399. BASEDEV = EXT2FLT.FLT [/Q]
  400.                       [/V]
  401.                       [/W]
  402.                       [/A]
  403.                       [/M <mount list>]
  404.  
  405.  
  406. ΓòÉΓòÉΓòÉ 6. Usage instructions ΓòÉΓòÉΓòÉ
  407.  
  408. This chapter describes some imortant usage instructions. 
  409.  
  410.    1. Lazy writes considerations 
  411.    2. Automatic check disk 
  412.    3. Fatal ext2-os2 errors 
  413.    4. Case sensitivity considerations 
  414.    5. Note to "System Commander" Users 
  415.    6. Dynamic disk cache considerations 
  416.    7. Time zone considerations 
  417.    8. Important removable media considerations 
  418.  
  419.  
  420. ΓòÉΓòÉΓòÉ 6.1. Lazy writes considerations ΓòÉΓòÉΓòÉ
  421.  
  422. This file system driver makes heavy use of lazy writes : it means that data are 
  423. not committed to the disk immediately for performance purposes. This means that 
  424. YOU *MUST ALWAYS* SHUTDOWN YOUR SYSTEM PROPERLY so that data can be written to 
  425. disk. IF YOU DON'T FOLLOW THIS RULE, YOUR EXT2FS PARTITION WILL BE PROBABLY 
  426. DAMAGED, AND YOUR DATA LOST. 
  427.  
  428. If you need to commit data to disk without shutting down the system, you can 
  429. use the sync.exe utility. This utility behaves exactly like its UNIX equivalent 
  430. (but only on Linux ext2fs file systems). 
  431.  
  432. There is an automatic flush during system shutdown., so running sync.exe prior 
  433. system shutdown is not necessary. 
  434.  
  435. Note:  You will notice that the shutdown process is slightly longer, especially 
  436.        if you used a huge cache size : this is a normal behaviour. 
  437.  
  438.  
  439. ΓòÉΓòÉΓòÉ 6.2. Automatic check disk ΓòÉΓòÉΓòÉ
  440.  
  441. When ext2-os2 mounts an ext2fs partition and when read writes are enabled, it 
  442. will set the mount count in the superblock to its maximum value in order to 
  443. force a disk check when Linux mounts the drive. 
  444.  
  445. This is a safety precaution to ensure that ext2-os2.ifs didn't corrupt the file 
  446. systems. I do NOT recommend to disable this automatic check ; I only included 
  447. the -no_auto_fsck switch for those who have very large drives, where e2fsck 
  448. takes ages to complete. 
  449.  
  450.  
  451. ΓòÉΓòÉΓòÉ 6.3. Fatal ext2-os2 errors ΓòÉΓòÉΓòÉ
  452.  
  453. ext2-os2 fatal errors can appear in several forms : 
  454.  
  455.    1. A system halt with a register dump : this is a fatal exception trapped by 
  456.       the OS/2 kernel, due for example to a NULL pointer assignment. In this 
  457.       case the kernel debugger or a system dump is needed to track down the 
  458.       problem. 
  459.    2. A system halt with a message like ">>>>>>> EXT2-OS2 FATAL ERROR <<<<<<<". 
  460.       This is a system halt initiated by ext2-os2.ifs due to an unexpected 
  461.       error. Normally there should be a few lines with a cryptic message. 
  462.       Please write it down, as it will tell me where the error occured. 
  463.    3. The whole system is frozen : it is probably because an infinite loop was 
  464.       entered. Here also the kernel debugger is the only solution. 
  465.    4. One or more applications are frozen : it is probably a deadlock. 
  466.  
  467.  In either case, your ext2fs partition is in great danger ; To minimize the 
  468.  risk of data loss, please do the following : 
  469.  
  470.    1. In case of a system halt, write down the error message. 
  471.    2. In case of a system hang, try to press CTRL+ALT+DEL : this will commit 
  472.       dirty buffers to disk and thus minimise the damages on the partitions 
  473.       (ext2fs as well as FAT or HPFS). If it didn't work, the big red button is 
  474.       the only solution. 
  475.    3. Reboot Linux and run e2fsck ON ALL YOUR LINUX EXT2FS PARTITIONS to check 
  476.       and repair them if needed. DO NOT RESTART OS/2 WITH EXT2-OS2.IFS WITHOUT 
  477.       HAVING RUN E2FSCK ON  ALL YOUR PARTITIONS, THIS COULD SPREAD FILE SYSTEM 
  478.       ERRORS AND MAKE THINGS EVEN WORSE ! 
  479.    4. Please e-mail me the error, as well as a test case if possible, and 
  480.       please join your partition scheme (FDISK /QUERY from OS/2 or fdisk -l 
  481.       from Linux) and your CONFIG.SYS. 
  482.  
  483.  
  484. ΓòÉΓòÉΓòÉ 6.4. Case sensitivity considerations ΓòÉΓòÉΓòÉ
  485.  
  486. ext2fs is a case sensitive file system ; ext2-os2.ifs by default does case 
  487. sensitive comparisions, but even if OS/2 supports case sensitive file systems, 
  488. all the apps that uppercase or lowercase file names are broken. Some parts of 
  489. OS/2 are also broken : for instance the OS/2 program loader itself will 
  490. uppercase executable names, and so will fail loading programs or DLL if they 
  491. reside in a path with low case components. 
  492.  
  493. As a workaround, I introduced a command line switch (-case_retensive) to make 
  494. ext2-os2.ifs behave like HPFS : once set, it will ignore case when comparing 
  495. file names, but it will retain the case within the file system. It means that 
  496. FILE, File, FiLe and file will be treated as the same file if they reside in 
  497. the same directory ; but if you create FiLe, it will keep the case in the file 
  498. system. 
  499.  
  500. Note:  If you plan to run OS/2 programs from a Linux partition, this option is 
  501.        necessary because the OS/2 program loader uppercase executable names. 
  502.  
  503.  There's a drawback to this case retensive mode : if 2 files created from Linux 
  504.  in the same directory exist with the same name but different case (FILE and 
  505.  File for instance), and you run ext2-os2.ifs in case retensive mode, RESULTS 
  506.  WILL BE UNPREDICTABLE AND YOU CAN TRASH ONE OR EVEN BOTH FILES ! In fact only 
  507.  the first entry in the "." file of the parent directory will be used by 
  508.  ext2-os2.ifs  ; This "first" entry is not necessarily the first entry 
  509.  displayed by the 'DIR' command, nor is it the first one created. EXT2-OS2.IFS 
  510.  DOES NOTHING TO SOLVE SUCH FILE NAME CONFLICT IN CASE RETENSIVE MODE. 
  511.  
  512.  If you want to use this case retensive mode, please make sure from Linux that 
  513.  there are never several files with the same name but different case in ANY 
  514.  directory on ANY ext2fs partitions on your system BEFORE trying case retensive 
  515.  mode. If there are some, then rename these files from Linux so that they have 
  516.  have different names. 
  517.  
  518.  
  519. ΓòÉΓòÉΓòÉ 6.5. Note to "System Commander" Users ΓòÉΓòÉΓòÉ
  520.  
  521. Note that "System Commander" (from V-Communications) may make changes to the 
  522. partition table at boot time.  This may affect which partitions are visible, or 
  523. what drive letters are assigned by OS/2 when booting from System Commander.  In 
  524. particular, by default System Commander will make primary partitions on the 
  525. second hard drive invisible to OS/2.  If one of these other primary paritions 
  526. contains a Linux partition, it will not be visible to OS/2 or EXT2-FS, (even 
  527. though you are using the /V /A /M options with EXT2FLT.FLT).  To make a primary 
  528. partition on a second hard drive visible when booting OS/2 from System 
  529. Commander, do the following: 
  530.  
  531.    1. From the main System Commander screen, move to the OS/2 boot selection, 
  532.       and press Alt-S for the setup screen. 
  533.    2. Select "Local special options" from the setup screen. 
  534.    3. Select "YES" for the "Make primary partitions visible on drive 1". 
  535.    4. That's all 
  536.  
  537.  This has been reported by Steve Enns (ennss@eris.nhrc.sk.doe.ca) 
  538.  
  539.  
  540. ΓòÉΓòÉΓòÉ 6.6. Dynamic disk cache considerations ΓòÉΓòÉΓòÉ
  541.  
  542. ext2-os2.ifs now has a dynamic disk cache. The disk cache code is in fact a 
  543. port of the Linux disk cache, but with a few important differences. 
  544.  
  545. In Linux, the dynamic cache code is coupled to the virtual memory manager code, 
  546. so that all free physical memory can be used as cache : when there's some free 
  547. physical memory, the cache can grow, and when there's not enough free physical 
  548. memory, the virtual memory manager asks the disk cache to free some pages (this 
  549. can range from  "Could you please give me some free pages" ... to "I URGENTLY 
  550. need some memory so make whatever you can to free some pages"). On OS/2 I 
  551. couldn't make things work that way, simply because I can't hack the OS/2 kernel 
  552. code !! On OS/2, you MUST specify an upper limit for the amount of physical 
  553. memory the disk cache can allocate. When needed, ext2-os2.ifs will allocate 
  554. this memory as disk cache, but to simulate VMM calls to shrink the cache, a 
  555. daemon (ext2_lw.exe) periodically tries to shrink the cache. While it is not a 
  556. perfect solution, it seems to be a good compromise, at least if the max cache 
  557. size is reasonable (small enough so that it doesn't cause physical memory 
  558. starvation to the kernel). 
  559.  
  560. Some important points : 
  561.  
  562.      Disk cache memory is allocated/freed by chunks of 4 Kb (a page). 
  563.      The disk cache is allocaled in PHYSICAL MEMORY, it means that this memory 
  564.       CANNOT BE SWAPPED OUT to make room for other needs by the kernel (Having 
  565.       a swappable disk cache would be stupid IMHO !). It means that the maximun 
  566.       cache size passed to ext2-os2.ifs command line in CONFIG.SYS (-cache:xxx 
  567.       option) should be reasonable. 
  568.      You MUST ALWAYS HAVE EXT2_LW.EXE RUNNING, even in read only mode. If you 
  569.       kill it or if you suppress the starting of ext2_lw.exe in CONFIG.SYS, the 
  570.       disk cache size WILL NEVER SHRINK. 
  571.      You can monitor the disk cache size using ext2-os2.exe. 
  572.  
  573.  
  574. ΓòÉΓòÉΓòÉ 6.7. Time zone considerations ΓòÉΓòÉΓòÉ
  575.  
  576. ext2-os2 can now take your local time zone into account. File times should 
  577. match Linux file times (local time) instead of being relative to UTC . The time 
  578. zone can be set in CONFIG.SYS on the ext2-os2.ifs command line through the -tz 
  579. switch . It should be set to the  minute shift from UTC (-1440 to +1440). 0 
  580. means GMT, 60 means GMT+1, 120 means GMT+2, -60 means GMT-1 and so on. 
  581.  
  582. This option is rather experimental and can't be perfect because OS/2 does not 
  583. natively support time zones. Please tell me if you find it useful and if it 
  584. works correctly, otherwise simply remove the -tz switch and tell me the 
  585. problems you encountered. 
  586.  
  587. Note:  The OS/2 system time is not affected by this variable, so when you use 
  588.        -tz, you make ext2-os2.ifs consistent with Linux, but you introduce a 
  589.        shift between OS/2 system time, and file times. In some cases this can 
  590.        be a problem. Please tell me if you encountered some problems due to 
  591.        this (makefiles ?). 
  592.  
  593.  
  594. ΓòÉΓòÉΓòÉ 6.8. Important removable media considerations ΓòÉΓòÉΓòÉ
  595.  
  596. ext2-os2 does support removable media formatted with the Linux ext2fs file 
  597. system. To safely use ext2-os2 on removable media, you MUST FOLLOW THE THE 
  598. PROCEDURE DESCRIBED BELOW !!! If you don't follow this procedure, you can face 
  599. data loss or even system halts. 
  600.  
  601. When you insert a new media in its drive, OS/2 will automatically attach the 
  602. correct file system on it. No special step is required to make OS/2 recognize 
  603. this new media. If you cannot access the drive, then you can try to run the 
  604. remount.exe program to make OS/2 redetermine the file system to be attached to 
  605. the drive. If it still fails, then check that it is actually formatted with the 
  606. ext2 file system, and if it is the case, try to run e2fsck on that drive. 
  607.  
  608. When you plan to remove a media from its device, YOU MUST RUN THE UMOUNT.EXE 
  609. PROGRAM ON THAT DRIVE TO COMMIT ALL DATA TO DISK AND MAKE EXT2-OS2 FREE ANY 
  610. REFERENCES TO THAT PARTICULAR VOLUME. After that, the media can be safely 
  611. removed from its device. umount.exe actually issues an unmount operation, like 
  612. on UNIX. 
  613.  
  614. Note:  The old method of using sync.exe before removing a media could cause 
  615.        problem in some cases. That's why I strongly recommend to use umount.exe 
  616.        instead each time you need to remove a volume from its device 
  617.        (umount.exe does a lot more work than sync.exe, as it does exactly what 
  618.        the UNIX "umount" call does). 
  619.  
  620.  
  621. ΓòÉΓòÉΓòÉ 7. Features, limitations and known bugs for this release. ΓòÉΓòÉΓòÉ
  622.  
  623.    1. Features and limitations 
  624.    2. Known bugs 
  625.  
  626.  
  627. ΓòÉΓòÉΓòÉ 7.1. Features and limitations ΓòÉΓòÉΓòÉ
  628.  
  629.      ext2-os2.ifs is a full 32 bits ring 0 FLAT memory model file system 
  630.       driver (like WARP Server's HPFS386). 
  631.      All flavours of OS/2 WARP are supported (V3 and V4) except SMP versions. 
  632.      I used the Linux 1.2.1 kernel sources, corresponding to ext2fs 0.5b. It 
  633.       should work even with ext2fs from latest linux kernels (up to 2.1.13 
  634.       which is the latest kernel as of today). 
  635.      Pseudo dynamic disk cache size (limited by the physical memory 
  636.       available), ported from Linux. 
  637.      Global I-node cache, identical to Linux one. 
  638.      Global directory entry cache, identical to Linux one. 
  639.      Uses almost only original Linux ext2fs routines. 
  640.      Can use a blocksize of 1024, 2048 or 4096 bytes (1024 is the default). 
  641.      Doesn't support fragments (neither do the original Linux ext2fs 0.5b 
  642.       code) 
  643.      Linux special files (fifo, symbolic links, sockets, block and character 
  644.       devices) are mapped as SYSTEM files : you can see them with DIR /A but 
  645.       you normally can't read them 
  646.      OS/2 mounts ext2fs partitions as root : it means that from OS/2 you have 
  647.       full unrestricted access to your Linux partitions. 
  648.      Unlike Linux, file names beginning with '.' are not hidden 
  649.      Hard links are properly handled and can be created from OS/2. 
  650.      Symbolic links are not followed (treated as SYSTEM regular files) 
  651.      Each ext2 partition has its own drive letter (provided you made them 
  652.       visible from OS/2) 
  653.      OS/2 extended attributes are not supported, because Linux ext2fs does not 
  654.       support them for the moment. 
  655.      Swapping on a Linux ext2fs partition is supported : it means you can put 
  656.       SWAPPER.DAT on a Linux partition. 
  657.      Booting OS/2 from a Linux ext2fs partition is now supported, but you must 
  658.       still have a FAT or HPFS partition to store the WPS desktop tree. 
  659.      Some OS/2 API are not or partially supported, for instance : 
  660.         1. DosSetFileInfo : level 2 (used to store/change EAS) is ignored 
  661.            because EAS are not supported by ext2fs. 
  662.         2. DosSetPathInfo : level 2 (used to store/change EAS) is ignored 
  663.            because EAS are not supported by ext2fs. 
  664.         3. DosSetVerify  : completely ignored on ext2fs partitions ! 
  665.      ext2fs specific behaviour of some OS/2 API : 
  666.         1. DosQueryFSInfo with FSIL_ALLOC (level 1) information returns the 
  667.            free space minus the reserved space. This should be consistent with 
  668.            Minix style df output (no fs overhead taken into account). 
  669.         2. DosQueryFSInfo with FSIL_VOLSER (level 2) information returns the 
  670.            Linux ext2 volume name (if any) truncated to 11 characters, and a 32 
  671.            bits CRC checksum of the Linux ext2 UUID as the volume serial 
  672.            number. 
  673.      A file is considered read only if neither UNIX user, group and other 
  674.       'write' bits are set. 
  675.      When a file is set read-write, the UNIX user 'write' bit is set. 
  676.      When the block device driver supports it, strategy 2 I/O are used on non 
  677.       removable media. They provide the following advantages : 
  678.         -  Uses asynchronous I/O request lists. 
  679.         -  Priorities can be assigned to I/O. 
  680.         -  Multiple non contiguous I/O requests can be sent to the device 
  681.            driver in one shot, this permits the the IFS and the device driver 
  682.            to sort requests for better performance. OS2DASD.DMD, the standard 
  683.       fixed disk block device driver does support strategy 2 requests. 
  684.  
  685.  
  686. ΓòÉΓòÉΓòÉ 7.2. Known bugs ΓòÉΓòÉΓòÉ
  687.  
  688. The following list includes some common problems encountered with ext2-os2. 
  689. There are of several kinds : permanent restrictions, problems due to bugs in 
  690. the OS/2 operating system itself, or problems I couldn't reproduce yet (for 
  691. instance because I don't have the related hardware). This list is not complete 
  692. but I'll try to keep it as much up to date as possible , if you give me your 
  693. feedback... 
  694.  
  695.      The mount process will mount the ext2fs partition even if it has not been 
  696.       unmounted cleanly  : I STRONLY SUGGEST YOU TO UNMOUNT YOUR FILE SYSTEMS 
  697.       CLEANLY FROM LINUX - RUNNING THIS DRIVER ON A CORRUPTED EXT2FS PARTITION 
  698.       IS LIKELY TO CRASH YOU SYSTEM. 
  699.      DosFindNext() called from a 32 bits app (aka DosFindFromName) doesn't 
  700.       restart from the specified name, but from the last directory entry found. 
  701.      As ext2fs doesn't support EAS, there are many cosmetic bugs with the 
  702.       workplace shell (some icons stay hatched....) 
  703.      Error codes returned from the IFS to OS/2 are sometimes not translated 
  704.       from Linux to OS/2. This will result in messages like "Cannot find 
  705.       message 56347" instead of "Directory not empty" for instance. 
  706.      Some people may encounter a hang or a system halt at boot time, if they 
  707.       have removable devices like MO drive, Syquest and such. There's 
  708.       apparently a problem between EXT2FLT.FLT and some filter device drivers 
  709.       that attempt to make these devices appear like fixed disks (these drivers 
  710.       are LOCKDRV.FLT, SYQLOCK.FLT ...). To solve the problem, edit CONFIG.SYS 
  711.       so that EXT2FLT.FLT appears as the first .FLT driver. 
  712.  
  713.  
  714. ΓòÉΓòÉΓòÉ 8. How to build ext2-os2.ifs ΓòÉΓòÉΓòÉ
  715.  
  716. This chapter describes how to build the IFS. 
  717.  
  718.    1. Tools needed 
  719.    2. The build tree - How to build 
  720.  
  721.  
  722. ΓòÉΓòÉΓòÉ 8.1. Tools needed ΓòÉΓòÉΓòÉ
  723.  
  724. Table or required compiler, assembler and linker : 
  725.  
  726. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  727. Γöé                    Γöé32 bits C Γöé16 bits C Γöé80x86     ΓöéLinker    Γöé
  728. Γöé                    Γöécompiler  Γöécompiler  Γöéassembler Γöé          Γöé
  729. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  730. Γöéext2-os2.ifs        Γöé(1)       Γöé(none)    Γöé(2)       Γöé(7)       Γöé
  731. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  732. Γöémwdd32.sys          Γöé(1)       Γöé(none)    Γöé(2)       Γöé(7)       Γöé
  733. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  734. Γöéext2flt.flt         Γöé(none)    Γöé(3) or (4)Γöé(5) or (6)Γöé(8) or (9)Γöé
  735. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  736. Γöévfsapi.dll          Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  737. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  738. Γöéext2-os2.exe        Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  739. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  740. Γöéext2_lw.exe         Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  741. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  742. Γöésync.exe            Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  743. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  744. Γöéuext2.dll           Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  745. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  746. Γöémicrofsd.fsd        Γöé(none)    Γöé(3)       Γöé(5)       Γöé(8)       Γöé
  747. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  748. Γöéminifsd.fsd         Γöé(none)    Γöé(3)       Γöé(5)       Γöé(8)       Γöé
  749. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  750.  
  751. List of required toolkits : 
  752.  
  753.      The IBM OS/2 WARP developer's toolkit (included in IBM Visualage C++ 
  754.       package) 
  755.      The IBM OS/2 Developer Connection Device Driver Kit version 2 or later 
  756.      The IBM 'IFS toolkit'. I don't know the exact status of this package ; it 
  757.       seems to be publically available (I've seen it on Hobbes - a file named 
  758.       ifsinf.zip). If it's not publically available, ask your local IBM rep for 
  759.       a copy. 
  760.  
  761.  
  762. ΓòÉΓòÉΓòÉ 8.2. The build tree - How to build ΓòÉΓòÉΓòÉ
  763.  
  764.    1. make a directory somewhere on your disk. 
  765.    2. in that directory, unzip the file ext2_src.zip 
  766.    3. in that directory, unzip the file mwdd_src.zip (included in 32drv130.zip 
  767.       included in this package). 
  768.    4. update the file <your directory>\32bits\ext2-os2\makefile.inc, according 
  769.       to the table below. 
  770.    5. open a DOS session, and in that session : 
  771.           change the current directory to <your 
  772.            directory>\32bits\ext2-os2\ext2flt 
  773.           type 'nmake -f makefile.msc' to build ext2flt.flt. 
  774.    6. exit from the DOS session 
  775.    7. change the current directory to <your directory>\32bits\ext2-os2 
  776.    8. type "nmake" to build the whole ext2-os2 package 
  777.  
  778.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  779.   ΓöéEXT2OS2_BASE      ΓöéThe root path of ext2-os2 (usually \ext2-os2)Γöé
  780.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  781.   ΓöéDDKPATH           ΓöéThe path where is installed your DDK (usuallyΓöé
  782.   Γöé                  Γöé\DDKX86 or \DDK)                             Γöé
  783.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  784.   ΓöéIFSTKTPATH        ΓöéThe path where you put the "IFS toolkit"     Γöé
  785.   Γöé                  Γöé(fsd.h, fsh.h and fshelper.lib)              Γöé
  786.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  787.   ΓöéMSVCPATH          ΓöéThe path where MS Visual C++ is installed    Γöé
  788.   Γöé                  Γöé(usually \MSVC)                              Γöé
  789.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  790.   ΓöéVACPATH           ΓöéThe path where IBM Visualage C++ is installedΓöé
  791.   Γöé                  Γöé(usually \IBMCPP)                            Γöé
  792.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  793.  
  794.  The build tree looks like : 
  795.  
  796.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  797.   Γöé.\                  Γöécontains the main makefile an the files I    Γöé
  798.   Γöé                    Γöécouldn't put elsewhere.                      Γöé
  799.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  800.   Γöé.\vfs               ΓöéLinux kernel services and VFS interfaces.    Γöé
  801.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  802.   Γöé.\ext2              ΓöéLinux ext2fs sources (from                   Γöé
  803.   Γöé                    Γöé/usr/src/linux-1.2.1/fs/ext2)                Γöé
  804.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  805.   Γöé.\include\os2       ΓöéOS/2 specific include files                  Γöé
  806.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  807.   Γöé.\include\linux     ΓöéLinux include files                          Γöé
  808.   Γöé                    Γöé(/usr/src/linux-1.2.1/include/linux)         Γöé
  809.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  810.   Γöé.\include\asm       ΓöéLinux include files                          Γöé
  811.   Γöé                    Γöé(/usr/src/linux-1.2.1/include/asm)           Γöé
  812.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  813.   Γöé.\console           Γöéext2-os2.exe monitoring tool sources         Γöé
  814.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  815.   Γöé.\doc               ΓöéThe ext2-os2 documentation                   Γöé
  816.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  817.   Γöé.\distrib           ΓöéThe directory in which is built the ZIP file.Γöé
  818.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  819.   Γöé.\vfsapi            ΓöéThe VFSAPI library sources.                  Γöé
  820.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  821.   Γöé.\ext2flt           Γöécontains Deon van der Westhuysen's           Γöé
  822.   Γöé                    Γöéext2flt.flt sources, patched to compile with Γöé
  823.   Γöé                    ΓöéMS Visual C++ as well as Borland C++.        Γöé
  824.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  825.   Γöé.\microfsd          ΓöéThe ext2-os2 micro FSD (used to boot OS/2    Γöé
  826.   Γöé                    Γöéfrom a Linux partition)                      Γöé
  827.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  828.   Γöé.\minifsd           ΓöéThe ext2-os2 mini FSD (used to boot OS/2 fromΓöé
  829.   Γöé                    Γöéa Linux partition)                           Γöé
  830.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  831.   Γöé.\uext2             ΓöéThe dummy uext2.dll library sources          Γöé
  832.   Γöé                    Γöé(necessary to make BOOTOS2 happy)            Γöé
  833.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  834.  
  835.  
  836. ΓòÉΓòÉΓòÉ 9. The VFSAPI library ΓòÉΓòÉΓòÉ
  837.  
  838. The purpose of the VFSAPI library is to provide an extension of the standard 
  839. OS/2 standard file system oriented calls to access Linux VFS specific features 
  840. like I-nodes, UNIX file modes, file ownership and so on. For the moment the 
  841. library is quite limited, but with the time I'll include some more calls ! 
  842.  
  843. To be able to do what they are designed for, these routines talk directly to 
  844. the ext2-os2.ifs file system driver, through the DosFsCtl call. DosFsCtl 
  845. (almost) directly calls the IFS's FS_FSCTL entry point. Most of the work is 
  846. done in kernel mode inside ext2-os2.ifs. DosFsCtl is the IFS equivalent of 
  847. DosDevIOCtl : an extended interface to the IFS. 
  848.  
  849. The library is compiled using IBM Visualage C++ 3.0, but it should also compile 
  850. without problem with emx/gcc. The precompiled vfsapi.dll should work with 
  851. emx/gcc (and other compilers) without recompilation. 
  852.  
  853. The entry points follow the standard OS/2 32 bits API linkage convention 
  854. (_System for IBM Visualage C++, _syscall for Borland C++). 
  855.  
  856. Note:  The funtion names, as well as data structure names, have been prefixed 
  857.        with "vfs_" in order to prevent name collisions with existing C/C++ 
  858.        runtime libraries. 
  859.  
  860.      vfs_fstat 
  861.      vfs_stat 
  862.      vfs_sync 
  863.      vfs_link 
  864.  
  865.  
  866. ΓòÉΓòÉΓòÉ 9.1. vfs_fstat ΓòÉΓòÉΓòÉ
  867.  
  868. int vfs_fstat(int fd, struct new_stat *s);
  869.  
  870. This is the ext2-os2 implementation of the Unix fstat() system call. It returns 
  871. a "true" stat structure containing the "true" Unix file mode, the "true" file 
  872. ownership... This stat structure is the same as the Linux stat structure 
  873. defined in /usr/include/sys/stat.h. All the macros and definitions for file 
  874. modes and file ownership are also the same as in Linux. 
  875.  
  876. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  877. ΓöéParameter type      ΓöéInput     ΓöéDescription                                  Γöé
  878. Γöé                    ΓöéOutput    Γöé                                             Γöé
  879. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  880. Γöéint fd              Γöéinput     Γöémust be a valid OS/2 file handle (for exampleΓöé
  881. Γöé                    Γöé          Γöéreturned by DosOpen, or DosDupHandle).       Γöé
  882. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  883. Γöéstruct vfs_stat *s  Γöéin/out    ΓöéOn input : must point to a vfs_stat          Γöé
  884. Γöé                    Γöé          Γöéstructure. On output : contains the I-node   Γöé
  885. Γöé                    Γöé          Γöéinformation.                                 Γöé
  886. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  887.  
  888.  
  889. ΓòÉΓòÉΓòÉ 9.2. vfs_stat ΓòÉΓòÉΓòÉ
  890.  
  891. int vfs_stat(const char *pathname, struct new_stat *s);
  892.  
  893. This is the ext2-os2 implementation of the Unix stat() system call. It returns 
  894. a "true" stat structure containing the "true" Unix file mode, the "true" file 
  895. ownership... This stat structure is the same as the Linux stat structure 
  896. defined in /usr/include/sys/stat.h. All the macros and definitions for file 
  897. modes and file ownership are also the same as in Linux. 
  898.  
  899. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  900. ΓöéParameter type      ΓöéInput     ΓöéDescription                                  Γöé
  901. Γöé                    ΓöéOutput    Γöé                                             Γöé
  902. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  903. Γöéconst char *pathnameΓöéinput     ΓöéMust be a valid OS/2 file name (a file name  Γöé
  904. Γöé                    Γöé          Γöéacceptable by DosOpen).                      Γöé
  905. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  906. Γöéstruct vfs_stat *s  Γöéin/out    ΓöéOn input : must point to a vfs_stat          Γöé
  907. Γöé                    Γöé          Γöéstructure. On output : contains the I-node   Γöé
  908. Γöé                    Γöé          Γöéinformation.                                 Γöé
  909. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  910.  
  911.  
  912. ΓòÉΓòÉΓòÉ 9.3. vfs_sync ΓòÉΓòÉΓòÉ
  913.  
  914. int vfs_sync(void);
  915.  
  916. This is the ext2-os2 implementation of the Unix sync() system call. It commits 
  917. all data to the disk. 
  918.  
  919. Note:  vfs_sync will ONLY work on ext2fs partitions, not on other partitions 
  920.        (FAT, HPFS). 
  921.  
  922.  
  923. ΓòÉΓòÉΓòÉ 9.4. vfs_link ΓòÉΓòÉΓòÉ
  924.  
  925. int vfs_link(const char *from, const char *to);
  926.  
  927. This call creates a hard link to an existing file. 
  928.  
  929. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  930. ΓöéParameter type      ΓöéInput     ΓöéDescription                                  Γöé
  931. Γöé                    ΓöéOutput    Γöé                                             Γöé
  932. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  933. Γöéconst char *from    Γöéinput     ΓöéFile name to be linked. Must be a valid OS/2 Γöé
  934. Γöé                    Γöé          Γöéfile name (a file name acceptable by         Γöé
  935. Γöé                    Γöé          ΓöéDosOpen).                                    Γöé
  936. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  937. Γöéconst char *to      Γöéinput     ΓöéNew file name. Must be a valid OS/2 file nameΓöé
  938. Γöé                    Γöé          Γöé(a file name acceptable by DosOpen).         Γöé
  939. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  940.  
  941.  
  942. ΓòÉΓòÉΓòÉ 10. Booting OS/2 from a Linux ext2fs partition ΓòÉΓòÉΓòÉ
  943.  
  944. Ext2-os2 allows OS/2 to boot from a Linux ext2fs partition. It can even makes 
  945. OS/2 reside alongside Linux on the same partition (I mean, having vmlinuz and 
  946. OS2KRNL on the same file system !). 
  947.  
  948. Note:  There is only one restriction : you must still have a small FAT or HPFS 
  949.        partition to store the WPS desktop tree (usually <boot 
  950.        drive>:\DESKTOP\*), because the Linux ext2 file system does not support 
  951.        EAS (extended attributes), which are necessary to the WPS. 
  952.  
  953.  Anyway, it is not completely useless though : with this feature you can for 
  954.  instance install an OS/2 maintenance partition on a Linux ext2fs drive, and 
  955.  thus save a partition. You can also install a full OS/2 system, if you store 
  956.  the desktop and the swap file on a FAT or HPFS partition. 
  957.  
  958.  The following chapters will describe how to setup an OS/2 system on a Linux 
  959.  ext2fs partition. It's not an easy thing to do, because as you will see it's 
  960.  like if we gathered on a single partition the usual problems encountered when 
  961.  installing a Linux+OS/2 system !! 
  962.  
  963.  For the moment booting OS/2 from a Linux partition is still quite experimental 
  964.  and is still at beta level stabiliy ! To try this feature, you'll have to be 
  965.  very familiar with OS/2 installation, Linux installation, and LILO + OS/2 Boot 
  966.  Manager configuration. Please make a full backup of your system first ! 
  967.  
  968.  I'm waiting for your feedback on this new feature, both failures and success 
  969.  stories ! 
  970.  
  971.    1. Understanding the normal OS/2 HPFS boot sequence 
  972.    2. Understanding the normal Linux ext2fs boot sequence 
  973.    3. Understanding the ext2-os2 OS/2 ext2fs boot sequence 
  974.    4. Installing and configuring OS/2 on a Linux ext2fs partition 
  975.  
  976.  
  977. ΓòÉΓòÉΓòÉ 10.1. Understanding the normal OS/2 HPFS boot sequence ΓòÉΓòÉΓòÉ
  978.  
  979.  Assume you have an OS/2 system with Boot Manager installed. Here's a 
  980. simplified HPFS boot sequence : 
  981.  
  982.    1. Ctrl+Alt+Del or Power on gives control to the power-on-self-test (POST) 
  983.       code. the POST code after hardware initializations issues an INT 19h. 
  984.    2. INT 19h load the first sector of the first drive (the MBR), and executes 
  985.       it. This code will load and execute the boot record of the active primary 
  986.       partition. 
  987.    3. This active partition is Boot Manager, it will present you a menu of 
  988.       bootable systems. 
  989.    4. When you select the OS/2 system, boot manager reads and executes the code 
  990.       in the boot record of the selected partition. 
  991.    5. This code is called a "black box". Its role is to load a micro IFS in 
  992.       memory. This micro IFS is a real mode IFS with just enough brain to read 
  993.       a few files. 
  994.    6. When the micro IFS receives control, it loads the OS/2 loader (stored in 
  995.       OS2LDR). It also loads a mini IFS : a mini IFS is a protect mode IFS with 
  996.       limited read only capabilities, just a little bit more clever than a 
  997.       micro IFS ! (The HPFS mini IFS is stored in OS2BOOT) It then passes 
  998.       control to OS2LDR, along with the current state of memory. 
  999.    7. OS2LDR then loads OS2KRNL from disk, applies required fixups, and gives 
  1000.       control to the kernel. 
  1001.    8. The kernel then loads the mini IFS from its memory image. The mini IFS is 
  1002.       used to load the base device drivers, then the normal device drivers and 
  1003.       IFSes, then the VDD drivers. 
  1004.    9. When the normal HPFS IFS is loaded, it replaces the mini IFS. 
  1005.  
  1006.  As you can see, the OS/2 kernel doesn't know anything about HPFS. It even 
  1007.  makes no assumption of booting off of disk. 
  1008.  
  1009.  
  1010. ΓòÉΓòÉΓòÉ 10.2. Understanding the normal Linux ext2fs boot sequence ΓòÉΓòÉΓòÉ
  1011.  
  1012.  Assume you have a Linux system with OS/2 Boot Manager installed as the main 
  1013. boot loader, and LILO installed in the superblock of the Linux boot partition. 
  1014.  
  1015.    1. Ctrl+Alt+Del or Power on gives control to the power-on-self-test (POST) 
  1016.       code. the POST code after hardware initializations issues an INT 19h. 
  1017.    2. INT 19h load the first sector of the first drive (the MBR), and executes 
  1018.       it. This code will load and execute the boot record of the active primary 
  1019.       partition. 
  1020.    3. This active partition is Boot Manager, it will present you a menu of 
  1021.       bootable systems. 
  1022.    4. When you select the Linux system, boot manager reads and executes the 
  1023.       code in the boot record of the selected partition. 
  1024.    5. This code is actually the LILO first stage loader. its role is to load 
  1025.       the LILO second stage loader. 
  1026.    6. The LILO second stage loader loads the disk map of the boot image, then 
  1027.       using this map it loads the Linux kernel, as well as command line 
  1028.       parameters. It then gives control to the setup code stored at the 
  1029.       beginning of the Linux boot image. 
  1030.    7. The setup code then explores the hardware configuration, switches to 
  1031.       protect mode and passes control to the Linux kernel. 
  1032.    8. When the Linux kernel receives control, it executes its initialization 
  1033.       routines, and initializes the device drivers present in the boot image. 
  1034.    9. It then executes the init process. 
  1035.  
  1036.  The main difference here is that the Linux kernel does not load dynamically 
  1037.  the device drivers, and especially the ext2fs driver. They are all present in 
  1038.  the boot image. While it greatly simplifies the boot sequence (no mini IFS, no 
  1039.  micro IFS ...) it requires a reconmpilation whenever you want to add or remove 
  1040.  a driver. 
  1041.  
  1042.  When you run LILO to install a new kernel, it installs a map of the kernel 
  1043.  boot image, and a boot loader in the boot record. LILO's main advantage is to 
  1044.  be independant of the file system it uses, and even more : it knows absolutely 
  1045.  nothing about ext2fs, FAT and so on. It uses the disk map to load the boot 
  1046.  image. This is the reason why you must re-run LILO whenever you touch your 
  1047.  kernel file. LILO makes no assumption of booting a Linux kernel image : it can 
  1048.  load other systems as well : it loads the specified file in a well known place 
  1049.  in memory regardless of its type, and gives it control. 
  1050.  
  1051.  
  1052. ΓòÉΓòÉΓòÉ 10.3. Understanding the ext2-os2 OS/2 ext2fs boot sequence ΓòÉΓòÉΓòÉ
  1053.  
  1054. ext2-os2 uses a mix of these two different sequences to boot OS/2 from a Linux 
  1055. ext2fs partition. In this package there are two new files : 
  1056.  
  1057.      MICROFSD.FSD : the Linux ext2fs micro IFS 
  1058.      MINIFSD.FSD : the Linux ext2fs mini FSD 
  1059.  
  1060.  The main difference between the normal OS/2 boot sequence and the ext2-os2 
  1061.  boot sequence is that ext2-os2 uses LILO as the "black box" described above. 
  1062.  LILO is actually configured to load MICROFSD.FSD instead of a standard Linux 
  1063.  kernel boot image. 
  1064.  
  1065.  Note:  LILO is required to boot OS/2 from a Linux partition. I tested it with 
  1066.         LILO 0.15 but it should also work with later versions. 
  1067.  
  1068.  The boot sequence will be (assuming you have OS/2 boot manager installed as 
  1069.  the main boot loader, and LILO in the superblock of the Linux partition) : 
  1070.  
  1071.    1. Ctrl+Alt+Del or Power on gives control to the power-on-self-test (POST) 
  1072.       code. the POST code after hardware initializations issues an INT 19h. 
  1073.    2. INT 19h load the first sector of the first drive (the MBR), and executes 
  1074.       it. This code will load and execute the boot record of the active primary 
  1075.       partition. 
  1076.    3. This active partition is Boot Manager, it will present you a menu of 
  1077.       bootable systems. 
  1078.    4. When you select the OS/2 system, boot manager reads and executes the code 
  1079.       in the boot record of the selected partition. 
  1080.    5. This code is actually the LILO first stage loader. its role is to load 
  1081.       the LILO second stage loader. 
  1082.    6. The LILO second stage loader loads the disk map of the boot image (which 
  1083.       is actually a map of MICROFSD.FSD), then using this map it loads the 
  1084.       micro FSD as well as as command line parameters. It then gives control to 
  1085.       the micro FSD. 
  1086.    7. When the micro IFS receives control, it loads the OS/2 loader (stored in 
  1087.       OS2LDR). It also loads the ext2fs mini IFS (MINIFSD.FSD). It then passes 
  1088.       control to OS2LDR, along with the current state of memory. 
  1089.    8. OS2LDR then loads OS2KRNL from disk, applies required fixups, and gives 
  1090.       control to the kernel. 
  1091.    9. The kernel then loads the mini IFS from its memory image. The mini IFS is 
  1092.       used to load the base device drivers, then the normal device drivers and 
  1093.       IFSes, then the VDD drivers. 
  1094.   10. When the normal ext2-os2 IFS is loaded, it replaces the mini IFS. 
  1095.  
  1096.  
  1097. ΓòÉΓòÉΓòÉ 10.4. Installing and configuring OS/2 on a Linux ext2fs partition ΓòÉΓòÉΓòÉ
  1098.  
  1099.    1. Sample initial situation 
  1100.    2. Copying OS/2 a Linux ext2fs partition 
  1101.    3. Copying the required ext2-os2 files on the ext2fs partition 
  1102.    4. Updating CONFIG.SYS 
  1103.    5. Configuring and running LILO to boot OS/2 from your ext2fs partition 
  1104.    6. Now time to reboot ... 
  1105.  
  1106.  
  1107. ΓòÉΓòÉΓòÉ 10.4.1. Sample initial situation ΓòÉΓòÉΓòÉ
  1108.  
  1109. hard disk 1 (100 Mb IDE drive) : 
  1110.  
  1111. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1112. ΓöéOS/2 driveΓöéOS/2 BM   ΓöéLinux     ΓöéLinux     ΓöéDescription                                  Γöé
  1113. Γöéletter    Γöéname      Γöédevice    Γöémount     Γöé                                             Γöé
  1114. Γöé          Γöé          Γöéname      Γöépoint     Γöé                                             Γöé
  1115. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1116. Γöé          Γöé          Γöé/dev/hda2 Γöé          ΓöéOS/2 boot manager partition                  Γöé
  1117. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1118. ΓöéC:        Γöétest      Γöé/dev/hda3 Γöé/disk_c   ΓöéLinux ext2fs test (type 0x07) partition      Γöé
  1119. Γöé          Γöé          Γöé          Γöé          Γöé(ext2flt not used to mount it)               Γöé
  1120. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1121. ΓöéF:        Γöélinux     Γöé/dev/hda1 Γöé/         ΓöéLinux ext2fs root (type 0x83) partition      Γöé
  1122. Γöé          Γöé          Γöé          Γöé          Γöé(ext2flt used to mount it)                   Γöé
  1123. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1124.  
  1125. ((See also linux and OS/2 fdisk output for drive 1) 
  1126.  
  1127. hard disk 2 (1.2 Gb SCSI drive) : 
  1128.  
  1129. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1130. ΓöéOS/2 driveΓöéOS/2 BM   ΓöéLinux     ΓöéLinux     ΓöéDescription                                  Γöé
  1131. Γöéletter    Γöéname      Γöédevice    Γöémount     Γöé                                             Γöé
  1132. Γöé          Γöé          Γöéname      Γöépoint     Γöé                                             Γöé
  1133. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1134. ΓöéD:        ΓöéWARP      Γöé/dev/sda1 Γöé          Γöéprimary OS/2 HPFS with OS/2 WARP installed   Γöé
  1135. Γöé          Γöé          Γöé          Γöé          Γöé(normal use)                                 Γöé
  1136. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1137. ΓöéD:        ΓöéEXT2-OS2  Γöé/dev/sda2 Γöé          Γöéprimary OS/2 HPFS with OS/2 and kernel       Γöé
  1138. Γöé          Γöé          Γöé          Γöé          Γöédebugger (to test ext2-os2)                  Γöé
  1139. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1140. ΓöéE:        Γöé          Γöé/dev/sda5 Γöé          Γöéextended OS/2 HPFS data partition.           Γöé
  1141. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1142.  
  1143. ((See also linux and OS/2 fdisk output for drive 2) 
  1144.  
  1145. LILO is installed in the superblock of /dev/hda1, and is configured to load 
  1146. /vmlinuz from this partition. (lilo.conf used to configure LILO) 
  1147.  
  1148.  
  1149. ΓòÉΓòÉΓòÉ 10.4.2. Copying OS/2 a Linux ext2fs partition ΓòÉΓòÉΓòÉ
  1150.  
  1151. To install OS/2, the easiest way will be to use the IBM EWS bootos2.zip package 
  1152. (available on usual OS/2 ftp sites). This package can create a bootable system 
  1153. from an existing installed system. It can install a system on either floppies 
  1154. or hard disks. Moreover it can create a minimal system (single text mode 
  1155. session), a PM enabled system, a WPS enabled system ... 
  1156.  
  1157. Here's how I installed a PM enabled system on drive F:. To do this, I booted my 
  1158. normal OS/2 system, went to the bootos2 directory and typed : 
  1159.  
  1160. BOOTOS2 TARGET=F: TYPE=PM
  1161.  
  1162. Some important remarks: 
  1163.  
  1164.      you must have the two OS/2 installation disks handy, bootos2 will ask 
  1165.       them. 
  1166.      when BOOTOS2 asks if you want to format the target partition, you must 
  1167.       answer to skip format !! 
  1168.      UEXT2.DLL must be somewhere in you LIBPATH, otherwise bootos2 will abort. 
  1169.      Sometimes for some reason, bootos2 forgets to copy the hidden OS2DUMP 
  1170.       file in the root directory. Please ensure that it has been copied. 
  1171.  
  1172.  Note on how to install a WPS enabled system 
  1173.  
  1174.  
  1175. ΓòÉΓòÉΓòÉ 10.4.3. Copying the required ext2-os2 files on the ext2fs partition ΓòÉΓòÉΓòÉ
  1176.  
  1177. Make a directory on the ext2fs partition to store ext2-os2 files (for instance 
  1178. F:\os2\fs\ext2) and copy the following files in it : 
  1179.  
  1180.      ext2-os2.exe 
  1181.      ext2-os2.ifs 
  1182.      ext2-os2.sym 
  1183.      ext2_lw.exe 
  1184.      sync.exe 
  1185.      vfsapi.dll 
  1186.      uext2.dll 
  1187.  
  1188.  Copy the following files in F:\OS2 : or in F:\OS2\BOOT 
  1189.  
  1190.      ext2flt.flt 
  1191.      ext2flt.sym 
  1192.      mwdd32.sys 
  1193.      mwdd32.sym 
  1194.  
  1195.  Copy the following files in F:\ : 
  1196.  
  1197.      microfsd.fsd 
  1198.      minifsd.fsd 
  1199.  
  1200.  
  1201. ΓòÉΓòÉΓòÉ 10.4.4. Updating CONFIG.SYS ΓòÉΓòÉΓòÉ
  1202.  
  1203. Then add the following statements at the beginning of F:\CONFIG.SYS  : 
  1204.  
  1205. REM
  1206. REM this should be the beginning of CONFIG.SYS
  1207. REM
  1208. IFS=F:\OS2\FS\EXT2\EXT2-OS2.IFS -cache:256 -rw -case_retensive <add other options if necessary>
  1209. RUN=F:\OS2\FS\EXT2\EXT2_LW.EXE
  1210. BASEDEV=MWDD32.SYS
  1211. BASEDEV=EXT2FLT.FLT /W <add other options if necessary>
  1212.  
  1213. Note: 
  1214.  
  1215.      the IFS managing the boot drive - in this case ext2-os2.ifs - must always 
  1216.       be the first statement in CONFIG.SYS, or OS/2 will crash during boot. 
  1217.      write access must be enabled or OS/2 will not work properly. 
  1218.      the -case_retensive option is necessary or OS/2 won't boot 
  1219.  
  1220.  
  1221. ΓòÉΓòÉΓòÉ 10.4.5. Configuring and running LILO to boot OS/2 from your ext2fs partition ΓòÉΓòÉΓòÉ
  1222.  
  1223.  Now reboot under Linux. In this step we'll need to know several things : 
  1224.  
  1225.      the boot drive geometry (number of tracks, number of sectors per track). 
  1226.       You can know them in your drive's manual, or in your BIOS setup. 
  1227.      the boot partition geometry (starting sector, number of sectors). You can 
  1228.       know it using fdisk -l (list partitions) 
  1229.      the boot drive BIOS device code (first drive is 0x80, second is 0x81 ...) 
  1230.  Then edit the /etc/lilo.conf to add /microfsd.fsd as a new boot image : 
  1231.  
  1232.   #
  1233.   # Start LILO global section
  1234.   #
  1235.   boot = /dev/hda1                # installs LILO in the superblock of /dev/hda1
  1236.   vga = normal                    # force sane state
  1237.   ramdisk = 0                     # paranoia setting
  1238.   prompt
  1239.   #
  1240.   # End LILO global section
  1241.   #
  1242.   # Linux bootable partition config begins
  1243.   #
  1244.   image = /vmlinuz                # normal Linux kernel image
  1245.     root = /dev/hda1
  1246.     label = linux                 # name to enter at LILO prompt
  1247.     read-only                     # Non-UMSDOS filesystems should be mounted read-only for checking
  1248.   #
  1249.   # Linux bootable partition config ends
  1250.   #
  1251.   # OS/2 bootable partition config begins
  1252.   #
  1253.   image = /microfsd.fsd           # ext2-os2 micro-fsd file (OS2LDR loader).
  1254.     label = test_os2              # name to enter at LILO prompt
  1255.     append = "os2_bios_device=0x80 os2_bootdrive=5 os2_hidden_sectors=0x19884 os2_sect=35 os2_head=6 os2_total_sectors=100800 os2_bytes_per_sector=512"
  1256.   #
  1257.   # OS/2 bootable partition config ends
  1258.   #
  1259.  
  1260.  In the "append=" we've passed mandatory informations to the ext2-os2 micro FSD 
  1261.  so that it can boot OS/2 properly. Below is a description of these parameters. 
  1262.  
  1263.  Note:  All these parameters are required. A wrong value in one of them will 
  1264.         prevent OS/2 from booting normally. 
  1265.  
  1266.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1267.   Γöéos2_bootdrive       Γöéthis is the OS/2 drive letter of the boot    Γöé
  1268.   Γöé                    Γöédrive. It MUST REFLECT the drive letter as   Γöé
  1269.   Γöé                    Γöéseen in a normal situation (in our case F:). Γöé
  1270.   Γöé                    ΓöéYou CANNOT REORDER drive letters with this   Γöé
  1271.   Γöé                    Γöéoption ; use ext2flt's /M option instead and Γöé
  1272.   Γöé                    Γöéupdate this value accordingly.               Γöé
  1273.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1274.   Γöéos2_bios_device     Γöéthis is the physical drive BIOS device code. Γöé
  1275.   Γöé                    ΓöéFloppy drives are 0 (A:) and 1 (:). Hard     Γöé
  1276.   Γöé                    Γöédrives are numbered starting at 0x80, so     Γöé
  1277.   Γöé                    Γöéphysical hard drive 1 is 0x80, drive 2 is    Γöé
  1278.   Γöé                    Γöé0x81.                                        Γöé
  1279.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1280.   Γöéos2_hidden_sectors  Γöéthis is sector number (512 bytes) of the     Γöé
  1281.   Γöé                    Γöéfirst sector of the boot partition. Use fdiskΓöé
  1282.   Γöé                    Γöé-uS -l under Linux to know it.               Γöé
  1283.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1284.   Γöéos2_total_sectors   Γöéthis is the size of the boot partition in 512Γöé
  1285.   Γöé                    Γöébytes sectors. Use fdisk -uS -l to know it.  Γöé
  1286.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1287.   Γöéos2_sect            Γöéthis is the number of sectors per track      Γöé
  1288.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1289.   Γöéos2_bytes_per_sectorΓöéthis is the hardware sector size in bytes    Γöé
  1290.   Γöé                    Γöé(normally 512 bytes).                        Γöé
  1291.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1292.   Γöéos2_head            Γöéthis is the number of heads                  Γöé
  1293.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1294.  
  1295.  Then run the map installer to update LILO configuration as follows : 
  1296.  
  1297.   lilo -v
  1298.  
  1299.  
  1300. ΓòÉΓòÉΓòÉ 10.4.6. Now time to reboot ... ΓòÉΓòÉΓòÉ
  1301.  
  1302. Now we can shutdown the system and reboot. Once in OS/2 boot manager menu, 
  1303. select "linux". This will start LILO. Once LILO is up - it should prompt 
  1304. "lilo:" at the top left corner of the screen - type "test_os2", then <ENTER> 
  1305. then let's prey !  Here are some checkpoints : 
  1306.  
  1307. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1308. Γöéext2-os2 MICROFSD   Γöémicrofsd.fsd has been successfuly loaded by  Γöé
  1309. Γöébanner appears on   ΓöéLILO, and has been successfuly started.      Γöé
  1310. Γöétop of the screen   Γöé                                             Γöé
  1311. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1312. Γöéa little white box  Γöéit means that microfsd.fsd has successfuly   Γöé
  1313. Γöéfollowed by the wordΓöéloaded OS2LDR and minifsd.fsd, and that      Γöé
  1314. Γöé"OS2" appears at theΓöéOS2LDR has been successfuly started.         Γöé
  1315. Γöétop left corner of  Γöé                                             Γöé
  1316. Γöéthe screen.         Γöé                                             Γöé
  1317. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1318. Γöéthe OS/2 logo bitmapΓöéit means that OS2LDR has successfuly loaded  Γöé
  1319. Γöéappears             ΓöéOS2KRNL, successfuly started the kernel, thatΓöé
  1320. Γöé                    Γöémicrofsd.fsd's job is over, and that         Γöé
  1321. Γöé                    Γöéminifsd.fsd's job is starting. From this     Γöé
  1322. Γöé                    Γöépoint CONFIG.SYS base device drivers begin toΓöé
  1323. Γöé                    Γöébe loaded.                                   Γöé
  1324. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1325. Γöéthe normal ext2-os2 Γöéext2-os2.ifs has just been loaded.           Γöé
  1326. Γöébanner appears.     Γöé                                             Γöé
  1327. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1328. ΓöéPM appears (if a PM ΓöéOS/2 boot process is successful !            Γöé
  1329. Γöésystem), or the OS/2Γöé                                             Γöé
  1330. Γöécommand prompt      Γöé                                             Γöé
  1331. Γöéappears.            Γöé                                             Γöé
  1332. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1333.  
  1334. Note: 
  1335.  
  1336.       The boot process will be probably slightly longer than a normal boot. 
  1337.       This is absolutely normal. 
  1338.       You can press ALT+F2 when the little white box appears : it will make 
  1339.       OS/2 tell what driver it is currently loading. 
  1340.       You can hook an ASCII terminal on the COM2 port (for instance a PC with a 
  1341.       terminal emulator, and a null-modem cable), ext2-os2 will write debug 
  1342.       information on COM2 port during the boot process. 
  1343.  
  1344.  
  1345. ΓòÉΓòÉΓòÉ 11. Linux ext2 file system utilities ΓòÉΓòÉΓòÉ
  1346.  
  1347. Note: 
  1348.  
  1349.      These utilities require the EMX runtime library (it can be found at 
  1350.       ftp://ftp-os2.nmsu.edu/os2/unix/emx09c/emxrt.zip). 
  1351.      These utilities require the "-errors=continue" switch to be set on the 
  1352.       ext2-os2.ifs command line in CONFIG.SYS. 
  1353.  
  1354.      e2fsck - check a Linux second extended file system 
  1355.      mke2fs - create a Linux second extended file system 
  1356.      badblocks - search a device for bad blocks 
  1357.      debugfs - ext2 file system debugger 
  1358.      chattr - change file attributes on a Linux second extended file system 
  1359.      lsattr - list file attributes on a Linux second extended file system 
  1360.      tune2fs - adjust tunable filesystem parameters on second extended 
  1361.       filesystems 
  1362.  
  1363.  
  1364. ΓòÉΓòÉΓòÉ 11.1. e2fsck - check a Linux second extended file system ΓòÉΓòÉΓòÉ
  1365.  
  1366. This program is also available through the standard CHKDSK command, with the 
  1367. same syntax described below. 
  1368.  
  1369. Note: 
  1370.  
  1371.      This chapter is a (almost) direct adaptation to IPF of the original Linux 
  1372.       e2fsck(8) man page. 
  1373.      If after running this program, you cannot access your drive and get a 
  1374.       message from OS/2 like "Cannot access the specified drive" or "The 
  1375.       specified drive is not formatted", DON'T PANIC ! It does *NOT* mean your 
  1376.       drive is lost; it only means that for some reason something went wrong 
  1377.       while trying to remount the drive after the e2fsck operation. Rebooting 
  1378.       OS/2 generally solves the problem. 
  1379.      This program requires the "-errors=continue" switch to be set on the 
  1380.       ext2-os2.ifs command line in CONFIG.SYS. 
  1381.  
  1382.      synopsis 
  1383.      description 
  1384.      options 
  1385.      exit code 
  1386.      reporting bugs 
  1387.      author 
  1388.      see also 
  1389.  
  1390.  
  1391. ΓòÉΓòÉΓòÉ 11.1.1. synopsis ΓòÉΓòÉΓòÉ
  1392.  
  1393.        e2fsck  [  -pacnyrdfvstFSV ] [ -b superblock ] [ -B block-
  1394.        size ] [ -l|-L bad_blocks_file ] device
  1395.  
  1396.  
  1397. ΓòÉΓòÉΓòÉ 11.1.2. description ΓòÉΓòÉΓòÉ
  1398.  
  1399.        e2fsck is used to check a Linux second extended file  sys-
  1400.        tem.
  1401.  
  1402.        device is  the  special  file  corresponding to the device
  1403.               (e.g /dev/hdXX on Linux, X: on OS/2).
  1404.  
  1405.  
  1406. ΓòÉΓòÉΓòÉ 11.1.3. options ΓòÉΓòÉΓòÉ
  1407.  
  1408.        -a     This option does the same thing as the  -p  option.
  1409.               It is provided for backwards compatibility only; it
  1410.               is suggested that people use -p option whever  pos-
  1411.               sible.
  1412.  
  1413.        -b superblock
  1414.               Instead  of  using  the  normal superblock, use the
  1415.               alternative superblock specified by superblock.
  1416.  
  1417.        -B blocksize
  1418.               Normally, e2fsck will search for the superblock  at
  1419.               various different block sizes in an attempt to find
  1420.               the appropriate block size.   This  search  can  be
  1421.               fooled in some cases.  This option forces e2fsck to
  1422.               only try locating the superblock  at  a  particular
  1423.               blocksize.   If the superblock is not found, e2fsck
  1424.               will terminate with a fatal error.
  1425.  
  1426.        -c     This option causes e2fsck to run  the  badblocks(8)
  1427.               program  to  find  any  blocks which are bad on the
  1428.               filesystem, and then marks them as  bad  by  adding
  1429.               them to the bad block inode.
  1430.  
  1431.        -d     Print  debugging  output  (useless  unless  you are
  1432.               debugging e2fsck ).
  1433.  
  1434.        -f     Force checking even if the file system seems clean.
  1435.  
  1436.        -F     Flush  the filesystem device's buffer caches before
  1437.               beginning.  Only really  useful  for  doing  e2fsck
  1438.               time trials.
  1439.  
  1440.        -l filename
  1441.               Add  the  blocks  listed  in  the file specified by
  1442.               filename to the list of bad blocks.
  1443.  
  1444.        -L filename
  1445.               Set the bad blocks list to be the  list  of  blocks
  1446.               specified by filename.  (This option is the same as
  1447.               the -l  option,  except  the  bad  blocks  list  is
  1448.               cleared  before  the  blocks listed in the file are
  1449.               added to the bad blocks list.)
  1450.  
  1451.        -n     Open the filesystem read-only, and assume an answer
  1452.               of  ``no''  to  all questions.  Allows e2fsck to be
  1453.               used non-interactively.  (Note: if the -c,  -l,  or
  1454.               -L  options  are  specified  in  addition to the -n
  1455.               option, then the filesystem will  be  opened  read-
  1456.               write, to permit the bad-blocks list to be updated.
  1457.               However, no other  changes  will  be  made  to  the
  1458.               filesystem.)
  1459.  
  1460.        -p     Automatically  repair  ("preen")  the  file  system
  1461.               without any questions.
  1462.  
  1463.        -r     This option does nothing at  all;  it  is  provided
  1464.               only for backwards compatibility.
  1465.  
  1466.               -s  This  option  will  byte-swap the filesystem so
  1467.               that it is using  the  normalized,  standard  byte-
  1468.               order  (which  is  i386  or little endian).  If the
  1469.               filesystem is already in the  standard  byte-order,
  1470.               e2fsck will take no action.
  1471.  
  1472.        -S     This  option will byte-swap the filesystem, regard-
  1473.               less of its current byte-order.
  1474.  
  1475.        -t     Print timing statistics for e2fsck.  If this option
  1476.               is  used  twice,  additional  timing statistics are
  1477.               printed on a pass by pass basis.
  1478.  
  1479.        -v     Verbose mode.
  1480.  
  1481.        -V     Print version information and exit.
  1482.  
  1483.        -y     Assume an  answer  of  ``yes''  to  all  questions;
  1484.               allows e2fsck to be used non-interactively.
  1485.  
  1486.  
  1487. ΓòÉΓòÉΓòÉ 11.1.4. exit code ΓòÉΓòÉΓòÉ
  1488.  
  1489.        The exit code returned by e2fsck is the sum of the follow-
  1490.        ing conditions:
  1491.             0    - No errors
  1492.             1    - File system errors corrected
  1493.             2    - File system errors corrected, system should
  1494.                    be rebooted if file system was mounted
  1495.             4    - File system errors left uncorrected
  1496.             8    - Operational error
  1497.             16   - Usage or syntax error
  1498.             128  - Shared library error
  1499.  
  1500.  
  1501. ΓòÉΓòÉΓòÉ 11.1.5. reporting bugs ΓòÉΓòÉΓòÉ
  1502.  
  1503.        Almost any piece of software will have bugs.  If you  man-
  1504.        age  to find a filesystem which causes e2fsck to crash, or
  1505.        which e2fsck is unable to repair, please report it to  the
  1506.        author.
  1507.  
  1508.        Please include as much information as possible in your bug
  1509.        report.  Ideally, include a  complete  transcript  of  the
  1510.        e2fsck  run,  so I can see exactly what error messages are
  1511.        displayed.  If you have a writeable filesystem  where  the
  1512.        transcript can be stored, the script(1) program is a handy
  1513.        way to save the output of to a file.
  1514.  
  1515.        It is also useful to send the output of dumpe2fs(8).  If a
  1516.        specific  inode  or inodes seems to be giving e2fsck trou-
  1517.        ble, try running the debugfs(8) command and send the  out-
  1518.        put  of the stat command run on the relevant inode(s).  If
  1519.        the inode is a directory, the debugfs  dump  command  will
  1520.        allow  you to extract the contents of the directory inode,
  1521.        which can sent to me after being first run  through  uuen-
  1522.        code(1).
  1523.  
  1524.        Always  include  the full version string which e2fsck dis-
  1525.        plays when it is run, so I know which version you are run-
  1526.        ning.
  1527.  
  1528.  
  1529. ΓòÉΓòÉΓòÉ 11.1.6. author ΓòÉΓòÉΓòÉ
  1530.  
  1531.        This  version  of  e2fsck  is  written  by  Theodore  Ts'o
  1532.        <tytso@mit.edu>.
  1533.        It has been ported to OS/2 by Matthieu Willm.
  1534.  
  1535.  
  1536. ΓòÉΓòÉΓòÉ 11.1.7. see also ΓòÉΓòÉΓòÉ
  1537.  
  1538.        mke2fs(8), tune2fs(8), dumpe2fs(8), debugfs(8)
  1539.  
  1540.  
  1541. ΓòÉΓòÉΓòÉ 11.2. mke2fs - create a Linux second extended file system ΓòÉΓòÉΓòÉ
  1542.  
  1543. This program is also available through the standard FORMAT command, with the 
  1544. same syntax described below. 
  1545.  
  1546. Note: 
  1547.  
  1548.      This chapter is a (almost) direct adaptation to IPF of the original Linux 
  1549.       mke2fs(8) man page. 
  1550.      If after running this program, you cannot access your drive and get a 
  1551.       message from OS/2 like "Cannot access the specified drive" or "The 
  1552.       specified drive is not formatted", DON'T PANIC ! It does *NOT* mean your 
  1553.       drive is lost; it only means that for some reason something went wrong 
  1554.       while trying to remount the drive after the mke2fs operation. Rebooting 
  1555.       OS/2 generally solves the problem. 
  1556.      This program requires the "-errors=continue" switch to be set on the 
  1557.       ext2-os2.ifs command line in CONFIG.SYS. 
  1558.  
  1559.      synopsis 
  1560.      description 
  1561.      options 
  1562.      author 
  1563.      bugs 
  1564.      availability 
  1565.      see also 
  1566.  
  1567.  
  1568. ΓòÉΓòÉΓòÉ 11.2.1. synopsis ΓòÉΓòÉΓòÉ
  1569.  
  1570.        mke2fs  [  -c | -l filename ] [ -b block-size ] [ -f frag-
  1571.        ment-size ] [ -i bytes-per-inode ] [  -m  reserved-blocks-
  1572.        percentage  ]  [ -o creator-os ] [ -q ] [ -v ] [ -F ] [ -L
  1573.        volume-label ] [ -M last-mounted-directory ] [ -S ] device
  1574.        [ blocks-count ]
  1575.  
  1576.  
  1577. ΓòÉΓòÉΓòÉ 11.2.2. description ΓòÉΓòÉΓòÉ
  1578.  
  1579. mke2fs is used to create a Linux second extended file system on a device 
  1580. (usually a disk partition). 
  1581.  
  1582. device is the special file corresponding to the device (e.g /dev/hdXX). 
  1583.  
  1584. blocks-count is the number of blocks on the device. If omitted, mke2fs 
  1585. automatically figures the file system size. 
  1586.  
  1587. Note:  On OS/2, device is actually the drive letter of the partition to be 
  1588.        formatted (e.g X:) 
  1589.  
  1590.  
  1591. ΓòÉΓòÉΓòÉ 11.2.3. options ΓòÉΓòÉΓòÉ
  1592.  
  1593.        -b block-size
  1594.               Specify the size of blocks in bytes.
  1595.  
  1596.        -c     Check the device for bad blocks before creating the
  1597.               file system, using a fast read-only test.
  1598.  
  1599.        -f fragment-size
  1600.               Specify the size of fragments in bytes.
  1601.  
  1602.        -i bytes-per-inode
  1603.               Specify the bytes/inode ratio.  mke2fs  creates  an
  1604.               inode  for  every bytes-per-inode bytes of space on
  1605.               the disk.   This  value  defaults  to  4096  bytes.
  1606.               bytes-per-inode must be at least 1024.
  1607.  
  1608.        -l filename
  1609.               Read the bad blocks list from filename
  1610.  
  1611.        -m reserved-blocks-percentage
  1612.               Specify  the  percentage of reserved blocks for the
  1613.               super-user.  This value defaults to 5%.
  1614.  
  1615.        -o     Manually override the default value of the "creator
  1616.               os"  field of the filesystem.  Normally the creator
  1617.               field is set by default to the  native  OS  of  the
  1618.               mke2fs executable.
  1619.  
  1620.        -q     Quiet  execution.   Useful  if  mke2fs  is run in a
  1621.               script.
  1622.  
  1623.        -v     Verbose execution.
  1624.  
  1625.        -F     Force mke2fs to run, even if the  specified  device
  1626.               is not a block special device.
  1627.  
  1628.        -L     Set the volume label for the filesystem.
  1629.  
  1630.        -M     Set  the last mounted directory for the filesystem.
  1631.               This might be useful for the sake of utilities that
  1632.               key  off of the last mounted directory to determine
  1633.               where the filesytem should be mounted.
  1634.  
  1635.        -S     Write superblock and group descriptors only.   This
  1636.               is  useful  if  all  of  the  superblock and backup
  1637.               superblocks are corrupted, and a last-ditch  recov-
  1638.               ery  method is desired.  It causes mke2fs to reini-
  1639.               tialize the superblock and group descriptors, while
  1640.               not  touching  the  inode  table  and the block and
  1641.               inode bitmaps.  The e2fsck program  should  be  run
  1642.               immediately after this option is used, and there is
  1643.               no guarantee that any data will be salvageable.
  1644.  
  1645.  
  1646. ΓòÉΓòÉΓòÉ 11.2.4. author ΓòÉΓòÉΓòÉ
  1647.  
  1648.        This version of mke2fs has been written by  Theodore  Ts'o
  1649.        <tytso@mit.edu>.
  1650.        It has been ported to OS/2 by Matthieu Willm.
  1651.  
  1652.  
  1653. ΓòÉΓòÉΓòÉ 11.2.5. bugs ΓòÉΓòÉΓòÉ
  1654.  
  1655.        mke2fs  accepts  the  -f  option  but currently ignores it
  1656.        because the second extended file system does  not  support
  1657.        fragments yet.
  1658.        There  may be some other ones.  Please, report them to the
  1659.        author.
  1660.  
  1661.  
  1662. ΓòÉΓòÉΓòÉ 11.2.6. availability ΓòÉΓòÉΓòÉ
  1663.  
  1664.        mke2fs is available for anonymous ftp from ftp.ibp.fr  and
  1665.        tsx-11.mit.edu in /pub/linux/packages/ext2fs.
  1666.  
  1667.  
  1668. ΓòÉΓòÉΓòÉ 11.2.7. see also ΓòÉΓòÉΓòÉ
  1669.  
  1670.        dumpe2fs(8), e2fsck(8), tune2fs(8)
  1671.  
  1672.  
  1673. ΓòÉΓòÉΓòÉ 11.3. badblocks - search a device for bad blocks ΓòÉΓòÉΓòÉ
  1674.  
  1675. Note: 
  1676.  
  1677.      This chapter is an (almost) direct adaptation to IPF of the original 
  1678.       Linux badblocks(8) man page. 
  1679.      To conform to the FAT 8:3 naming convention, this program has been 
  1680.       renamed badblks.exe. 
  1681.      This program requires the "-errors=continue" switch to be set on the 
  1682.       ext2-os2.ifs command line in CONFIG.SYS. 
  1683.  
  1684.      synopsis 
  1685.      description 
  1686.      options 
  1687.      warning 
  1688.      author 
  1689.      bugs 
  1690.      availability 
  1691.      see also 
  1692.  
  1693.  
  1694. ΓòÉΓòÉΓòÉ 11.3.1. synopsis ΓòÉΓòÉΓòÉ
  1695.  
  1696.        badblocks [ -b block-size ] [ -o output_file ] [ -v ] [ -w
  1697.        ] device blocks-count
  1698.  
  1699.  
  1700. ΓòÉΓòÉΓòÉ 11.3.2. description ΓòÉΓòÉΓòÉ
  1701.  
  1702.        badblocks is used to search for bad  blocks  on  a  device
  1703.        (usually a disk partition).
  1704.        device  is  the  special  file corresponding to the device
  1705.        (e.g /dev/hdXX).
  1706.        blocks-count is the number of blocks on the device.
  1707.  
  1708.  
  1709. ΓòÉΓòÉΓòÉ 11.3.3. options ΓòÉΓòÉΓòÉ
  1710.  
  1711.        -b block-size
  1712.               Specify the size of blocks in bytes.
  1713.  
  1714.        -o output_file
  1715.               Write the list of bad blocks to the specified file.
  1716.               Without this option, badblocks displays the list on
  1717.               its standard output.
  1718.  
  1719.        -v     Verbose mode.
  1720.  
  1721.        -w     Use write-mode test. With  this  option,  badblocks
  1722.               scans  for  bad  blocks  by  writing  some patterns
  1723.               (0xaa, 0x55, 0xff, 0x00)  on  every  block  of  the
  1724.               device,  reading every block and comparing the con-
  1725.               tents.
  1726.  
  1727.        Note:  The -w option is not yet implemented on OS/2.
  1728.  
  1729.  
  1730. ΓòÉΓòÉΓòÉ 11.3.4. warning ΓòÉΓòÉΓòÉ
  1731.  
  1732.        Never use the `-w'  option  on  an  device  containing  an
  1733.        existing file system.  This option erases data!
  1734.  
  1735.  
  1736. ΓòÉΓòÉΓòÉ 11.3.5. author ΓòÉΓòÉΓòÉ
  1737.  
  1738.        badblocks     has    been    written    by    Remy    Card
  1739.        <card@masi.ibp.fr>, the developer and  maintainer  of  the
  1740.        ext2 fs.
  1741.        It has been rewritten to OS/2 by Matthieu Willm.
  1742.  
  1743.  
  1744. ΓòÉΓòÉΓòÉ 11.3.6. bugs ΓòÉΓòÉΓòÉ
  1745.  
  1746.        I  had no chance to make reals tests of this program since
  1747.        I use IDE drives which remap bad blocks. I only made  some
  1748.        tests on floppies.
  1749.  
  1750.  
  1751. ΓòÉΓòÉΓòÉ 11.3.7. availability ΓòÉΓòÉΓòÉ
  1752.  
  1753.        badblocks  is  available for anonymous ftp from ftp.ibp.fr
  1754.        and tsx-11.mit.edu in /pub/linux/packages/ext2fs.
  1755.  
  1756.  
  1757. ΓòÉΓòÉΓòÉ 11.3.8. see also ΓòÉΓòÉΓòÉ
  1758.  
  1759.        e2fsck(8), mke2fs(8)
  1760.  
  1761.  
  1762. ΓòÉΓòÉΓòÉ 11.4. debugfs - ext2 file system debugger ΓòÉΓòÉΓòÉ
  1763.  
  1764. Note: 
  1765.  
  1766.      This chapter is a (almost) direct adaptation to IPF of the original Linux 
  1767.       debugfs(8) man page. 
  1768.      This program requires the "-errors=continue" switch to be set on the 
  1769.       ext2-os2.ifs command line in CONFIG.SYS. 
  1770.  
  1771.      synopsis 
  1772.      description 
  1773.      options 
  1774.      commands 
  1775.      specifying files 
  1776.      author 
  1777.      see also 
  1778.  
  1779.  
  1780. ΓòÉΓòÉΓòÉ 11.4.1. synopsis ΓòÉΓòÉΓòÉ
  1781.  
  1782.        debugfs [ -w ] [ -f cmd_file ] [ -R request ] [ device ]
  1783.  
  1784.  
  1785. ΓòÉΓòÉΓòÉ 11.4.2. description ΓòÉΓòÉΓòÉ
  1786.  
  1787.        The  debugfs  program is a file system debugger. It can be
  1788.        used to examine and change the state of an ext2 file  sys-
  1789.        tem.
  1790.        device  is  the  special  file corresponding to the device
  1791.        containing the ext2 file system (e.g /dev/hdXX).
  1792.  
  1793.  
  1794. ΓòÉΓòÉΓòÉ 11.4.3. options ΓòÉΓòÉΓòÉ
  1795.  
  1796.        -w     Specify that the file  system  should  be  open  in
  1797.               read-write mode. Without this option, the file sys-
  1798.               tem is open in read-only mode.
  1799.  
  1800.        -f cmd_file
  1801.               Causes debugfs to read in commands  from  cmd_file,
  1802.               and execute them.  When debugfs is finsihed execut-
  1803.               ing those commands, it will exit.
  1804.  
  1805.        -R request
  1806.               Causes  debugfs  to  execute  the  single   command
  1807.               request, and then exit.
  1808.  
  1809.  
  1810. ΓòÉΓòÉΓòÉ 11.4.4. commands ΓòÉΓòÉΓòÉ
  1811.  
  1812.        debugfs  is an interactive debugger. It understands a num-
  1813.        ber of commands.
  1814.  
  1815.        cat filespec
  1816.               Dump the contents of the inode filespec to  stdout.
  1817.  
  1818.        cd filespec
  1819.               Change the current working directory to filespec.
  1820.  
  1821.        chroot filespec
  1822.               Change the root directory to be the directory file-
  1823.               spec.
  1824.  
  1825.        close  Close the currently open file system.
  1826.  
  1827.        clri file
  1828.               Clear the contents of the inode file.
  1829.  
  1830.        dump [-p] filspec out_file
  1831.               Dump the contents of the inode filespec to the out-
  1832.               put  file  out_file.  If the -p option is given set
  1833.               the owner, group  and  permissions  information  on
  1834.               out_file to match filespec.
  1835.  
  1836.        expand_dir filespec
  1837.               Expand the directory filespec.
  1838.  
  1839.  
  1840.        find_free_block [goal]
  1841.               Find  the  first free block, starting from goal and
  1842.               allocates it.
  1843.  
  1844.        find_free_inode [dir [mode]]
  1845.               Find a free inode and allocates  it.   If  present,
  1846.               dir  specifies  the  inode  number of the directory
  1847.               which the inode  is  to  be  located.   The  second
  1848.               optional argument mode specifies the permissions of
  1849.               the new inode.  (If the directory bit is set on the
  1850.               mode,  the allocation routine will function differ-
  1851.               ently.)
  1852.  
  1853.        freeb block
  1854.               Mark the block number block as not allocated.
  1855.  
  1856.        freei filespec
  1857.               Free the inode specified by filespec
  1858.  
  1859.        help   Print a list of commands understood by  debugfs(8).
  1860.  
  1861.        icheck block ...
  1862.               Print  a listing of the inodes which use the one or
  1863.               more block specified on the command line.
  1864.  
  1865.        initialize device blocksize
  1866.               Create an ext2 file system on  device  with  device
  1867.               size blocksize.  Note that this does not fully ini-
  1868.               tialize all of the data structures; to do this, use
  1869.               the  mke2fs(8) program.  This is just a call to the
  1870.               low-level library, which sets up the superblock and
  1871.               block descriptors.
  1872.  
  1873.        kill_file filespec
  1874.               Dellocate  the inode filespec and its blocks.  Note
  1875.               that this does not remove any directory entries (if
  1876.               any) to this inode.  See the rm command if you wish
  1877.               to unlink a file.
  1878.  
  1879.        ln filespec dest_file
  1880.               Create a link named dest_file which is  a  link  to
  1881.               filespec.  Note this does not adjust the inode ref-
  1882.               erence counts.
  1883.  
  1884.        ls [-l] filespec
  1885.               Print a listing of the files in the directory file-
  1886.               spec.
  1887.  
  1888.        modify_inode filespec
  1889.               Modify  the  contents of the inode structure in the
  1890.               inode filespec.
  1891.  
  1892.        mkdir filespec
  1893.               Make a directory.
  1894.  
  1895.  
  1896.        mknod filespec [p|[[c|b] major minor]]
  1897.               Create a special device file (a named pipe, charac-
  1898.               ter  or  block  device).   If  a character or block
  1899.               device is to be made, the major  and  minor  device
  1900.               numbers must be specified.
  1901.  
  1902.        ncheck inode_num ...
  1903.               Take the requested list of inode numbers, and print
  1904.               a listing of pathnams to those inodes.
  1905.  
  1906.        open [-w] device
  1907.               Open a file system for editing.
  1908.  
  1909.        pwd    Print the current working directory.
  1910.  
  1911.        quit   Quit debugfs
  1912.  
  1913.        rm pathname
  1914.               Unlink pathname.  If this cuases the inode  pointed
  1915.               to by pathname to have no other references, deallo-
  1916.               cate the  file.   This  command  functions  as  the
  1917.               unlink() system call.
  1918.  
  1919.        rmdir filespec
  1920.               Remove  the  directory  filespec.  This function is
  1921.               currently not implemented.
  1922.  
  1923.        setb block
  1924.               Mark the block number block as allocated.
  1925.  
  1926.        seti filespec
  1927.               Mark inode filespec as in use in the inode  bitmap.
  1928.  
  1929.        show_super_stats
  1930.               List the contents of the super block.
  1931.  
  1932.        stat filespec
  1933.               Display  the contents of the inode structure of the
  1934.               inode filespec.
  1935.  
  1936.        testb block
  1937.               Test if the block number block is marked  as  allo-
  1938.               cated in the block bitmap.
  1939.  
  1940.        testi filespec
  1941.               Test  if  the inode filespec is marked as allocated
  1942.               in the inode bitmap.
  1943.  
  1944.        unlink pathname
  1945.               Remove the link specified by pathname to an  inode.
  1946.               Note  this  does  not  adjust  the  inode reference
  1947.               counts.
  1948.  
  1949.        write source_file out_file
  1950.               Create a file in the filesystem named out_file, and
  1951.               copy  the contents of source_file into the destina-
  1952.               tion file.
  1953.  
  1954.  
  1955. ΓòÉΓòÉΓòÉ 11.4.5. specifying files ΓòÉΓòÉΓòÉ
  1956.  
  1957.        Many debugfs commands take a filespec as  an  argument  to
  1958.        specify  an  inode  (as  opposed  to  a  pathname)  in the
  1959.        filesystem which is currently opened by debugfs. The file-
  1960.        spec  argument  may  be specified in two forms.  The first
  1961.        form is an inode  number  surrounded  by  angle  brackets,
  1962.        e.g., <2>.  The second form is a pathname; if the pathname
  1963.        is prefixed by a forward slash ('/'), then  it  is  inter-
  1964.        preted  relative  to  the  root of the filesystem which is
  1965.        currently opened by debugfs.   If  not,  the  pathname  is
  1966.        interpreted  relative  to the current working directory as
  1967.        maintained by debugfs.  This may be modified by using  the
  1968.        debugfs command cd.
  1969.  
  1970.  
  1971. ΓòÉΓòÉΓòÉ 11.4.6. author ΓòÉΓòÉΓòÉ
  1972.  
  1973.        debugfs was written by Theodore Ts'o <tytso@mit.edu>.
  1974.  
  1975.  
  1976. ΓòÉΓòÉΓòÉ 11.4.7. see also ΓòÉΓòÉΓòÉ
  1977.  
  1978.        dumpe2fs(8), e2fsck(8), mke2fs(8)
  1979.  
  1980.  
  1981. ΓòÉΓòÉΓòÉ 11.5. chattr - change file attributes on a Linux second extended file system ΓòÉΓòÉΓòÉ
  1982.  
  1983. Note: 
  1984.  
  1985.      This chapter is a (almost) direct adaptation to IPF of the original Linux 
  1986.       chattr(1) man page. 
  1987.      This program requires the "-errors=continue" switch to be set on the 
  1988.       ext2-os2.ifs command line in CONFIG.SYS. 
  1989.  
  1990.      synopsis 
  1991.      description 
  1992.      options 
  1993.      attributes 
  1994.      author 
  1995.      bugs and limitations 
  1996.      availability 
  1997.      see also 
  1998.  
  1999.  
  2000. ΓòÉΓòÉΓòÉ 11.5.1. synopsis ΓòÉΓòÉΓòÉ
  2001.  
  2002.        chattr [ -RV ] [ -v version ] [ mode ] files...
  2003.  
  2004.  
  2005. ΓòÉΓòÉΓòÉ 11.5.2. description ΓòÉΓòÉΓòÉ
  2006.  
  2007.        chattr changes the files attributes on an second  extended
  2008.        file system.
  2009.  
  2010.        The format of a symbolic mode is +-=[ASacdisu].
  2011.  
  2012.        The  operator  `+'  causes  the  selected attributes to be
  2013.        added to the existing attributes of the files; `-'  causes
  2014.        them  to  be  removed;  and `=' causes them to be the only
  2015.        attributes that the files have.
  2016.  
  2017.        The letters `ASacdisu' select the new attributes  for  the
  2018.        files:  don't  update  atime (A), synchronous updates (S),
  2019.        append only (a), compressed (c), immutable  (i),  no  dump
  2020.        (d), secure deletion (s), and undeletable (u).
  2021.  
  2022.  
  2023. ΓòÉΓòÉΓòÉ 11.5.3. options ΓòÉΓòÉΓòÉ
  2024.  
  2025.        -R     Recursively  change  attributes  of directories and
  2026.               their contents.
  2027.  
  2028.        -V     Verbosely describe changed attributes.
  2029.  
  2030.        -v version
  2031.               Set the files version.
  2032.  
  2033.  
  2034. ΓòÉΓòÉΓòÉ 11.5.4. attributes ΓòÉΓòÉΓòÉ
  2035.  
  2036.        When a file with the 'A' attribute set  is  modified,  its
  2037.        atime record is not modified.  This avoid a certain amount
  2038.        of disk I/O for laptop systems.
  2039.  
  2040.        A file with the `a' attribute set  can  only  be  open  in
  2041.        append mode for writing.
  2042.  
  2043.        A  file  with  the `c' attribute set is automatically com-
  2044.        pressed on the disk by the kernel. A read from  this  file
  2045.        returns uncompressed data. A write to this file compresses
  2046.        data before storing them on the disk.
  2047.  
  2048.        A file with the `d' attribute set  is  not  candidate  for
  2049.        backup when the dump(8) program is run.
  2050.  
  2051.        A  file with the `i' attribute cannot be modified: it can-
  2052.        not be deleted or renamed, no link can be created to  this
  2053.        file  and  no  data  can  be written to the file. Only the
  2054.        superuser can set or clear this attribute.
  2055.  
  2056.        When a file with the `s' attribute  set  is  deleted,  its
  2057.        blocks are zeroed and written back to the disk.
  2058.  
  2059.        When  a  file  with the `S' attribute set is modified, the
  2060.        changes are written synchronously on  the  disk;  this  is
  2061.        equivalent  to the `sync' mount option applied to a subset
  2062.        of the files.
  2063.  
  2064.        When a file with the `u' attribute  set  is  deleted,  its
  2065.        contents  is  saved.   This allows the user to ask for its
  2066.        undeletion.
  2067.  
  2068.  
  2069. ΓòÉΓòÉΓòÉ 11.5.5. author ΓòÉΓòÉΓòÉ
  2070.  
  2071.        chattr has been written by Remy  Card  <card@masi.ibp.fr>,
  2072.        the developer and maintainer of the ext2 fs.
  2073.        It has been ported to OS/2 by Matthieu Willm <willm@ibm.net>.
  2074.  
  2075.  
  2076. ΓòÉΓòÉΓòÉ 11.5.6. bugs and limitations ΓòÉΓòÉΓòÉ
  2077.  
  2078.        As of ext2 fs 0.5a, the `c' and `u' attribute are not hon-
  2079.        oured by the kernel code.  As of the Linux 2.0 kernel, the
  2080.        'A'  attribute  is  not  yet supported by the kernel code.
  2081.        (The noatime code is still in testing.)
  2082.  
  2083.        These attributes will be implemented in a future  ext2  fs
  2084.        version.
  2085.  
  2086.  
  2087. ΓòÉΓòÉΓòÉ 11.5.7. availability ΓòÉΓòÉΓòÉ
  2088.  
  2089.        chattr  is available for anonymous ftp from ftp.ibp.fr and
  2090.        tsx-11.mit.edu in /pub/linux/packages/ext2fs.
  2091.  
  2092.  
  2093. ΓòÉΓòÉΓòÉ 11.5.8. see also ΓòÉΓòÉΓòÉ
  2094.  
  2095.        lsattr(1)
  2096.  
  2097.  
  2098. ΓòÉΓòÉΓòÉ 11.6. lsattr - list file attributes on a Linux second extended file system ΓòÉΓòÉΓòÉ
  2099.  
  2100. Note: 
  2101.  
  2102.      This chapter is a (almost) direct adaptation to IPF of the original Linux 
  2103.       lsattr(1) man page. 
  2104.      This program requires the "-errors=continue" switch to be set on the 
  2105.       ext2-os2.ifs command line in CONFIG.SYS. 
  2106.  
  2107.      synopsis 
  2108.      description 
  2109.      options 
  2110.      author 
  2111.      bugs 
  2112.      availability 
  2113.      see also 
  2114.  
  2115.  
  2116. ΓòÉΓòÉΓòÉ 11.6.1. synopsis ΓòÉΓòÉΓòÉ
  2117.  
  2118.        lsattr [ -Radv ] [ files...  ]
  2119.  
  2120.  
  2121. ΓòÉΓòÉΓòÉ 11.6.2. description ΓòÉΓòÉΓòÉ
  2122.  
  2123.        lsattr lists the file attributes on a second extended file
  2124.        system.
  2125.  
  2126.  
  2127. ΓòÉΓòÉΓòÉ 11.6.3. options ΓòÉΓòÉΓòÉ
  2128.  
  2129.        -R     Recursively  list  attributes  of  directories  and
  2130.               their contents.
  2131.  
  2132.        -a     List all files in directories, including files that
  2133.               start with `.'.
  2134.  
  2135.        -d     List  directories  like  other  files,  rather than
  2136.               listing their contents.
  2137.  
  2138.        -v     List the files version.
  2139.  
  2140.  
  2141. ΓòÉΓòÉΓòÉ 11.6.4. author ΓòÉΓòÉΓòÉ
  2142.  
  2143.        lsattr has been written by Remy  Card  <card@masi.ibp.fr>,
  2144.        the developer and maintainer of the ext2 fs.
  2145.        It has been ported to OS/2 by Matthieu Willm <willm@ibm.net>
  2146.  
  2147.  
  2148. ΓòÉΓòÉΓòÉ 11.6.5. bugs ΓòÉΓòÉΓòÉ
  2149.  
  2150.        There are none :-).
  2151.  
  2152.  
  2153. ΓòÉΓòÉΓòÉ 11.6.6. availability ΓòÉΓòÉΓòÉ
  2154.  
  2155.        lsattr  is available for anonymous ftp from ftp.ibp.fr and
  2156.        tsx-11.mit.edu in /pub/linux/packages/ext2fs.
  2157.  
  2158.  
  2159. ΓòÉΓòÉΓòÉ 11.6.7. see also ΓòÉΓòÉΓòÉ
  2160.  
  2161.        chattr(1)
  2162.  
  2163.  
  2164. ΓòÉΓòÉΓòÉ 11.7. tune2fs - adjust tunable filesystem parameters on second extended filesystems ΓòÉΓòÉΓòÉ
  2165.  
  2166. Note: 
  2167.  
  2168.      This chapter is a (almost) direct adaptation to IPF of the original Linux 
  2169.       tune2fs(8) man page. 
  2170.      This program requires the "-errors=continue" switch to be set on the 
  2171.       ext2-os2.ifs command line in CONFIG.SYS. 
  2172.  
  2173.      synopsis 
  2174.      description 
  2175.      options 
  2176.      bugs 
  2177.      warning 
  2178.      author 
  2179.      availability 
  2180.      see also 
  2181.  
  2182.  
  2183. ΓòÉΓòÉΓòÉ 11.7.1. synopsis ΓòÉΓòÉΓòÉ
  2184.  
  2185.        tune2fs [ -l ] [ -c max-mount-counts ] [ -e  errors-behav-
  2186.        ior ] [ -i interval-between-checks ] [ -m reserved-blocks-
  2187.        percentage ] [ -r reserved-blocks-count  ]  [  -s  sparse-
  2188.        super-flag ] [ -u user ] [ -g group ] [ -C mount-count ] [
  2189.        -L volume-name ] [ -M last-mounted-directory ] [ -U UUID ]
  2190.        device
  2191.  
  2192.  
  2193. ΓòÉΓòÉΓòÉ 11.7.2. description ΓòÉΓòÉΓòÉ
  2194.  
  2195.        tune2fs  adjusts  tunable filesystem parameters on a Linux
  2196.        second extended filesystem.
  2197.  
  2198.        Never use tune2fs on a read/write  mounted  filesystem  to
  2199.        change parameters!
  2200.  
  2201.  
  2202. ΓòÉΓòÉΓòÉ 11.7.3. options ΓòÉΓòÉΓòÉ
  2203.  
  2204.        -c max-mount-counts
  2205.               adjust   the   maximal  mounts  count  between  two
  2206.               filesystem checks.
  2207.  
  2208.        -e errors-behavior
  2209.               change the behavior of the kernel code when  errors
  2210.               are  detected.   errors-behavior  can be one of the
  2211.               followings:
  2212.                    continue       Continue normal execution.
  2213.                    remount-ro     Remount  the  filesystem  read-
  2214.               only.
  2215.                    panic          Causes a kernel panic.
  2216.  
  2217.        -g group
  2218.               set  the  user  group  which  can  benefit from the
  2219.               reserved blocks.
  2220.               group can be a numerical gid or a group name.
  2221.  
  2222.        -i interval-between-checks[d|m|w]
  2223.               adjust the  maximal  time  between  two  filesystem
  2224.               checks.   No  postfix or `d' result in days, `m' in
  2225.               months, and `w' in weeks.  A  value  of  zero  will
  2226.               disable the timedependent checking.
  2227.  
  2228.        -l     list the contents of the filesystem superblock.
  2229.  
  2230.        -m reserved-blocks-percentage
  2231.               adjust  the reserved blocks percentage on the given
  2232.               device.
  2233.  
  2234.        -r reserved-blocks-count
  2235.               adjust the  reserved  blocks  count  on  the  given
  2236.               device.
  2237.  
  2238.        -s sparse_super_flag
  2239.               sets  and  resets  the sparse_superblock flag.  The
  2240.               sparse_superblock feature saves space on really big
  2241.               filesystems.   Warning:  The  Linux 2.0 kernel does
  2242.               not properly support this feature.  Neither do  all
  2243.               Linux 2.1 kernels; please don't use this unless you
  2244.               know what you're doing!
  2245.  
  2246.        -u user
  2247.               set the user who  can  benefit  from  the  reserved
  2248.               blocks.   user  can  be  a  numerical uid or a user
  2249.               name.
  2250.  
  2251.               -C mount-count set the number of times the filesys-
  2252.               tem has been mounted.
  2253.  
  2254.        -L volume-label
  2255.               set the volume label of the filesystem.
  2256.  
  2257.        -M last-mounted-directory
  2258.               set the last-mounted direcctory for the filesystem.
  2259.  
  2260.        -U UUID
  2261.               set the UUID of  the  filesystem.   A  sample  UUID
  2262.               looks                   like                  this:
  2263.               "c1b9d5a2-f162-11cf-9ece-0020afc76f16".   The  uuid
  2264.               may  also  be "null", which will set the filesystem
  2265.               UUID to the null UUID.  The uuid may also be  "ran-
  2266.               dom", which will generate a new random UUID for the
  2267.               filesystem.
  2268.  
  2269.  
  2270. ΓòÉΓòÉΓòÉ 11.7.4. bugs ΓòÉΓòÉΓòÉ
  2271.  
  2272.        We didn't find any bugs yet. Perhaps there  are  bugs  but
  2273.        it's unlikely.
  2274.  
  2275.  
  2276. ΓòÉΓòÉΓòÉ 11.7.5. warning ΓòÉΓòÉΓòÉ
  2277.  
  2278.        Use  this  utility  on  your  own  risk.  You're modifying
  2279.        filesystems.
  2280.  
  2281.  
  2282. ΓòÉΓòÉΓòÉ 11.7.6. author ΓòÉΓòÉΓòÉ
  2283.  
  2284.        tune2fs has been written by Remy Card  <card@masi.ibp.fr>,
  2285.        the developer and maintainer of the ext2 fs.
  2286.        tune2fs  uses  the ext2fs library written by Theodore Ts'o
  2287.        <tytso@mit.edu>.
  2288.        This manual page was written by Christian Kuhtz <chk@data-
  2289.        hh.Hanse.DE>.
  2290.        Timedependent    checking    was   added   by   Uwe   Ohse
  2291.        <uwe@tirka.gun.de>.
  2292.        tune2fs has been ported to OS/2 by Matthieu Willm <willm@ibm.net>
  2293.  
  2294.  
  2295. ΓòÉΓòÉΓòÉ 11.7.7. availability ΓòÉΓòÉΓòÉ
  2296.  
  2297.        tune2fs is available for anonymous ftp from ftp.ibp.fr and
  2298.        tsx-11.mit.edu in /pub/linux/packages/ext2fs.
  2299.  
  2300.  
  2301. ΓòÉΓòÉΓòÉ 11.7.8. see also ΓòÉΓòÉΓòÉ
  2302.  
  2303.        dumpe2fs(8), e2fsck(8), mke2fs(8)
  2304.  
  2305.  
  2306. ΓòÉΓòÉΓòÉ 12. Other useful utilities ΓòÉΓòÉΓòÉ
  2307.  
  2308. Note:  These utilities require the EMX runtime library (it can be found at 
  2309.        ftp://ftp-os2.nmsu.edu/os2/unix/emx09c/emxrt.zip). 
  2310.  
  2311.      sync - commits data to disk 
  2312.      umount - detaches the current file system from a disk 
  2313.      remount - attaches a file system to a disk 
  2314.      hardlink - creates a hard link to an existing file 
  2315.  
  2316.  
  2317. ΓòÉΓòÉΓòÉ 12.1. sync - commits data to disk ΓòÉΓòÉΓòÉ
  2318.  
  2319. sync.exe does exactly what its Unix counterpart (sync) does : it commits all 
  2320. buffered data to disks. 
  2321.  
  2322. Invocation : 
  2323.  
  2324. sync
  2325.  
  2326. Note:  This utility will only commit data located on Linux ext2fs partitions. 
  2327.        It does NOT work on other file systems. 
  2328.  
  2329.  
  2330. ΓòÉΓòÉΓòÉ 12.2. umount - detaches the current file system from a disk ΓòÉΓòÉΓòÉ
  2331.  
  2332. unmount.exe will cleanly unmount a drive by committing all data and detaching 
  2333. the file system currently attached to it. After this operation, the OS/2 drive 
  2334. letter is still present, but the drive cannot be accessed. This utility issues 
  2335. a true unmount of the file system from the drive (eg it's a real unmount, not a 
  2336. hack, by calling the IFS's FS_MOUNT entry point). 
  2337.  
  2338. Invocation : 
  2339.  
  2340. umount X:
  2341.  
  2342. X: is the drive to be unmounted. If successful, the drive X: can no longer be 
  2343. accessed. Fo instance typing "dir X:" should give the following message : 
  2344. "SYS0026: The specified disk or diskette cannot be accessed.". If the media is 
  2345. removable, it can be safely removed or ejected. 
  2346.  
  2347. Note: 
  2348.  
  2349.      umount.exe requires that NO files are open on the drive. 
  2350.      umount.exe only works on LOCAL file systems (FAT, HPFS, ext2, CDFS ...). 
  2351.       It does NOT work on remote file systems (network drives) which should 
  2352.       come with their own unmount utility. 
  2353.  
  2354.  Warning: *** NEVER *** run any programs that directly access drives on a drive 
  2355.  previously unmounted with unmount.exe. Most of these programs blindly assume 
  2356.  the drive is formatted as FAT and thus can cause massive loss of data. These 
  2357.  programs include : 
  2358.  
  2359.      CHKDSK 
  2360.      PMCHKDSK 
  2361.      FORMAT (... unless you want to format the drive !) 
  2362.      Disk optimizers, defrag utilities 
  2363.      File system checkers (Norton disk doctor and such) 
  2364.      File recoverers, undelete utilities 
  2365.      Disk editors (unless you know what you're doing) 
  2366.      ... 
  2367.  
  2368.  Remember the main purpose of unmount.exe is to remove the media right after ! 
  2369.  
  2370.  
  2371. ΓòÉΓòÉΓòÉ 12.3. remount - attaches a file system to a disk ΓòÉΓòÉΓòÉ
  2372.  
  2373. remount.exe will force OS/2 to reattach a file system to the specified drive. 
  2374. If a file system was already attached, it will be detached first. remount.exe 
  2375. can be called to be able to gain access to a drive previously unmounted with 
  2376. unmount.exe. 
  2377.  
  2378. Invocation : 
  2379.  
  2380. remount X:
  2381.  
  2382. X: is the drive to be remounted. If successful, the drive X: can then be 
  2383. accessed normally. 
  2384.  
  2385. Note: 
  2386.  
  2387.      the OS/2 kernel will automatically determine the proper file system to be 
  2388.       attached to the drive. 
  2389.      remount.exe requires that NO files are open on the drive. 
  2390.      remount.exe only works on LOCAL file systems (FAT, HPFS, ext2, CDFS ...). 
  2391.       It does NOT work on remote file systems (network drives) which should 
  2392.       come with their own mount utility. 
  2393.  
  2394.  
  2395. ΓòÉΓòÉΓòÉ 12.4. hardlink - creates a hard link to an existing file ΓòÉΓòÉΓòÉ
  2396.  
  2397. hardlink is a small replacement of the UNIX "ln" command. Its purpose is to 
  2398. create a hard link to an existing file. 
  2399.  
  2400. Invocation : 
  2401.  
  2402. hardlink <oldname> <newname>
  2403.  
  2404. This will creates <newname> linked to the file <oldname>. 
  2405.  
  2406.  
  2407. ΓòÉΓòÉΓòÉ 13. Frequently Asked Questions (FAQ) ΓòÉΓòÉΓòÉ
  2408.  
  2409.      I cannot write to my Linux ext2 partitions, even if I enable write access 
  2410.       in CONFIG.SYS 
  2411.  
  2412.       Write access must be enabled for BOTH ext2flt.flt (/W switch) AND 
  2413.       ext2-os2.ifs (-rw switch) in CONFIG.SYS. 
  2414.  
  2415.      When the system boots, OS/2 tells me that EXT2-OS2.IFS contains an 
  2416.       invalid device driver or file system driver. 
  2417.  
  2418.       ext2-os2 requires the MWDD32.SYS driver to be loaded. Ensure that you 
  2419.       CONFIG.SYS contains a line like : 
  2420.  
  2421.             basedev=mwdd32.sys
  2422.  
  2423.      When OS/2 boots, I get SYS2068 messages. 
  2424.  
  2425.       You can try to turn on quiet mode on the following drivers : 
  2426.  
  2427.            ext2-os2.ifs (-q switch) 
  2428.            mwdd32.sys (-q switch) 
  2429.            ext2flt.flt (/Q switch) 
  2430.  
  2431.      I cannot run OS/2 programs from a Linux partitions 
  2432.  
  2433.       The Linux ext2 file system is a case sensitive file system, and this 
  2434.       breaks many OS/2 or DOS programs which uppercase or lowercase file names 
  2435.       (because FAT and HPFS are NOT case sensitive). The OS/2 program loader 
  2436.       itself uppercase file names. To run OS/2 programs from a Linux partition, 
  2437.       you must use the -case_retensive switch on the ext2-os2.ifs command line 
  2438.       (see Case sensitivity considerations). 
  2439.  
  2440.      My system hangs during boot, and it seems to occur before ext2-os2.ifs is 
  2441.       loaded. 
  2442.  
  2443.       There seems to be a problem between EXT2FLT.FLT, and drivers that makes 
  2444.       removable devices appear as fixed, like Syquest's SYQLOCK.FLT, IBM's 
  2445.       LOCKDRV.FLT and so on. If you have removable media like MO drives, ZIP 
  2446.       drives, Syquest drives and so on, try to put EXT2FLT.FLT as the FIRST 
  2447.       .FLT driver in config.sys, AHEAD of your vendor's filter driver. 
  2448.  
  2449.      Can I backup my Linux system from OS/2 using ext2-os2 and XYZ backup 
  2450.       software ? 
  2451.  
  2452.       Unfortunately you won't be able to backup a full Linux system from OS/2. 
  2453.       This is not a ext2-os2 limitation : your OS/2 XYZ backup software knows 
  2454.       NOTHING about UNIX permissions or UNIX special files (symbolic links, 
  2455.       fifos, sockets, drivers in /dev), it will not save them and naturally not 
  2456.       restore them (your restored system will probably not work). 
  2457.  
  2458.       However, if you intend to backup only data files (for instance a 
  2459.       development source tree), and the tree you plan to backup doesn't contain 
  2460.       special files, then you can backup them from OS/2. But when you restore, 
  2461.       you will have to manually reset UNIX ownership and file permissions using 
  2462.       the UNIX commands chown and chmod. 
  2463.  
  2464.  
  2465. ΓòÉΓòÉΓòÉ 14. History of changes ΓòÉΓòÉΓòÉ
  2466.  
  2467. This chapter describes the changes between each release of ext2-os2 
  2468.  
  2469.    1. From 0.1 to 0.2 
  2470.    2. From 0.2 to 0.3 
  2471.    3. From 0.3 to 0.4 
  2472.    4. From 0.4 to 0.5 
  2473.    5. From 0.5 to 0.6 
  2474.    6. From 0.6 to 0.7 
  2475.    7. From 0.7 to 0.8 
  2476.    8. From 0.8 to 0.9 
  2477.    9. From 0.9 to 2.0 
  2478.   10. From 2.0 to 2.1 
  2479.   11. From 2.1 to 2.2 
  2480.   12. From 2.2 to 2.3 
  2481.   13. From 2.3 to 2.4 
  2482.  
  2483.  
  2484. ΓòÉΓòÉΓòÉ 14.1. From 0.1 to 0.2 ΓòÉΓòÉΓòÉ
  2485.  
  2486.      DOS sessions can now access ext2fs partitions. WinOS2 sessions can also, 
  2487.       but they crash randomly and I couldn't figure out why yet ! 
  2488.      The per volume disk cache size is now user configurable from 64 Kb to 60 
  2489.       * 64 Kb. However it is not evident that a huge disk cache will improve 
  2490.       performance significantly : the cache lookup algorithm is still primitive 
  2491.       (single LRU list). 
  2492.      Sources are now included 
  2493.      FS_FINDFIRST, FS_FINDNEXT and FS_FINDFROMNAME now use the same lookup 
  2494.       routine 
  2495.      The directory entry cache is now implemented (identical to the Linux one) 
  2496.      readdir() now uses the original ext2_readdir() routine instead of a quick 
  2497.       (and somewhat dirty) rewrite 
  2498.      FS_FSINFO now returns a 'true' volume serial number instead of garbage. 
  2499.       This volume serial number is a CRC checksum of sector 0. 
  2500.      FS_MOUNT now checks for a previous instance of the volume to be mounted, 
  2501.       instead of remounting blindly a previously mounted volume. 
  2502.      FS_MOUNT with MOUNT_RELEASE flag now closes the volume and frees memory 
  2503.      brelse() no longer produces a system halt (trap D) when receiving a NULL 
  2504.       buffer : it now ignores it like its Linux counterpart 
  2505.      Direct access opens (OPEN_FLAGS_DASD) are now supported in both read only 
  2506.       and readwrite modes 
  2507.      Write capabilities added : 
  2508.         -  FS_MKDIR and FS_RMDIR implemented 
  2509.         -  FS_SHUTDOWN implemented 
  2510.         -  FS_OPENCREATE in writeonly and readwrite mode implemented 
  2511.         -  FS_WRITE implemented 
  2512.         -  FS_DELETE implemented 
  2513.      FS_CLOSE now calls ext2_release_file() when the last instance of a file 
  2514.       is closed 
  2515.      "-cache:<disk cache size>" Command line parameters added to set the per 
  2516.       volume disk cache size 
  2517.      "-q" command line parameter added (quiet initialisation) 
  2518.      "-rw" command line parameter added (write access allowed) 
  2519.      The memory I-node management routines (iput() iget() ...) are now a port 
  2520.       of their Linux counterparts instead of a rewrite. 
  2521.      Linux scheduling and semaphore management routines (sleep_on(), wake_up() 
  2522.       down() up() ...) have been rewritten using ProcBlock/ProcRun device 
  2523.       helpers instead of FSH_SEMxxx : now their behaviour should be identical 
  2524.       to their Linux counterparts. 
  2525.      The mount process is now almost identical as in ext2fs. 
  2526.      When OS/2 mounts a ext2fs partition, it sets the mount count to the 
  2527.       maximum to force Linux to autocheck ext2fs partitions "touched" by OS/2. 
  2528.      Buffer head structures now *NEVER* reach segment boundaries : this avoids 
  2529.       TREMENDOUS problems with some ext2fs routines (ext2_add_entry() ...) 
  2530.       which do some pointer arithmetics which simply don't work in a 16:16 
  2531.       memory model. 
  2532.  
  2533.  
  2534. ΓòÉΓòÉΓòÉ 14.2. From 0.2 to 0.3 ΓòÉΓòÉΓòÉ
  2535.  
  2536.      There is now a translation from Linux error codes (those in 
  2537.       linux/errno.h) to OS/2 error codes (bseerr.h). Now for instance, cmd.exe 
  2538.       says "Directory not empty" instead of "Cannot find message 65503". This 
  2539.       translation currently occurs in FS_READ, FS_WRITE, FS_RMDIR , FS_DELETE, 
  2540.       FS_MOVE and FS_MKDIR. 
  2541.      FS_COPY() is now supported (in fact emulated by the OS/2 kernel). It was 
  2542.       just a matter of returning ERROR_CANNOT_COPY from FS_COPY() - this makes 
  2543.       the kernel emulate the copy operation - instead of ERROR_NOT_SUPPORTED. 
  2544.       This applies only to copy operations inside or between ext2fs partitions. 
  2545.      Some cleanup in the code, by removing much direct ext2fs call and 
  2546.       replacing them by Linux VFS style calls (inode->i_op->read() for instance 
  2547.       instead of ext2_file_read()). This would ease te work of people trying to 
  2548.       port other Linux file systems to OS/2. 
  2549.      FS_MOVE is now implemented. 
  2550.      Corrected a bug in FS_DevHelp_ProcBlock : register di was not preserved 
  2551.       across the call, causing some random trap D. 
  2552.      Corrected a bug in read_inode when in DASD mode (OPEN_FLAGS_DASD) : some 
  2553.       I-node fields are now properly initialized ; This was preventing FS_READ 
  2554.       to work on a direct access handle (inode->i_mode was 0 and FS_READ 
  2555.       reported "not a regular file"). 
  2556.      Suppressed strict locking of buffers : now buffers can be used more than 
  2557.       once, conforming to Linux buffers (no more mutex in getblk and brelse), 
  2558.       some ext2fs routines do rely on it (ext2_rename)  ... ext2-os2 on OS/2 
  2559.       for SMP is not for tomorrow !! 
  2560.      Added -no_auto_fsck command line switch to disable the forced e2fsck when 
  2561.       Linux mounts a partition "touched" by OS/2. 
  2562.      Added code to close remaining open files at shutdown. Normally they 
  2563.       shouldn't be any, but the WPS lets some pending search handles 
  2564.       (DosFindxxx) ; this could result in file system corruption (a search 
  2565.       handle on a directory later deleted for instance : the deletion is not 
  2566.       committed until all references to the directory are closed). 
  2567.      Synchronous files (OPEN_FLAGS_WRITE_THROUGH and OPEN_FLAGS_NO_CACHE) 
  2568.       should be now handled correctly. 
  2569.  
  2570.  
  2571. ΓòÉΓòÉΓòÉ 14.3. From 0.3 to 0.4 ΓòÉΓòÉΓòÉ
  2572.  
  2573.      Corrected a bug in FS_MOUNT that caused a system halt (trap D) when 
  2574.       loading the WinOS2 file manager and ext2-os2 not being the last IFS 
  2575.       statement in CONFIG.SYS 
  2576.      Corrected a bug in FS_CLOSE that caused some random file system 
  2577.       corruption : ext2_release_file() was not correctly called. 
  2578.      Now FS_OPENCREATE opens only regular files, as it seems to be the default 
  2579.       OS/2 behaviour. (FS_OPENCREATE no longer opens directories). 
  2580.      Added the -trace option to ext2-os2.exe : ext2d.exe is no longer 
  2581.       necessary. 
  2582.      Now ext2-os2.exe correctly ends conversation with the IFS when being 
  2583.       closed. 
  2584.      ext2flt has been upgraded from V1.2 to V1.2b 
  2585.      During shutdown the flush mechanism could be disturbed if other activity 
  2586.       (lw daemon ...) was taking place (resulting in potential file and/or file 
  2587.       system corruption). This has been corrected. 
  2588.      The famous random trap D at CS:EIP=<any cs>:142e occuring at boot time 
  2589.       should now be corrected ... It was in fact a trap occuring inside the 
  2590.       Microsoft Visual C++ runtime library, only under retail OS/2 kernel (no 
  2591.       trap at all under kernel debugger !). After having taken 5 or 6 system 
  2592.       dumps I realized it was because somewhere an INT 21h call was issued 
  2593.       inside the vsprintf() routine. I changed vsprintf() for the Linux kernel 
  2594.       one. 
  2595.  
  2596.  
  2597. ΓòÉΓòÉΓòÉ 14.4. From 0.4 to 0.5 ΓòÉΓòÉΓòÉ
  2598.  
  2599.      Added support for strategy 2 I/O for non removable medias (for block 
  2600.       devices that support it !). This results in huge perfomance improvements 
  2601.       : throughput can be 5 times better than with standard I/O in some 
  2602.       circumstances (large file read/write). 
  2603.      Improved and corrected many bugs concerning time stamping of regular 
  2604.       files (last access date/time and last write date/time should now reflect 
  2605.       the reality !) - Time stamping of directories is yet to be improved. 
  2606.      Corrected a bug in ll_rw_block() that could cause some file/file system 
  2607.       corruption in rare circumstances. 
  2608.      Some cleanup in the source code : removed some inline assembly, improved 
  2609.       init routines .... 
  2610.      Added support for the standard DosFsCtl function 1 call (get extended 
  2611.       error info). 
  2612.      Added a first version of the VFSAPI library : it currently implements the 
  2613.       stat(), fstat() and sync() calls. 
  2614.      DosResetBuffer is now supported (FS_COMMIT entry point). 
  2615.      Disk cache management has been completely rewritten : the disk cache code 
  2616.       is now a port of the Linux buffer management code (dynamic disk cache 
  2617.       size) 
  2618.      ext2-os2.exe is now a PM application, and can now monitor some data from 
  2619.       ext2-os2.ifs. 
  2620.      Changed many FSH_PROBEBUF into VMLock/VMUnlock pairs so that user buffers 
  2621.       passed to the IFS can't be freed by other threads. 
  2622.      Added -case_retensive command line option to make ext2-os2.ifs behave 
  2623.       like HPFS (case is not significant but kept within the file system, for 
  2624.       instance File and FILE are considered to be the same file). This fixes 
  2625.       MANY apps which uppercase file names, but there's a risk of loosing data 
  2626.       if 2 files with the same case exists in the same directory (see usage 
  2627.       information for details). 
  2628.      Added command line switches to trace some IFS entry points (for instance 
  2629.       -FS_MKDIR will trace FS_MKDIR calls). This makes the debug version of 
  2630.       ext2-os2.ifs (ext2d.ifs) no longer necessary. 
  2631.      Deon van der Westhuysen's ext2flt.flt has been updated to version 1.2c in 
  2632.       this package. I recompiled ext2flt.flt with MS Visual C++ simply because 
  2633.       I don't have borland C++, and I needed to temporarily include some 
  2634.       debugging code to solve problems with strategy 2 I/Os (in fact the 
  2635.       problems were in OS2DASD.DMD !). Normally this "MS Visual C++" version 
  2636.       should behave absolutely like the original Borland compiled version. But 
  2637.       in case you prefer using the original version, you can find it on 
  2638.       ftp-os2.nmsu.edu (/os2/diskutil/e2flt12c.zip) or on quark.cs.sun.ac.za 
  2639.       (/pub/ext2flt/e2flt12c.zip). See the file ext2flt/makefile.msc for 
  2640.       details. 
  2641.      File systems greater than 2 Gb should now be mounted correctly. 
  2642.      Many other changes ! 
  2643.  
  2644.  
  2645. ΓòÉΓòÉΓòÉ 14.5. From 0.5 to 0.6 ΓòÉΓòÉΓòÉ
  2646.  
  2647.      Corrected a bug in FS_NEWSIZE : the I-node wasn't marked dirty after the 
  2648.       size change. This resulted in random truncation failures. 
  2649.      Corrected a bug in FS_OPENCREATE : When creating a new file or replacing 
  2650.       an existing one (OPEN_ACTION_REPLACE_IF_EXISTS or 
  2651.       OPEN_ACTION_CREATE_IF_NEW) the new file size passed to the IFS was 
  2652.       ignored, this resulted in truncation failures. 
  2653.      DosSetFileInfo is now supported for level 1 : it will change the file 
  2654.       dates. Level 2 (used to store or change EAS) is ignored because ext2fs 
  2655.       doesn't support EAS. 
  2656.      DosSetPathInfo is now supported for level 1 : it will change the file 
  2657.       dates. Level 2 (used to store or change EAS) is ignored because ext2fs 
  2658.       doesn't support EAS. 
  2659.      Corrected a *STUPID* bug that caused a system halt at boot time with 
  2660.       message "EXT2-os2 : buffer_init() - Couldn't allocate disk block hash 
  2661.       table" when the max. cache size was not set on the IFS command line. If 
  2662.       not set, the cache size remained uninitialized (0) instead of getting its 
  2663.       default value...hence the system halt when trying to allocate a 0 length 
  2664.       buffer. 
  2665.      Corrected a bug in date_dos2unix ; it made FS_CLOSE write incorrect file 
  2666.       times to disk (file dates were OK). 
  2667.      The time zone is now taken into account by ext2-os2.ifs. This makes 
  2668.       ext2-os2.ifs reflects file time stamps in local time instead of UTC 
  2669.       (ext2-os2.ifs and linux times should now match). The time zone is set in 
  2670.       CONFIG.SYS through the EXT2_TZ environment variable (minutes from UTC). 
  2671.      Trace for the following entry points has been added : 
  2672.         -  FS_PATHINFO 
  2673.         -  FS_FILEATTRIBUTE 
  2674.         -  FS_FILEINFO 
  2675.         -  FS_PROCESSNAME 
  2676.      Optimized a little bit the use of iget/iput in FS_DELETE and 
  2677.       FS_OPENCREATE. 
  2678.      Corrected some bugs related to time stamping. ext2-os2.ifs no longer let 
  2679.       the kernel do the time stamping, but does it itself. For instance when 
  2680.       copying a file on an ext2fs file system, the file creation date should 
  2681.       now be the one from the original file. 
  2682.      ext2-os2.exe now traces the use of iput and iget routines. 
  2683.      changed the panic code. 
  2684.      addded the -errors=[panic|cont] command line parameter 
  2685.      Setting or clearing the DOS READONLY attribute is now supported 
  2686.       (FS_FILEATTRIBUTE, FS_FILEINFO and FS_PATHINFO). 
  2687.  
  2688.  
  2689. ΓòÉΓòÉΓòÉ 14.6. From 0.6 to 0.7 ΓòÉΓòÉΓòÉ
  2690.  
  2691.      changed the EXT2_TZ valid range from [-720;720] to [-1440;1440] so that 
  2692.       every countries can be supported (New Zeland has a 13 hour shift from UTC 
  2693.       ...) 
  2694.      corrected a major bug in sys_bdflush that made the system hang when 
  2695.       ext2_lw.exe was loaded before any Linux partitions are mounted. 
  2696.      corrected a time stamp problem in FS_COMMIT. 
  2697.  
  2698.  
  2699. ΓòÉΓòÉΓòÉ 14.7. From 0.7 to 0.8 ΓòÉΓòÉΓòÉ
  2700.  
  2701.      corrected a bug that prevented negative values to be specified for the 
  2702.       EXT2_TZ environment variable. 
  2703.      corrected a bug in FS_OPENCREATE that caused a truncation failure when 
  2704.       OPEN_ACTION_REPLACE_IF_EXISTS was set and a non zero file size was 
  2705.       passed. 
  2706.      corrected a problem in bdflush() that made IOSTONE giving ridiculously 
  2707.       small results. After that IOSTONE results on my antic IDE disk jumped 
  2708.       from 80 (no it's not a typo!) to 2500. 
  2709.      changed a compiler option : now only externally called routines load DS 
  2710.       on entry. This allows better optimization. 
  2711.      now DGROUP is compeletely fixed in memory (instead of only 
  2712.       EXT2_FIXED_DATA), because I discovered that the compiler sometimes makes 
  2713.       references to some internal data in CONST segment (it seems to create 
  2714.       selector aliases for optimization I think). This could cause a trap E in 
  2715.       routines called in interrupt context if CONST was swapped out. I 
  2716.       simplified DevHelp bindings in devhelp2.asm accordingly. 
  2717.      added debug output to COM ports (COM1 or COM2). 
  2718.      added boot capability to ext2-os2 (wrote a micro FSD and a mini FSD). 
  2719.  
  2720.  
  2721. ΓòÉΓòÉΓòÉ 14.8. From 0.8 to 0.9 ΓòÉΓòÉΓòÉ
  2722.  
  2723.      corrected a bug in the file table management code. I incorrectly assumed 
  2724.       that FSH_SEGALLOC returned zeroed memory and this could cause a system 
  2725.       halt in put_last_in_list saying the used list was corrupted. 
  2726.      corrected a race condition problem in the file table management code. 
  2727.  
  2728.  
  2729. ΓòÉΓòÉΓòÉ 14.9. From 0.9 to 2.0 ΓòÉΓòÉΓòÉ
  2730.  
  2731.      Corrected yet another  bug in FS_NEWSIZE 
  2732.      Corrected (I hope) a bug that could make ext2-os2 crash when 
  2733.       HPOFS.IFS/MO.SYS are present. 
  2734.      Implemented swapper entry points : now SWAPPER.DAT can be put on a Linux 
  2735.       ext2fs partition. 
  2736.      Rewrote the mount/unmount/shutdown mechanism (including superblock 
  2737.       allocation). 
  2738.      Ported the whole ext2-os2.ifs to 32 bits. (this introduced many small 
  2739.       changes). 
  2740.  
  2741.  
  2742. ΓòÉΓòÉΓòÉ 14.10. From 2.0 to 2.1 ΓòÉΓòÉΓòÉ
  2743.  
  2744.      Added support for e2fsck and mke2fs 
  2745.      Improved lookup routines a lot (rewrote open_by_name to use dir_namei 
  2746.       instead of readdir). 
  2747.      Replaced some DevHlp32_VirtToLin calls with faster VDHQueryLin calls. 
  2748.      Replaced references to TKSSBase in mwdd32.sys with _TKSSBase in MVMD.DLL 
  2749.       (this one has one indirection level less). 
  2750.      Corrected a bug in iput when freeing a "DASD" mode inode (i_dirt was not 
  2751.       cleared). 
  2752.      Overall performance greatly improved (on my machine, IOSTONE benchmark 
  2753.       jumped from 4000 to almost 30000, with 4096 Kb cache) 
  2754.      Corrected a bug in do_ext2_rename (it caused a trap D when renaming a 
  2755.       directory). 
  2756.      The lazy writer thread in ext2_lw.exe now has a time critical priority; 
  2757.       This corrects low I/O throughput problem while other processes hog the 
  2758.       CPU. 
  2759.      Now this 32 bits version of ext2-os2 has the same boot capabilities as 
  2760.       the 16 bits version. 
  2761.      Ext2flt.flt no longer write protects sector 0 of virtual linux 
  2762.       partitions. This change was necessary to make mke2fs and e2fsck work. 
  2763.      Corrected a bug in the ext2-os2 log facility (ext2-os2.exe was hogging 
  2764.       100 % of the CPU). 
  2765.      Added the -force_strat2 option to force use of strategy 2 I/O (if 
  2766.       available) on removable media. The purpose of this option is to allow 
  2767.       fast access to PCMCIA hard drives and such, which are generally seen by 
  2768.       OS/2 as large floppies (and thus can only be formatted as FAT). 
  2769.  
  2770.  
  2771. ΓòÉΓòÉΓòÉ 14.11. From 2.1 to 2.2 ΓòÉΓòÉΓòÉ
  2772.  
  2773.      Corrected a stupid packaging error : microfsd.fsd and minifsd.fsd were 
  2774.       not included in the distribution. 
  2775.      Corrected a thunking problem in vfs_stat 
  2776.      Corrected a thunking problem in vfs_fstat 
  2777.      Added support to create hard links from OS/2 (new VFSAPI entry point : 
  2778.       vfs_link, new utility : hardlink.exe) 
  2779.  
  2780.  
  2781. ΓòÉΓòÉΓòÉ 14.12. From 2.2 to 2.3 ΓòÉΓòÉΓòÉ
  2782.  
  2783.      Corrected a bug in fsh32_qsysinfo that made ext2-os2 use case insensitive 
  2784.       comparisions, even if the -case_retensive option was not set. 
  2785.      Corrected several problems in microfsd.fsd and minifsd.fsd. 
  2786.      Added the umount.exe and remount.exe utilities for better removable media 
  2787.       support. 
  2788.      Corrected a problem in the mount process that made FSH_DOVOLIO fail with 
  2789.       a weird error when formatting a drive. Now ext2fs_check_magic operates 
  2790.       with the NO_CACHE flag set. 
  2791.      mke2fs now properly tells the user to run badblocks separately, instead 
  2792.       of crashing. 
  2793.      mke2fs now writes a DOS compatible boot sector in sector 0 and the media 
  2794.       type in sector 1, to avoid problems with an old time OS/2 bug : OS/2 
  2795.       incorrectly prevents FLOPPIES with non DOS boot records to be accessed by 
  2796.       an IFS. 
  2797.      Installation default is now to use ERRORS=CONTINUE instead of 
  2798.       ERRORS=PANIC option, in order to make mke2fs and e2fsck work without 
  2799.       halting the system in case of an unexpected error. 
  2800.  
  2801.  
  2802. ΓòÉΓòÉΓòÉ 14.13. From 2.3 to 2.4 ΓòÉΓòÉΓòÉ
  2803.  
  2804.      Corrected a memory overflow problem in microfsd.fsd that prevented OS/2 
  2805.       to boot from huge (Gigabyte range) ext2 partitions. 
  2806.      Increased the maximum number of Linux partitions in EXT2FLT.FLT from 16 
  2807.       to 26. 
  2808.      Removed the 2 Gb limit in e2fsck, mke2fs and badblocks. 
  2809.      Rewrote badblocks in a more OS/2 like style (makes use of the 
  2810.       DSK_VERIFYTRACK IOCTL instead of a standard read() call). It can now be 
  2811.       safely invoked through mke2fs's -c switch. 
  2812.      Now uext2.dll correctly removes FORMAT.COM specific options before 
  2813.       calling mke2fs.exe (eg. FORMAT X:: /FS:ext2 no longer fails). 
  2814.      Updated e2fsck and mke2fs from version 1.06 (e2fsprogs-1.06) to 1.10 
  2815.       (e2fsprogs-1.10). 
  2816.      Added a port of debugfs, chattr, lsattr and tune2fs. 
  2817.      Added path optimization : when relevant, directory lookup is now starting 
  2818.       from current directory and not from root directory. 
  2819.      Corrected some time stamping related problems that made the "make" 
  2820.       utility fail in some cases. 
  2821.      Corrected a race condition in the buffer cache code that could cause a 
  2822.       tight lockup in heavy I/O situations. 
  2823.      Volume labels are now supported and can be modified from OS/2, they are 
  2824.       limited by the kernel to 11 characters (Linux ext2 volume names can be 16 
  2825.       characters long, ext2-os2 truncates them to 11 characters). They can be 
  2826.       queried or set either through the OS/2 label or vol commands, or throught 
  2827.       tune2fs. 
  2828.      The volume serial number is now a 32 bits CRC of the Linux ext2 UUID (the 
  2829.       uuid is a 128 bits unique identifier present in the superblock. This is 
  2830.       now a standard feature of the Linux ext2 file system). 
  2831.  
  2832.  
  2833. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2834.  
  2835.             GNU GENERAL PUBLIC LICENSE
  2836.                Version 2, June 1991
  2837.  
  2838.  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
  2839.                           675 Mass Ave, Cambridge, MA 02139, USA
  2840.  Everyone is permitted to copy and distribute verbatim copies
  2841.  of this license document, but changing it is not allowed.
  2842.  
  2843.                 Preamble
  2844.  
  2845.   The licenses for most software are designed to take away your
  2846. freedom to share and change it.  By contrast, the GNU General Public
  2847. License is intended to guarantee your freedom to share and change free
  2848. software--to make sure the software is free for all its users.  This
  2849. General Public License applies to most of the Free Software
  2850. Foundation's software and to any other program whose authors commit to
  2851. using it.  (Some other Free Software Foundation software is covered by
  2852. the GNU Library General Public License instead.)  You can apply it to
  2853. your programs, too.
  2854.  
  2855.   When we speak of free software, we are referring to freedom, not
  2856. price.  Our General Public Licenses are designed to make sure that you
  2857. have the freedom to distribute copies of free software (and charge for
  2858. this service if you wish), that you receive source code or can get it
  2859. if you want it, that you can change the software or use pieces of it
  2860. in new free programs; and that you know you can do these things.
  2861.  
  2862.   To protect your rights, we need to make restrictions that forbid
  2863. anyone to deny you these rights or to ask you to surrender the rights.
  2864. These restrictions translate to certain responsibilities for you if you
  2865. distribute copies of the software, or if you modify it.
  2866.  
  2867.   For example, if you distribute copies of such a program, whether
  2868. gratis or for a fee, you must give the recipients all the rights that
  2869. you have.  You must make sure that they, too, receive or can get the
  2870. source code.  And you must show them these terms so they know their
  2871. rights.
  2872.  
  2873.   We protect your rights with two steps: (1) copyright the software, and
  2874. (2) offer you this license which gives you legal permission to copy,
  2875. distribute and/or modify the software.
  2876.  
  2877.   Also, for each author's protection and ours, we want to make certain
  2878. that everyone understands that there is no warranty for this free
  2879. software.  If the software is modified by someone else and passed on, we
  2880. want its recipients to know that what they have is not the original, so
  2881. that any problems introduced by others will not reflect on the original
  2882. authors' reputations.
  2883.  
  2884.   Finally, any free program is threatened constantly by software
  2885. patents.  We wish to avoid the danger that redistributors of a free
  2886. program will individually obtain patent licenses, in effect making the
  2887. program proprietary.  To prevent this, we have made it clear that any
  2888. patent must be licensed for everyone's free use or not licensed at all.
  2889.  
  2890.   The precise terms and conditions for copying, distribution and
  2891. modification follow.
  2892.  
  2893.             GNU GENERAL PUBLIC LICENSE
  2894.    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  2895.  
  2896.   0. This License applies to any program or other work which contains
  2897. a notice placed by the copyright holder saying it may be distributed
  2898. under the terms of this General Public License.  The "Program", below,
  2899. refers to any such program or work, and a "work based on the Program"
  2900. means either the Program or any derivative work under copyright law:
  2901. that is to say, a work containing the Program or a portion of it,
  2902. either verbatim or with modifications and/or translated into another
  2903. language.  (Hereinafter, translation is included without limitation in
  2904. the term "modification".)  Each licensee is addressed as "you".
  2905.  
  2906. Activities other than copying, distribution and modification are not
  2907. covered by this License; they are outside its scope.  The act of
  2908. running the Program is not restricted, and the output from the Program
  2909. is covered only if its contents constitute a work based on the
  2910. Program (independent of having been made by running the Program).
  2911. Whether that is true depends on what the Program does.
  2912.  
  2913.   1. You may copy and distribute verbatim copies of the Program's
  2914. source code as you receive it, in any medium, provided that you
  2915. conspicuously and appropriately publish on each copy an appropriate
  2916. copyright notice and disclaimer of warranty; keep intact all the
  2917. notices that refer to this License and to the absence of any warranty;
  2918. and give any other recipients of the Program a copy of this License
  2919. along with the Program.
  2920.  
  2921. You may charge a fee for the physical act of transferring a copy, and
  2922. you may at your option offer warranty protection in exchange for a fee.
  2923.  
  2924.   2. You may modify your copy or copies of the Program or any portion
  2925. of it, thus forming a work based on the Program, and copy and
  2926. distribute such modifications or work under the terms of Section 1
  2927. above, provided that you also meet all of these conditions:
  2928.  
  2929.     a) You must cause the modified files to carry prominent notices
  2930.     stating that you changed the files and the date of any change.
  2931.  
  2932.     b) You must cause any work that you distribute or publish, that in
  2933.     whole or in part contains or is derived from the Program or any
  2934.     part thereof, to be licensed as a whole at no charge to all third
  2935.     parties under the terms of this License.
  2936.  
  2937.     c) If the modified program normally reads commands interactively
  2938.     when run, you must cause it, when started running for such
  2939.     interactive use in the most ordinary way, to print or display an
  2940.     announcement including an appropriate copyright notice and a
  2941.     notice that there is no warranty (or else, saying that you provide
  2942.     a warranty) and that users may redistribute the program under
  2943.     these conditions, and telling the user how to view a copy of this
  2944.     License.  (Exception: if the Program itself is interactive but
  2945.     does not normally print such an announcement, your work based on
  2946.     the Program is not required to print an announcement.)
  2947.  
  2948. These requirements apply to the modified work as a whole.  If
  2949. identifiable sections of that work are not derived from the Program,
  2950. and can be reasonably considered independent and separate works in
  2951. themselves, then this License, and its terms, do not apply to those
  2952. sections when you distribute them as separate works.  But when you
  2953. distribute the same sections as part of a whole which is a work based
  2954. on the Program, the distribution of the whole must be on the terms of
  2955. this License, whose permissions for other licensees extend to the
  2956. entire whole, and thus to each and every part regardless of who wrote it.
  2957.  
  2958. Thus, it is not the intent of this section to claim rights or contest
  2959. your rights to work written entirely by you; rather, the intent is to
  2960. exercise the right to control the distribution of derivative or
  2961. collective works based on the Program.
  2962.  
  2963. In addition, mere aggregation of another work not based on the Program
  2964. with the Program (or with a work based on the Program) on a volume of
  2965. a storage or distribution medium does not bring the other work under
  2966. the scope of this License.
  2967.  
  2968.   3. You may copy and distribute the Program (or a work based on it,
  2969. under Section 2) in object code or executable form under the terms of
  2970. Sections 1 and 2 above provided that you also do one of the following:
  2971.  
  2972.     a) Accompany it with the complete corresponding machine-readable
  2973.     source code, which must be distributed under the terms of Sections
  2974.     1 and 2 above on a medium customarily used for software interchange; or,
  2975.  
  2976.     b) Accompany it with a written offer, valid for at least three
  2977.     years, to give any third party, for a charge no more than your
  2978.     cost of physically performing source distribution, a complete
  2979.     machine-readable copy of the corresponding source code, to be
  2980.     distributed under the terms of Sections 1 and 2 above on a medium
  2981.     customarily used for software interchange; or,
  2982.  
  2983.     c) Accompany it with the information you received as to the offer
  2984.     to distribute corresponding source code.  (This alternative is
  2985.     allowed only for noncommercial distribution and only if you
  2986.     received the program in object code or executable form with such
  2987.     an offer, in accord with Subsection b above.)
  2988.  
  2989. The source code for a work means the preferred form of the work for
  2990. making modifications to it.  For an executable work, complete source
  2991. code means all the source code for all modules it contains, plus any
  2992. associated interface definition files, plus the scripts used to
  2993. control compilation and installation of the executable.  However, as a
  2994. special exception, the source code distributed need not include
  2995. anything that is normally distributed (in either source or binary
  2996. form) with the major components (compiler, kernel, and so on) of the
  2997. operating system on which the executable runs, unless that component
  2998. itself accompanies the executable.
  2999.  
  3000. If distribution of executable or object code is made by offering
  3001. access to copy from a designated place, then offering equivalent
  3002. access to copy the source code from the same place counts as
  3003. distribution of the source code, even though third parties are not
  3004. compelled to copy the source along with the object code.
  3005.  
  3006.   4. You may not copy, modify, sublicense, or distribute the Program
  3007. except as expressly provided under this License.  Any attempt
  3008. otherwise to copy, modify, sublicense or distribute the Program is
  3009. void, and will automatically terminate your rights under this License.
  3010. However, parties who have received copies, or rights, from you under
  3011. this License will not have their licenses terminated so long as such
  3012. parties remain in full compliance.
  3013.  
  3014.   5. You are not required to accept this License, since you have not
  3015. signed it.  However, nothing else grants you permission to modify or
  3016. distribute the Program or its derivative works.  These actions are
  3017. prohibited by law if you do not accept this License.  Therefore, by
  3018. modifying or distributing the Program (or any work based on the
  3019. Program), you indicate your acceptance of this License to do so, and
  3020. all its terms and conditions for copying, distributing or modifying
  3021. the Program or works based on it.
  3022.  
  3023.   6. Each time you redistribute the Program (or any work based on the
  3024. Program), the recipient automatically receives a license from the
  3025. original licensor to copy, distribute or modify the Program subject to
  3026. these terms and conditions.  You may not impose any further
  3027. restrictions on the recipients' exercise of the rights granted herein.
  3028. You are not responsible for enforcing compliance by third parties to
  3029. this License.
  3030.  
  3031.   7. If, as a consequence of a court judgment or allegation of patent
  3032. infringement or for any other reason (not limited to patent issues),
  3033. conditions are imposed on you (whether by court order, agreement or
  3034. otherwise) that contradict the conditions of this License, they do not
  3035. excuse you from the conditions of this License.  If you cannot
  3036. distribute so as to satisfy simultaneously your obligations under this
  3037. License and any other pertinent obligations, then as a consequence you
  3038. may not distribute the Program at all.  For example, if a patent
  3039. license would not permit royalty-free redistribution of the Program by
  3040. all those who receive copies directly or indirectly through you, then
  3041. the only way you could satisfy both it and this License would be to
  3042. refrain entirely from distribution of the Program.
  3043.  
  3044. If any portion of this section is held invalid or unenforceable under
  3045. any particular circumstance, the balance of the section is intended to
  3046. apply and the section as a whole is intended to apply in other
  3047. circumstances.
  3048.  
  3049. It is not the purpose of this section to induce you to infringe any
  3050. patents or other property right claims or to contest validity of any
  3051. such claims; this section has the sole purpose of protecting the
  3052. integrity of the free software distribution system, which is
  3053. implemented by public license practices.  Many people have made
  3054. generous contributions to the wide range of software distributed
  3055. through that system in reliance on consistent application of that
  3056. system; it is up to the author/donor to decide if he or she is willing
  3057. to distribute software through any other system and a licensee cannot
  3058. impose that choice.
  3059.  
  3060. This section is intended to make thoroughly clear what is believed to
  3061. be a consequence of the rest of this License.
  3062.  
  3063.   8. If the distribution and/or use of the Program is restricted in
  3064. certain countries either by patents or by copyrighted interfaces, the
  3065. original copyright holder who places the Program under this License
  3066. may add an explicit geographical distribution limitation excluding
  3067. those countries, so that distribution is permitted only in or among
  3068. countries not thus excluded.  In such case, this License incorporates
  3069. the limitation as if written in the body of this License.
  3070.  
  3071.   9. The Free Software Foundation may publish revised and/or new versions
  3072. of the General Public License from time to time.  Such new versions will
  3073. be similar in spirit to the present version, but may differ in detail to
  3074. address new problems or concerns.
  3075.  
  3076. Each version is given a distinguishing version number.  If the Program
  3077. specifies a version number of this License which applies to it and "any
  3078. later version", you have the option of following the terms and conditions
  3079. either of that version or of any later version published by the Free
  3080. Software Foundation.  If the Program does not specify a version number of
  3081. this License, you may choose any version ever published by the Free Software
  3082. Foundation.
  3083.  
  3084.   10. If you wish to incorporate parts of the Program into other free
  3085. programs whose distribution conditions are different, write to the author
  3086. to ask for permission.  For software which is copyrighted by the Free
  3087. Software Foundation, write to the Free Software Foundation; we sometimes
  3088. make exceptions for this.  Our decision will be guided by the two goals
  3089. of preserving the free status of all derivatives of our free software and
  3090. of promoting the sharing and reuse of software generally.
  3091.  
  3092.                 NO WARRANTY
  3093.  
  3094.   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
  3095. FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
  3096. OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
  3097. PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
  3098. OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  3099. MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
  3100. TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
  3101. PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
  3102. REPAIR OR CORRECTION.
  3103.  
  3104.   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  3105. WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
  3106. REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
  3107. INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
  3108. OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
  3109. TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
  3110. YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
  3111. PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
  3112. POSSIBILITY OF SUCH DAMAGES.
  3113.  
  3114.              END OF TERMS AND CONDITIONS
  3115.  
  3116.     Appendix: How to Apply These Terms to Your New Programs
  3117.  
  3118.   If you develop a new program, and you want it to be of the greatest
  3119. possible use to the public, the best way to achieve this is to make it
  3120. free software which everyone can redistribute and change under these terms.
  3121.  
  3122.   To do so, attach the following notices to the program.  It is safest
  3123. to attach them to the start of each source file to most effectively
  3124. convey the exclusion of warranty; and each file should have at least
  3125. the "copyright" line and a pointer to where the full notice is found.
  3126.  
  3127.     <one line to give the program's name and a brief idea of what it does.>
  3128.     Copyright (C) 19yy  <name of author>
  3129.  
  3130.     This program is free software; you can redistribute it and/or modify
  3131.     it under the terms of the GNU General Public License as published by
  3132.     the Free Software Foundation; either version 2 of the License, or
  3133.     (at your option) any later version.
  3134.  
  3135.     This program is distributed in the hope that it will be useful,
  3136.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  3137.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3138.     GNU General Public License for more details.
  3139.  
  3140.     You should have received a copy of the GNU General Public License
  3141.     along with this program; if not, write to the Free Software
  3142.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3143.  
  3144. Also add information on how to contact you by electronic and paper mail.
  3145.  
  3146. If the program is interactive, make it output a short notice like this
  3147. when it starts in an interactive mode:
  3148.  
  3149.     Gnomovision version 69, Copyright (C) 19yy name of author
  3150.     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
  3151.     This is free software, and you are welcome to redistribute it
  3152.     under certain conditions; type `show c' for details.
  3153.  
  3154. The hypothetical commands `show w' and `show c' should show the appropriate
  3155. parts of the General Public License.  Of course, the commands you use may
  3156. be called something other than `show w' and `show c'; they could even be
  3157. mouse-clicks or menu items--whatever suits your program.
  3158.  
  3159. You should also get your employer (if you work as a programmer) or your
  3160. school, if any, to sign a "copyright disclaimer" for the program, if
  3161. necessary.  Here is a sample; alter the names:
  3162.  
  3163.   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  3164.   `Gnomovision' (which makes passes at compilers) written by James Hacker.
  3165.  
  3166.   <signature of Ty Coon>, 1 April 1989
  3167.   Ty Coon, President of Vice
  3168.  
  3169. This General Public License does not permit incorporating your program into
  3170. proprietary programs.  If your program is a subroutine library, you may
  3171. consider it more useful to permit linking proprietary applications with the
  3172. library.  If this is what you want to do, use the GNU Library General
  3173. Public License instead of this License.
  3174.  
  3175.  
  3176. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3177.  
  3178. This is an example where drive letters won't be changed when you toggle the 
  3179. ext2fs partition ID from 0x83 to 0x7. ext2flt gives the same result without 
  3180. having to alter the partition table. 
  3181.  
  3182. Before 
  3183.  
  3184. Physical  Description  Partition  Drive   Type             Status
  3185.   drive                     ID    letter
  3186.   1       Boot mgr          0a      -     -                Startable
  3187.   1       OS/2              07      C:    Extended         Bootable
  3188.   1       Linux ext2fs      83      -     Extended         Bootable   <=== We toggle it from 0x83 ...
  3189.  
  3190. If we toggle the ext2fs partition type 
  3191.  
  3192. Physical  Description  Partition  Drive   Type             Status
  3193.   drive                     ID    letter
  3194.   1       Boot mgr          0a      -     -                Startable
  3195.   1       OS/2              07      C:    Extended         Bootable
  3196.   1       Linux ext2fs      07      D:    Extended         Bootable   <=== ... to 0x07
  3197.  
  3198. If we use ext2flt.flt 
  3199.  
  3200. Physical  Description  Partition  Drive   Type             Status
  3201.   drive                     ID    letter
  3202.   1       Boot mgr          0a      -     -                Startable
  3203.   1       OS/2              07      C:    Extended         Bootable
  3204.   2       Linux ext2fs      07      D:    Extended
  3205.  
  3206. The pink partition is the one as shown by ext2flt.flt to OS/2. 
  3207.  
  3208.  
  3209. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3210.  
  3211.  
  3212. In this case, the OS/2 drive letter is changed from C: to D: when you change 
  3213. the Linux partition ID. If you want to use the ext2 IFS driver you'll have to 
  3214. use ext2flt.flt  so that the ext2fs partition appears after the OS/2 partition. 
  3215.  
  3216. Before 
  3217.  
  3218. Physical  Description  Partition  Drive   Type             Status
  3219.   drive                     ID    letter
  3220.   1       Boot mgr          0a      -     -                Startable
  3221.   1       Linux ext2        83      -     Primary          Bootable   <=== We toggle it from 0x83 ...
  3222.   1       OS/2 System       07      C:    Extended         Bootable
  3223.  
  3224. If we toggle the partiton ID, the drive letters change : 
  3225.  
  3226. Physical  Description  Partition  Drive   Type             Status
  3227.   drive                     ID    letter
  3228.   1       Boot mgr          0a      -     -                Startable
  3229.   1       Linux ext2        07      C:    Primary          Bootable   <=== ... to 0x07
  3230.   1       OS/2 System       07      D:    Extended         Bootable
  3231.  
  3232. The solution is to use ext2flt.flt : 
  3233.  
  3234. Physical  Description  Partition  Drive   Type             Status
  3235.   drive                     ID    letter
  3236.   1       Boot mgr          0a      -     -                Startable
  3237.   1       OS/2 System       07      C:    Extended         Bootable
  3238.   2       Linux ext2        07      D:    Extended
  3239.  
  3240. The pink partition is the one as shown by ext2flt.flt to OS/2. 
  3241.  
  3242.  
  3243. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3244.  
  3245. In this case, you cannot use the ext2 IFS driver alone and you are a good 
  3246. candidate for using ext2flt.flt. This is because only ONE primary partition can 
  3247. be active. ext2flt.flt will make your ext2fs partition appear as an extended 
  3248. volume located after your OS/2 partition. 
  3249.  
  3250. Physical  Description  Partition  Drive   Type             Status
  3251.   drive                     ID    letter
  3252.   1       Boot mgr          0a      -     -                Startable
  3253.   1       Linux ext2        83      -     Primary          Bootable
  3254.   1       OS/2 System       07      C:    Primary (active) Bootable
  3255.  
  3256. If we use ext2flt.flt : 
  3257.  
  3258. Physical  Description  Partition  Drive   Type             Status
  3259.   drive                     ID    letter
  3260.   1       Boot mgr          0a      -     -                Startable
  3261.   1       OS/2 System       07      C:    Primary (active) Bootable
  3262.   2       Linux ext2        07      D:    extended
  3263.  
  3264.  
  3265. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3266.  
  3267. [-q] : quiet initialization of ext2-os2.ifs (no banner during boot). Default is 
  3268. verbose initialization. 
  3269.  
  3270.  
  3271. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3272.  
  3273. [-cache:<max. disk cache size>] Specifies the MAXIMUM disk cache size. This 
  3274. value is the maximum amount of physical memory ext2-os2.ifs can dynamically 
  3275. allocate for disk cache buffers. The default value is 240 Kb. The minimum value 
  3276. is 240Kb. The maximum value depends on system resources (free physical memory). 
  3277.  
  3278. Note:  Please read the chapter "Dynamic disk cache considerations" 
  3279.  
  3280.  
  3281. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3282.  
  3283. [rw] : enable write access. Default is write disabled. 
  3284.  
  3285. Note:  If you use ext2flt, don't forget to enable write access on the 
  3286.        ext2flt.flt command line. (/W switch) 
  3287.  
  3288.  WARNING - BEFORE ENABLING WRITE ACCESS, REMEMBER THAT DOING REGULAR BACKUPS IS 
  3289.  NEVER A BAD PRACTICE !!! 
  3290.  
  3291.  
  3292. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3293.  
  3294. [-no_auto_fsck] : prevents ext2-os2 from forcing Linux to run e2fsck on 
  3295. partitions "touched" by OS/2 Default is to force Linux to run e2fsck. 
  3296.  
  3297. Note:  Please read the chapter "Automatic check disk" 
  3298.  
  3299.  
  3300. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3301.  
  3302. [-case_retensive] : makes ext2-os2.ifs behave like HPFS. If this option is set, 
  3303. case will not be significant but will be retained within the file system. For 
  3304. instance File and FILE are considered to be the same file. Default is case 
  3305. sensitive. 
  3306.  
  3307. WARNING - PLEASE READ "Case sensitivity considerations" BEFORE USING THIS 
  3308. OPTION !!! 
  3309.  
  3310.  
  3311. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3312.  
  3313. [-<IFS entry point to trace>] : traces a specific IFS entry point. Using this 
  3314. option makes ext2-os2.ifs produce an output in ext2-os2.exe whenever the 
  3315. specified IFS entry point is entered. You can specify several IFS entry points 
  3316. to trace for instance "IFS=ext2-os2.ifs -FS_MKDIR -FS_RMDIR". 
  3317.  
  3318. Note:  Please notice that tracing will have a performance hit (can be 
  3319.        important). 
  3320.  
  3321.  Currently supported IFS entry points for tracing are : 
  3322.  
  3323.      FS_ALLOCATEPAGESPACE 
  3324.      FS_CHDIR 
  3325.      FS_CHGFILEPTR 
  3326.      FS_CLOSE 
  3327.      FS_COMMIT 
  3328.      FS_COPY 
  3329.      FS_DELETE 
  3330.      FS_DOPAGEIO 
  3331.      FS_EXIT 
  3332.      FS_FILEATTRIBUTE 
  3333.      FS_FILEINFO 
  3334.      FS_FINDCLOSE 
  3335.      FS_FINDFIRST 
  3336.      FS_FINDFROMNAME 
  3337.      FS_FINDNEXT 
  3338.      FS_FLUSHBUF 
  3339.      FS_FSINFO 
  3340.      FS_IOCTL 
  3341.      FS_MKDIR 
  3342.      FS_MOUNT 
  3343.      FS_MOVE 
  3344.      FS_NEWSIZE 
  3345.      FS_OPENCREATE 
  3346.      FS_OPENPAGEFILE 
  3347.      FS_PATHINFO 
  3348.      FS_PROCESSNAME 
  3349.      FS_READ 
  3350.      FS_RMDIR 
  3351.      FS_SHUTDOWN 
  3352.      FS_WRITE 
  3353.  
  3354.  
  3355. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3356.  
  3357. [-no_strat2] : disable use of extended I/O operations (strategy 2 calls). 
  3358. Default is to use them on fixed disks when they are supported by the block 
  3359. device driver. Normally it works well with OS2DASD.DMD, but if you encounter 
  3360. problems with extended I/O with other drivers, you can disable them. 
  3361.  
  3362. Note:  Using extended I/O results in HUGE performance improvements ; disabling 
  3363.        them with have a tremendous performance hit. 
  3364.  
  3365.  
  3366. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3367.  
  3368. [-errors=[panic|continue]] : specifies the behaviour to adopt when the ext2fs 
  3369. file system code detects an error within the file system. "panic" halts the 
  3370. system, "continue" makes ext2-os2 only output a message in ext2-os2.exe and 
  3371. continue. Default is "continue" (like Linux). 
  3372.  
  3373. Note:  If a system halt occurs with a message beginning with "ext2-os2 detected 
  3374.        a file system error on drive %c", it means that the ext2fs file system 
  3375.        code found a file system corruption. You MUST run e2fsck from Linux to 
  3376.        repair your file system. This type of error is generally not specific to 
  3377.        ext2-os2, but the error would also have occured on Linux. 
  3378.        "-errors=continue" will avoid a system halt and just mark the file 
  3379.        system as bad (forcing e2fsck on next Linux boot) ; but if you continue 
  3380.        to work intensively after a file system error, you are likely to spread 
  3381.        the error and make things even worse. 
  3382.  
  3383.  
  3384. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3385.  
  3386. [-output=[com1|com2]] : Makes ext2-os2 write its messages on COM1 or COM2 port 
  3387. in addition to the ext2-os2 monitor. 
  3388.  
  3389. Note:  Output to COM ports has a performance hit, but can be necessary for 
  3390.        tracing or debugging in some cases. 
  3391.  
  3392.  
  3393. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3394.  
  3395. [-tz:<time zone in minutes from UTC>] : Sets the time zone to be taken into 
  3396. account for file dates and times. Please read Time zone considerations. 
  3397.  
  3398.  
  3399. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3400.  
  3401. [-force_strat2:<removable drive number to be forced to use strat 2 I/O>] 
  3402.  
  3403. Force a removable media to use strategy 2 I/O (if available). Normally ext2-os2 
  3404. uses strategy 2 I/O only for fixed disks. For certain large removable media 
  3405. like MO drives or PCMCIA hard drives which are seen by OS/2 as large floppies 
  3406. (and thus cannot be formatted as HPFS, nor use lazy writes), using strategy 2 
  3407. I/O can DRAMATICALLY improve performance. But you MUST leave the drive in its 
  3408. media and NEVER remove it while running. If you want to remove the drive 
  3409. anyway, you MUST unmount it first using the unmount.exe utility. This option 
  3410. can make sense for a PCMCIA drive (for instance I have a Thinkpad with a 260 Mb 
  3411. PCMCIA hard disk. I use this option to speed up access to this drive). 
  3412.  
  3413. Note:  The drive number on the command line is 0 based : 0 means 'A', 1 means 
  3414.        'B' and so on. 
  3415.  
  3416.  
  3417. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3418.  
  3419. /Q : Quiet install. Prevents the filter from displaying messages. 
  3420.  
  3421.  
  3422. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3423.  
  3424. /V : Verbose install. Displays some diagnostic messages. 
  3425.  
  3426.  
  3427. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3428.  
  3429. /W : Allows the virtual partitions to be written to. 
  3430.  
  3431.  
  3432. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3433.  
  3434. /A : Virtualize all partitions found. The only good reason to use this is along 
  3435. with the /M option when you want to control the mounting order of all the 
  3436. partitions. You must use the /W option if you use the /A option; otherwise OS/2 
  3437. may crash when it tries to write to the partition. 
  3438.  
  3439. Note:  Using the /A option may change your drive letters causing the your 
  3440.        system to be unbootable. Use the /M option together with /A. (This may 
  3441.        change in the future. 
  3442.  
  3443.  
  3444. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3445.  
  3446. /M <mount list> : Mounts the partitions in the order specified in the mount 
  3447. list, which should be a list of numbers separated by commas. The partitions are 
  3448. numbered 0 on a first come basis. (Not the OS/2 uses.) 
  3449.  
  3450.  
  3451. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3452.  
  3453. IBM Visualage C++ version 3.0 for OS/2. 
  3454.  
  3455. Note:  The CSD CTC305 is highly recommended. 
  3456.  
  3457.  
  3458. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3459.  
  3460. IBM Assembly Language Processor (ALP) version 4.00. 
  3461.  
  3462. Note:  Earlier versions of ALP will NOT work. 
  3463.  
  3464.  
  3465. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3466.  
  3467. Microsoft Visual C++ 1.51. 
  3468.  
  3469. Note:  This is actually MSC version 8.0c and is available as the 16 bits 
  3470.        compiler in the MS Visual C++ 2.0 package. 
  3471.  
  3472.  
  3473. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3474.  
  3475. Borland C++ version 4 
  3476.  
  3477.  
  3478. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3479.  
  3480. Microsoft Assembler (MASM) 5.10A.15 
  3481.  
  3482. Note:  This is the version of MASM included in the DevCon DDK. 
  3483.  
  3484.  
  3485. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3486.  
  3487. Borland Turbo Assembler (available with Borland C++ 4) 
  3488.  
  3489.  
  3490. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3491.  
  3492. IBM Linker for OS/2 (ILink) version 1. 
  3493.  
  3494. Note:  This is the version of ILINK included in the IBM Visualage C++ package, 
  3495.        with CSD CTC305 installed (ILINK version 01.04.r1a_CTC305A). 
  3496.  
  3497.  
  3498. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3499.  
  3500. Microsoft Linker (LINK) version 5.6. 
  3501.  
  3502. Note:  This is the version of LINK included in the Microsoft Visual C++ version 
  3503.        2.0 package. 
  3504.  
  3505.  
  3506. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3507.  
  3508. linux fdisk 3.04 output for disk 1 (this is actually an OS/2 port of fdisk : 
  3509. 1:1 means /dev/hda1 and so on) : 
  3510.  
  3511. fdisk -uS -l 1:
  3512. Disk 1:: 6 heads, 35 sectors, 978 cylinders
  3513. Units = sectors of 512 bytes, counting from 0
  3514.    Device Boot    Start       End  #sectors  Id  System
  3515.       1:1          2100    104579    102480  83  Linux native
  3516.       1:2   *        35      2099      2065   a  OS/2 Boot Manager or Coherent swap
  3517.       1:3        104580    205379    100800   7  OS/2 IFS (e.g., HPFS) or NTFS or QNX2 or Advanced UNIX
  3518.       1:4             0         -         0   0  Empty
  3519.  
  3520. OS/2 fdisk output for disk 1 : 
  3521.  
  3522. FDISK /QUERY /DISK:1
  3523. Drive Name  Partition Vtype FStype Status   Start     Size
  3524.     1              :    1    0a      2          0        1
  3525.     1 Linux        :    1    83      1          1       50
  3526.     1 test        C:    1    07      5         51       49
  3527.                                              **BIOS:1024MB
  3528.  
  3529.  
  3530. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3531.  
  3532. linux fdisk 3.04 output for disk 2 (this is actually an OS/2 port of fdisk : 
  3533. 1:1 means /dev/sda1 and so on) : 
  3534.  
  3535. fdisk -uS -l 2:
  3536. Disk 2:: 64 heads, 32 sectors, 1169 cylinders
  3537. Units = sectors of 512 bytes, counting from 0
  3538.    Device Boot    Start       End  #sectors  Id  System
  3539.       2:1        163840   2095103   1931264   7  OS/2 IFS (e.g., HPFS) or NTFS or QNX2 or Advanced UNIX
  3540.       2:2   *        32    163839    163808  17  OS/2 BM: hidden IFS
  3541.       2:3       2095104   2394111    299008   5  DOS Extended
  3542.       2:4             0         -         0   0  Empty
  3543.       2:5   *   2095136   2394111    298976   7  OS/2 IFS (e.g., HPFS) or NTFS or QNX2 or Advanced UNIX
  3544.  
  3545. OS/2 fdisk output for disk 2 : 
  3546.  
  3547. FDISK /QUERY /DISK:2
  3548. Drive Name  Partition Vtype FStype Status   Start     Size
  3549.     2 ext2-os2     :    1    17      3          0       80
  3550.     2 Warp        D:    1    07      1         80      943
  3551.     2 001ff820    E:    2    07      0       1023      146
  3552.                                              **BIOS:1024MB
  3553.  
  3554.  
  3555. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3556.  
  3557. #
  3558. # Start LILO global section
  3559. #
  3560. boot = /dev/hda1       # install LILO in the superblock of /dev/hda1.
  3561. vga = normal           # force sane state
  3562. ramdisk = 0            # paranoia setting
  3563. prompt
  3564. #
  3565. # End LILO global section
  3566. #
  3567. # Linux bootable partition config begins
  3568. image = /vmlinuz
  3569.   root = /dev/hda1
  3570.   label = linux
  3571.   read-only            # Non-UMSDOS filesystems should be mounted read-only for checking
  3572. # Linux bootable partition config ends
  3573.  
  3574.  
  3575. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  3576.  
  3577. Here's a brief description of what to do to install a WPS enabled system with 
  3578. BOOTOS2 on a LInux ext2fs partition, and put the WPS desktop tree on a HPFS or 
  3579. FAT partition (assume we want to store the WPS tree in D:\tmp\desktop) : 
  3580.  
  3581.    1. Go to the OS2 directory of your boot drive and make a copy of the file 
  3582.       named INI.RC (for instance TEST.RC) 
  3583.    2. Edit TEST.RC as follows : 
  3584.  
  3585.       Locate a line of the form 
  3586.  
  3587.               "PM_InstallObject" "Desktop;WPDesktop;?:\" "OBJECTID=<WP_DESKTOP>"
  3588.       and replace it with 
  3589.  
  3590.               "PM_InstallObject" "Desktop;WPDesktop;D:\tmp\desktop" "OBJECTID=<WP_DESKTOP>"
  3591.  
  3592.       Locate a line of the form 
  3593.  
  3594.               "PM_InstallObject" "Nowhere;WPFolder;?:\"  "OBJECTID=<WP_NOWHERE>"
  3595.       and replace it with 
  3596.  
  3597.               "PM_InstallObject" "Nowhere;WPFolder;D:\tmp\nowhere"  "OBJECTID=<WP_NOWHERE>"
  3598.  
  3599.    3. Reboot OS/2 FROM FLOPPIES 
  3600.    4. Press F3 to go to a command prompt. At the command prompt, go to the OS2 
  3601.       directory of your hard drive and type : 
  3602.  
  3603.             MAKEINI BOS2U300.INI TEST.RC
  3604.  
  3605.    5. Reboot OS/2 normally 
  3606.    6. Go to your BOOTOS2 directory and replace BOS2U300.INI with the one we've 
  3607.       created. 
  3608.    7. To install a WPS enabled system type the following command : 
  3609.  
  3610.             BOOTOS2 TARGET=F TYPE=WPS
  3611.  
  3612.