Linux Frequently Asked Questions with Answers: Compatibility with other operating systems.

## 3. Compatibility with other operating systems.

-------------------------------------------------------------------------------

## 3.1 Can Linux share my disk with DOS? OS/2? 386BSD? Win95?

Yes. Linux uses the standard MS-DOS partitioning scheme, so it can share your disk with other operating systems. Note, however, that many other operating systems may not be exactly compatible. DOS's `FDISK.EXE` and `FORMAT.EXE`, for example, can overwrite data in a Linux partition, because they sometimes incorrectly use partition data from the partition's boot sector rather than the partition table.

In order to prevent programs from doing this, it is a good idea to zero out--under Linux--the start of a partition you created, before you use MS-DOS--or whatever--to format it. Type:

    $ dd if=/dev/zero of=/dev/hdXY bs=512 count=1

where `hdXY` is the relevant partition; e.g., `/dev/hda1` for the first partition of the first (IDE) disk.

Linux can read and write the files on your DOS and OS/2 FAT partitions and floppies using either the DOS file system type built into the kernel or mtools. There is kernel support for the VFAT file system used by Windows 9x and Windows NT.

For information about FAT32 partition support, see http://bmrc.berkeley.edu/people/chaffee/fat32.html.

See, `` What software does Linux support? '' for details and status of the emulators for DOS, MS Windows, and System V programs.

See also, `` Can Linux access Amiga file systems? '', `` Can Linux access Macintosh file systems? '', `` Can Linux access BSD, SysV, etc., UFS? '', and `` Can Linux access SMB file systems? ''

There are said to be NTFS drivers under development, which should support compression as a standard feature.

-------------------------------------------------------------------------------

## 3.2 How do I access files on my DOS partition or floppy?

Use the DOS file system, type, for example:

    $ mkdir /dos
    $ mount -t msdos -o conv=text,umask=022,uid=100,gid=100 /dev/hda3 /dos

If it's a floppy, don't forget to umount it before ejecting it!

You can use the `conv=text/binary/auto`, `umask=nnn`, `uid=nnn`, and `gid=nnn` options to control the automatic line-ending conversion, permissions and ownerships of the files in the DOS file system as they appear under Linux. If you mount your DOS file system by putting it in your `/etc/fstab`, you can record the options (comma-separated) there, instead of defaults.

Alternatively, you can use mtools, available in both binary and source form on the FTP sites. (`` Where can I get Linux material by FTP? '')

A kernel patch (known as the fd-patches) is available which allows floppies with nonstandard numbers of tracks and/or sectors to be used; this patch is included in the 1.1 alpha testing kernel series.

-------------------------------------------------------------------------------

## 3.3 Does Linux support compressed ext2 file systems?

As of recently, it does. Information about them is located at http://www.netspace.net.au/~reiter/e2compr/.

There is also a Web site for the e2compr patches The code is still experimental and consists of patches for the 2.0 and 2.1 kernels. For more information about the project, including the latest patches, and the address of the mailing list, look up the URL at http://debs.fuller.edu/e2compr/.

[Roderich Schupp]

