123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- Overview of Amiga Filesystems
- =============================
- Not all varieties of the Amiga filesystems are supported for reading and
- writing. The Amiga currently knows six different filesystems:
- DOS\0 The old or original filesystem, not really suited for
- hard disks and normally not used on them, either.
- Supported read/write.
- DOS\1 The original Fast File System. Supported read/write.
- DOS\2 The old "international" filesystem. International means that
- a bug has been fixed so that accented ("international") letters
- in file names are case-insensitive, as they ought to be.
- Supported read/write.
- DOS\3 The "international" Fast File System. Supported read/write.
- DOS\4 The original filesystem with directory cache. The directory
- cache speeds up directory accesses on floppies considerably,
- but slows down file creation/deletion. Doesn't make much
- sense on hard disks. Supported read only.
- DOS\5 The Fast File System with directory cache. Supported read only.
- All of the above filesystems allow block sizes from 512 to 32K bytes.
- Supported block sizes are: 512, 1024, 2048 and 4096 bytes. Larger blocks
- speed up almost everything at the expense of wasted disk space. The speed
- gain above 4K seems not really worth the price, so you don't lose too
- much here, either.
- The muFS (multi user File System) equivalents of the above file systems
- are supported, too.
- Mount options for the AFFS
- ==========================
- protect If this option is set, the protection bits cannot be altered.
- setuid[=uid] This sets the owner of all files and directories in the file
- system to uid or the uid of the current user, respectively.
- setgid[=gid] Same as above, but for gid.
- mode=mode Sets the mode flags to the given (octal) value, regardless
- of the original permissions. Directories will get an x
- permission if the corresponding r bit is set.
- This is useful since most of the plain AmigaOS files
- will map to 600.
- nofilenametruncate
- The file system will return an error when filename exceeds
- standard maximum filename length (30 characters).
- reserved=num Sets the number of reserved blocks at the start of the
- partition to num. You should never need this option.
- Default is 2.
- root=block Sets the block number of the root block. This should never
- be necessary.
- bs=blksize Sets the blocksize to blksize. Valid block sizes are 512,
- 1024, 2048 and 4096. Like the root option, this should
- never be necessary, as the affs can figure it out itself.
- quiet The file system will not return an error for disallowed
- mode changes.
- verbose The volume name, file system type and block size will
- be written to the syslog when the filesystem is mounted.
- mufs The filesystem is really a muFS, also it doesn't
- identify itself as one. This option is necessary if
- the filesystem wasn't formatted as muFS, but is used
- as one.
- prefix=path Path will be prefixed to every absolute path name of
- symbolic links on an AFFS partition. Default = "/".
- (See below.)
- volume=name When symbolic links with an absolute path are created
- on an AFFS partition, name will be prepended as the
- volume name. Default = "" (empty string).
- (See below.)
- Handling of the Users/Groups and protection flags
- =================================================
- Amiga -> Linux:
- The Amiga protection flags RWEDRWEDHSPARWED are handled as follows:
- - R maps to r for user, group and others. On directories, R implies x.
- - If both W and D are allowed, w will be set.
- - E maps to x.
- - H and P are always retained and ignored under Linux.
- - A is always reset when a file is written to.
- User id and group id will be used unless set[gu]id are given as mount
- options. Since most of the Amiga file systems are single user systems
- they will be owned by root. The root directory (the mount point) of the
- Amiga filesystem will be owned by the user who actually mounts the
- filesystem (the root directory doesn't have uid/gid fields).
- Linux -> Amiga:
- The Linux rwxrwxrwx file mode is handled as follows:
- - r permission will set R for user, group and others.
- - w permission will set W and D for user, group and others.
- - x permission of the user will set E for plain files.
- - All other flags (suid, sgid, ...) are ignored and will
- not be retained.
-
- Newly created files and directories will get the user and group ID
- of the current user and a mode according to the umask.
- Symbolic links
- ==============
- Although the Amiga and Linux file systems resemble each other, there
- are some, not always subtle, differences. One of them becomes apparent
- with symbolic links. While Linux has a file system with exactly one
- root directory, the Amiga has a separate root directory for each
- file system (for example, partition, floppy disk, ...). With the Amiga,
- these entities are called "volumes". They have symbolic names which
- can be used to access them. Thus, symbolic links can point to a
- different volume. AFFS turns the volume name into a directory name
- and prepends the prefix path (see prefix option) to it.
- Example:
- You mount all your Amiga partitions under /amiga/<volume> (where
- <volume> is the name of the volume), and you give the option
- "prefix=/amiga/" when mounting all your AFFS partitions. (They
- might be "User", "WB" and "Graphics", the mount points /amiga/User,
- /amiga/WB and /amiga/Graphics). A symbolic link referring to
- "User:sc/include/dos/dos.h" will be followed to
- "/amiga/User/sc/include/dos/dos.h".
- Examples
- ========
- Command line:
- mount Archive/Amiga/Workbench3.1.adf /mnt -t affs -o loop,verbose
- mount /dev/sda3 /Amiga -t affs
- /etc/fstab entry:
- /dev/sdb5 /amiga/Workbench affs noauto,user,exec,verbose 0 0
- IMPORTANT NOTE
- ==============
- If you boot Windows 95 (don't know about 3.x, 98 and NT) while you
- have an Amiga harddisk connected to your PC, it will overwrite
- the bytes 0x00dc..0x00df of block 0 with garbage, thus invalidating
- the Rigid Disk Block. Sheer luck has it that this is an unused
- area of the RDB, so only the checksum doesn't match anymore.
- Linux will ignore this garbage and recognize the RDB anyway, but
- before you connect that drive to your Amiga again, you must
- restore or repair your RDB. So please do make a backup copy of it
- before booting Windows!
- If the damage is already done, the following should fix the RDB
- (where <disk> is the device name).
- DO AT YOUR OWN RISK:
- dd if=/dev/<disk> of=rdb.tmp count=1
- cp rdb.tmp rdb.fixed
- dd if=/dev/zero of=rdb.fixed bs=1 seek=220 count=4
- dd if=rdb.fixed of=/dev/<disk>
- Bugs, Restrictions, Caveats
- ===========================
- Quite a few things may not work as advertised. Not everything is
- tested, though several hundred MB have been read and written using
- this fs. For a most up-to-date list of bugs please consult
- fs/affs/Changes.
- By default, filenames are truncated to 30 characters without warning.
- 'nofilenametruncate' mount option can change that behavior.
- Case is ignored by the affs in filename matching, but Linux shells
- do care about the case. Example (with /wb being an affs mounted fs):
- rm /wb/WRONGCASE
- will remove /mnt/wrongcase, but
- rm /wb/WR*
- will not since the names are matched by the shell.
- The block allocation is designed for hard disk partitions. If more
- than 1 process writes to a (small) diskette, the blocks are allocated
- in an ugly way (but the real AFFS doesn't do much better). This
- is also true when space gets tight.
- You cannot execute programs on an OFS (Old File System), since the
- program files cannot be memory mapped due to the 488 byte blocks.
- For the same reason you cannot mount an image on such a filesystem
- via the loopback device.
- The bitmap valid flag in the root block may not be accurate when the
- system crashes while an affs partition is mounted. There's currently
- no way to fix a garbled filesystem without an Amiga (disk validator)
- or manually (who would do this?). Maybe later.
- If you mount affs partitions on system startup, you may want to tell
- fsck that the fs should not be checked (place a '0' in the sixth field
- of /etc/fstab).
- It's not possible to read floppy disks with a normal PC or workstation
- due to an incompatibility with the Amiga floppy controller.
- If you are interested in an Amiga Emulator for Linux, look at
- http://web.archive.org/web/*/http://www.freiburg.linux.de/~uae/
|