Zlibc is a program that allows existing applications to read compressed (GNU gzip'ed) files as if they were not compressed. Look on sunsite.unc.edu in /pub/Linux/libs/. The author is Alain Knuff.

There is also a compressing block device driver, ``DouBle,'' by Jean-Marc Verbavatz, which can provide on-the-fly disk compression in the kernel. The source-only distribution is located at sunsite.unc.edu in the directory /pub/Linux/patches/diskdrives/. This driver compresses inodes and directory information as well as files, so any corruption of the file system is likely to be serious.

There is also a package called tcx (Transparently Compressed Executables), which allows you to keep infrequently compressed executables compressed and only uncompress them temporarily when in use. It is located on sunsite.unc.edu in the directory /pub/Linux/utils/compress/.

-------------------------------------------------------------------------------

## 3.4 Can I use my Stacked/DBLSPC/etc. DOS drive?

Until recently, not very easily. You can access DOS 6.X volumes from the DOS emulator (`` What software does Linux support? ''), but it's harder than accessing a normal DOS volume via the DOS kernel option, a module, or mtools.

There is a recently added package, dmsdos, which reads and writes compressed file systems like DoubleSpace/DriveSpace in MS-DOS 6.x and Win95, as well as Stacker versions 3 and 4. It is available in the archives on ftp://sunsite.unc.edu/pub/Linux/system/Filesystem/dosfs.

There is a module available for the Linux kernel which can do read-only access of compressed volume. Look at sunsite.unc.edu/pub/Linux/system/filesystems/dosfs/.

-------------------------------------------------------------------------------

## 3.5 Can I access OS/2 HPFS partitions from Linux?

Yes, but Linux access to HPFS partitions is read-only. HPFS file system access is available as an option when compiling the kernel or as a module. See the `Documentation/filesystems/hpfs.txt` file in the kernel source distribution. (`` How do I upgrade/recompile my kernel? '') Then you can mount HPFS partition, using, for example:

    $ mkdir /hpfs
    $ mount -t hpfs /dev/hda5 /hpfs

-------------------------------------------------------------------------------

## 3.6 Can Linux access Amiga file systems?

The Linux kernel has support for the Amiga Fast File System (AFFS) version 1.3 and later, both as a compile-time option and as a module. The file `Documentation/filesystems/affs.txt` in the Linux kernel source distribution has more information.

See `` How do I upgrade/recompile my kernel? ''.

Linux supports AFFS hard-drive partitions only. Floppy access is not supported due to incompatibilities between Amiga floppy controllers and PC and workstation controllers. The AFFS driver can also mount disk partitions used by the Un*x Amiga Emulator, by Bernd Schmidt.

-------------------------------------------------------------------------------

## 3.7 Can Linux access BSD, SysV, etc. UFS?

Recent kernels can mount (read only) the UFS file system used by System V; Coherent; Xenix; BSD; and derivatives like SunOS, FreeBSD, NetBSD, and NeXTStep. UFS support is available as a kernel compile-time option and a module.

See, `` How do I upgrade/recompile my kernel? ''

-------------------------------------------------------------------------------

## 3.8 Can Linux access SMB file systems?

Linux supports read/write access of Windows for Workgroups and Windows NT SMB volumes. See the file Documentation/filesystems/smbfs.txt of the Linux kernel source distribution, and `` How do I upgrade/recompile my kernel? '' in this FAQ.

There is also a suite of programs called Samba which provide support for WfW networked file systems (provided they're for TCP/IP). Information is available in the README file at sunsite.unc.edu/pub/Linux/system/network/samba/.

There is a SMB Web site at samba.anu.edu.au/samba/.

-------------------------------------------------------------------------------

## 3.9 Can Linux access Macintosh file systems?

There is a set of user-level programs that read and write the Macintosh Hierarchical File System (HFS). It is available at sunsite.unc.edu/pub/Linux/utils/disk-management.

-------------------------------------------------------------------------------

## 3.10 Can I run Microsoft Windows programs under Linux?

WINE, a MS Windows emulator for Linux, is still not ready for general distribution. If you want to contribute to its development, look for the status reports in the `comp.emulators.ms-windows.wine` newsgroup.

There is also a FAQ, compiled by P. David Gardner, at sunsite.unc.edu/pub/Linux/docs/faqs/Wine-FAQ/.

In the meantime, if you need to run MS Windows programs, the best bet--seriously--is to reboot. LILO, the Linux boot loader, can boot one of several operating systems from a menu. See the LILO documentation for details.

Also, LOADLIN (a DOS program to load a Linux, or other OS, kernel is one way to make Linux co-exist with DOS. LOADLIN is particularly handy when you want to install Linux on a 3rd or 4th drive on a system (or when you're adding a SCSI drive to a system with an existing IDE).

In these cases, it is common for LILO's boot loader to be unable to find or load the kernel on the "other" drive. So you just create a C:\LINUX directory (or whatever), put LOADLIN in it with a copy of your kernel, and use that.

LOADLIN is a VCPI compliant program. Win95 will want to, "shutdown into DOS mode," to run it (as it would with certain other DOS protected-mode programs).

Earlier versions of LOADLIN sometimes required a package called REALBIOS.COM, which required a boot procedure on an (almost) blank floppy to map the REALBIOS interrupt vectors (prior to the loading of any software drivers). (Current versions don't seem to ship with it, and don't seem to need it).

[Jim Dennis]

-------------------------------------------------------------------------------

## 3.11 How can I boot Linux from OS/2's Boot Manager?

1. Create a partition using OS/2's `FDISK.EXE` (Not Linux's `fdisk`).
2. Format the partition under OS/2, either with FAT or HPFS. This is so that OS/2 knows about the partition being formatted. (This step is not necessary with OS/2 `warp' 3.0.)
3. Add the partition to the Boot Manager.
4. Boot Linux, and create a file system on the partition using `mkfs -t ext2` or `mke2fs`. At this point you may, if you like, use Linux's `fdisk` to change the code of the new partition to type 83 (Linux Native)--this may help some automated installation scripts find the right partition to use.
5. Install Linux on the partition.
6. Install LILO on the Linux partition--NOT on the master boot record of the hard drive. This installs LILO as a second-stage boot loader on the Linux partition itself, to start up the kernel specified in the LILO configuration file. To do this, you should put

       boot = /dev/hda2

   (where `/dev/hda2` is the partition you want to boot from) in your `/etc/lilo/config` or `/etc/lilo.config` file.
7. Make sure that it is the Boot Manager partition that is marked active, so that you can use Boot Manager to choose what to boot.

There is a set of HOWTO's on the subject of multi-boot systems on the LDP Home Page, http://sunsite.unc.edu/LDP/.

-------------------------------------------------------------------------------

## 3.12 How can I share a swap partition between Linux and MS Windows?

See the Mini-HOWTO on the subject. The Mini-HOWTO is currently unmaintained but is available at ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/unmaintained.

===============================================================================